KR20040093226A - 가상 클락 방식을 이용한 동기 방법 - Google Patents
가상 클락 방식을 이용한 동기 방법 Download PDFInfo
- Publication number
- KR20040093226A KR20040093226A KR1020030025454A KR20030025454A KR20040093226A KR 20040093226 A KR20040093226 A KR 20040093226A KR 1020030025454 A KR1020030025454 A KR 1020030025454A KR 20030025454 A KR20030025454 A KR 20030025454A KR 20040093226 A KR20040093226 A KR 20040093226A
- Authority
- KR
- South Korea
- Prior art keywords
- clock
- systems
- synchronization
- media
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 분산 네트워크 환경에서 음성, 영상, 데이터 서비스뿐만 아니라. 음성/영상 회의(Video/Audio conference) 등의 서비스를 지원할 경우 서비스로 지원하는 여러 미디어들 간의 동기를 맞춰 주는 미디어간 동기화(Inter-media Synchronization)를 지원하기 위한 가상 클락 방식(VGC)을 이용한 동기 방법에 관한 것이다. 이와 같은 본 발명 가상 클럭 방식을 이용한 동기 방법은, 두 시스템 사이에 데이터를 전송하는 과정을 복수 번 반복하는 단계와, 상기 반복과정에서 발생하는 일주지연들의 평균에 대한 반값을 사용하여 클럭 옵셋을 환산하는 단계와, 상기 클럭 옵셋을 이용하여 두 시스템 사이의 클락 비를 계산하는 단계와, 상기 계산된 클럭 옵셋과 클럭비에 대한 정보를 소스와 목적지 시스템에서 공유하는 단계와, 상기 소스에서 목적지로 데이터를 전송하는 경우 상기 소스에서 수행시간 정보를 상기 목적지로 보내주면 상기 목적지 시스템에서 목적지 시스템 클럭 속도로 환산한 클럭 시간을 구하여 데이터를 디스플레이하며 두 시스템 사이의 미디어 내부 동기를 맞추는 단계를 포함하여 이루어짐으로써, 두 시스템의 시스템 클락 비를 두 시스템에서 서로 공유하고 있기 때문에 시스템 클락을 예측할 수 있다.
Description
본 발명은 분산 네트워크 환경에서 음성, 영상, 데이터 서비스뿐만 아니라. 음성/영상 회의(Video/Audio conference) 등의 서비스를 지원할 경우 서비스로 지원하는 여러 미디어들 간의 동기를 맞춰 주는 미디어간 동기화(Inter-media Synchronization)를 지원하기 위한 가상 클락 방식(VGC)을 이용한 동기 방법에 관한 것이다.
분산 네트워크 환경에서 음성, 영상, 데이터 서비스뿐만 아니라. 음성/영상 회의(Video/Audio conference) 등의 서비스를 지원할 경우 서비스로 지원하는 여러 미디어들 간의 동기를 맞춰 주는 미디어간 동기화(Inter-media Synchronization)를 해야 한다. 뿐만 아니라 각각의 미디어를 전송할 때 미디어 내부 데이터들에 대한 미디어 내부 동기화(Intra-media Synchronization)가 필요하다.
이와 같은 미디어 내부동기와 미디어간의 동기를 맞춰 주기 위해서는 두 시스템 사이의 클락 동기를 먼저 맞춰 주어야 한다.
종래의 클락 동기를 맞추기 위한 알고리즘은 ATM 통신의 AAL1에서 고정 전송 속도(constant bit rate : CBR) 서비스를 위해 적용하는 SRTS(Synchronous Residual Time Stamp) 방법이 가장 정밀도기 높은 것으로 알려져 있으나, 참조 클락(Reference Clock)을 받을 수 없는 환경(동기 디지털 계층(Synchronous DigitalHierarchy : SDH)) 이 외의 네트워크에서는 사용할 수 없다는 단점이 있다.
일반 인터넷에서는 망간 제어 메시지 프로토콜(internet control message protocol : ICMP)의 타임 스탬프 요구 및 응답(time stamp request and reply)에 적용하여 사용하고 있는 NTP(Network Time Protocol) 방법이 있다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 분산 네트워크 환경에서 음성, 영상, 데이터 서비스뿐만 아니라. 음성/영상 회의(Video/Audio conference) 등의 서비스를 지원할 경우 서비스로 지원하는 여러 미디어들 간의 동기를 맞춰 주는 미디어간 동기화(Inter-media Synchronization)를 지원하기 위한 가상 클락 방식(VGC)을 이용한 동기 방법을 제공하는데 그 목적이 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명 가상 클락 방식을 이용한 동기 방법은 두 시스템의 시스템 클락 비를 두 시스템에서 서로 공유하고 있기 때문에 두 시스템의 시스템 클락을 예측할 수 있다. 또한 통신망의 종류에 관계없이 통신이 가능한 환경에서는 모두 적용 가능하다는 장점이 있으며, 기존의 인터넷에서의 동기화 알고리즘인 NTP(Network Time Protocol) 보다 약 70배 정도의 정밀도를 갖는다.
도 1은 본 발명에 따른 전송지연 변동(TDV) 영향이 있는 전송에서의 루프백을 이용한 클럭 비를 설명하기 위한 도면
도 2는 본 발명에 따른 VGC를 기준 주파수로 한 SRTS 동기화 방법을 설명하기 위한 도면
도 3은 본 발명에 따른 멀티미디어 서비스 특정 수렴 부계층(MM_SSCS) 프로토콜을 설명하기 위한 도면
도 4는 도 3에 나타낸 멀티미디어 서비스 특정 수렴 부계층 프로토콜에서의 음성 및 영상 정보를 전송하기 위한 데이터 필드를 설명하기 위한 도면
도 5는 도 3에 나타낸 멀티미디어 서비스 특정 수렴 부계층 프로토콜에서의 영상 정보를 전송하기 위한 데이터 필드를 설명하기 위한 도면
도 5는 본 발명에 따른 전송지연 변동(TDV) 영향이 있는 전송에서의 루프백을 이용한 클럭 비를 설명하기 위한 도면
도 6은 본 발명에 따른 시스템 클럭 비(CR)를 계산하는 방법을 설명하기 위한 플로우차트
도 7은 인터넷 통신에서의 동기화 멀티미디어 정보 전송의 일 예를 설명하기 위한 도면
이하 첨부된 도면을 참조하여 본 발명에 따른 가상 클락 방식(VGC)을 이용한 동기 방법을 설명하기로 한다.
도 1은 본 발명에 따른 전송지연 변동(TDV) 영향이 있는 전송에서의 루프백을 이용한 클럭 비를 설명하기 위한 도면이다.
분산환경에서 멀티미디어 통신을 구성하기 위하여 각 시스템들 사이에 클락 동기를 구성하여야 하며, 이를 바탕으로 미디어 내부 동기 및 미디어 간의 동기를 구성하여야 한다.
본 발명에서는 가상 글로벌 클락(VGC : Virtual Global Clock) 개념을 이용하여 기존의 ATM/AAL1에서 CBR(고정 전송 속도) 서비스를 위해 사용한 SRTS방법의 단점인 호환성을 극복하고, NTP보다 정밀도가 높은 동기화 알고리즘을 구현한다.
우선 본 발명에서 이용되는 가상 글로벌 클럭(VGC : Virtual Global Clock)을 설명하기로 한다.
분산 네트워크 환경에서 음성, 영상, 데이터 서비스뿐만 아니라, 음성/영상 회의(Video/Audio conference) 등의 서비스를 지원할 경우 서비스로 지원하는 여러 미디어들 간의 동기를 맞춰 주는 미디어간 동기화(Inter-media Synchronization)를 지원해야 한다. 그리고 각각의 미디어를 전송할 때 미디어 내부 데이터들에 대한 미디어 내부 동기화(Intra-media Synchronization)가 필요하다. 또한 미디어 내부동기와 미디어간의 동기를 맞춰 주기 위해서는 두 시스템 사이의 클락 동기를 먼저 맞춰 주어야 한다. 이때 가상 클락 동기화 알고리즘은 루프 백(Loop Back) 방식을 사용하여 두 시스템 사이에 데이터를 전송하는 과정을 여러 번 반복하고, 이때 발생하는 일주 지연(RTT : Round Trip Time)들의 평균에 대한 반값을 사용하여 클럭 옵셋(Clock Offset)을 환산하고, 클럭 옵셋(Clock Offset)을 이용하여 두 시스템사이의 클락 비(CR : Clock Ratio) 계산한다.
여기서 계산된 클럭 옵셋(Clock Offset)과 클락 비에 대한 정보를 소스와 목적지 시스템에서 정보를 공유하면 상대 시스템에 대한 특정 시간을 알 수 있으며, 이 방법이 VGC 동기화 알고리즘이다.
실제의 통신망에서 정보 전송 시 전송에 영향을 주는 것은 전송 지연 변동(TDV : Transfer Delay Variable)이다.
도 1에서와 같이 TDV 영향을 줄이기 위하여 루프 백 n(Loop Back_n)에서 n = (1 ~ n)일 때마다 일주 지연(TRR)의 반값에 대한 평균을 구하고, VGC 동기화 알고리즘을 적용하는 과정은 다음과 같다.
우선, Loop Back_1 실행하여 T11과 T13의 중간 지점인 T1c를 구한다.
그 다음 수학식 3을 이용하여 T1c를 T1c'로 보정한다.
계속해서 Loop Back_n(마지막까지) 실행하여Tn1과 Tn3 중간 지점인 Tnc를 구한다.
역시 수학식 4를 이용하여 Tnc를 Tnc'로 보정한다.
이때 상기의 과정에 의해 생성된 점 T12, T1c', Tn2, Tnc'는 평행 사변형에 가깝게 됨을 알 수 있다.
실시간(Real Time) 기준인 경우, ΔTRTSource= ΔTRTDestination이다.
시스템 클럭(System Clock) 기준인 경우, ΔTRTSource≠ ΔTRTDestination이다.
왜냐하면 두 단말기의 클락 속도가 서로 다르기 때문이다.
따라서 소스(Source)(송신측)와 목적지(Destination)(수신측)의 두 시스템 클락 비 CR =(Source = 기준 단말기)로 구할 수 있다.
이때 소스(Source)와 목적지(Destination) 사이의 클럭 옵셋(Clock Offset)은가 된다.
따라서 소스(Source)와 목적지(Destination) 시스템 사이에서 두 시스템의 시스템 클락 비(Clock Ratio : CR)를 알고, 두 시스템 사이의 클럭 옵셋(Clock Offset)을 알고 있는 상태에서 소스(Source)에서 목적지(Destination)로 데이터를 전송했을 경우, 소스(Source)에서 수행시간(Play Time) 정보를 목적지(Destination)로 보내주면, 목적지(Destination) 시스템에서목적지(Destination) 시스템 클락 속도로 환산한 수행시간(Play Time)을 구하여 데이터를 디스플레이(Display)하며, 두 시스템 사이의 미디어 내부 동기(Intra-media Synchronization)를 맞춰 줄 수 있다.
도 1에서 목적지(Destination) 시스템의 T12시간에 해당하는 소스(Source)시스템에서 T1c를 보정한 값인 T1c' 시간은 같은 시점에서의 각각의 시스템 클럭에 의한 시간이다. 이렇게 같은 시점의 두 시스템 시간을 두 시스템에서 공유하게 되며, 이는 두 시스템 사이의 클락 동기를 맞춰 졌다는 뜻이 된다. 또한 두 시스템은 서로의 클락 속도 비를 알고 있기 때문에 일정 주기 이후의 두 시스템 클락 동기를 마쳐 주기 위해서 위의 과정을 할 필요 없이 T12, T1c'에서 클락 속도 비에 따라 일정 주기 후의 시간을 환산해 낼 수 있기 때문에 두 시스템 동기를 예측할 수 있다.
도 2는 본 발명에 따른 VGC를 기준 주파수로 한 SRTS 동기화 방법을 설명하기 위한 도면이다.
본 발명에서 VGC를 바탕으로 한 멀티미디어의 미디어 내부 동기화(intra-media synchronization) 구성 방법은, 미디어 내부 동기를 구성하기 위하여 VGC를 바탕으로 하여 SRTS(Synchronous Residual Time Stamp) 동기화 기법을 적용하였다.
SRTS 동기화 기법은 ATM/AAL1 통신망에서 CBR(Constant Bit Rate) 서비스를 위한 동기화 알고리즘이며, 미디어 내부 동기화 알고리즘 중에 정밀도가 가장 높은 장점을 가지고 있다.
VGC/Loop_Back 기반의 SRTS 동기화 기법을 이용한 미디어 내부 동기 방법은다음과 같다.
우선, 음성 및 영상의 미디어간 동기를 용이하게 하기 위하여 주기 T를 초당 25 프레임에 해당하는 40 msec로 설정하면, 8-bit/8kHz PCM 샘플링의 음성 정보는 1 byte/125usec x 40 msec = 320 byte를 영상 정보와 함께 송신해야 한다.
VGC를 기반으로 하는 SRTS 통신망 기준 주파수, N 주기동안의 시간, 인코팅 방식 및 정밀도를 구하면 다음과 같다.
T = 40 msec
N = 1 samples/125 usec x 40 msec
= 320 samples = 320 Byte
fs = 8kHz
fs < fnx_VGC 2fs의의 조건으로부터 fnx_VGC는 2fs로 설정할 수 있다.
fnx_VGC = 2fs = 16kHz
도 2에서 T = 40 msec에 대한 Mq는 다음과 같이 정의된다.
Mq = Mnom + Δy
Mnom = 40 msec / (1/16 kHz) = 640
송신측 시스템 클럭에 오차가 있을 경우 Mq는 Mnom으로부터 Δy만큼의 편차가 발생 하게 된다.
RTS(Residual Time Stamp)를 p = 4 bits로 표현 하는 경우 Δy는 -8 ≤ Δy ≤ 7의 값을 가질 수 있고, 송신 클럭의 편차 최대 한계는 8 x 40 msec/ 640 = 0.5msec가 된다. 따라서 송신 클럭의 정밀도가 0.5 msec / 40 msec = 1.25 x 10-2이상의 정밀도를 가질 때 이 SRTS방식을 사용할 수 있다.
도 3은 본 발명에 따른 멀티미디어 서비스 특정 수렴 부계층(MM_SSCS) 프로토콜을 설명하기 위한 도면이고, 도 4는 도 3에 나타낸 멀티미디어 서비스 특정 수렴 부계층 프로토콜에서의 음성 및 영상 정보를 전송하기 위한 데이터 필드를 설명하기 위한 도면이며, 도 5는 도 3에 나타낸 멀티미디어 서비스 특정 수렴 부계층 프로토콜에서의 영상 정보를 전송하기 위한 데이터 필드를 설명하기 위한 도면이다.
본 발명에서는 RTS 정보를 전송하기 위하여 멀티미디어 서비스 특정 수렴 부계층(MM_SSCS : Multimedia _SSCS) 프로토콜의 RTS 필드를 사용한다. MM_SSCS 프로토콜은 인터넷 환경에서 음성, 영상 신호를 처리하기 위하여 본 발명에서 구성하였으며, 포맷은 도 3과 같다.
VGC를 바탕으로 멀티미디어의 미디어 간의 동기화(inter-media synchronization) 구성 방법은, 인터넷 통신망에서 음성과 영상 정보를 전송하기 위하여 도 2와 같이 멀티미디어 서비스 특정 수렴 부계층(MM_SSCS : MultiMedia_Service Specific Convergence Sublayer) 프로토콜을 이용한다.
도 3에서 SAV(Sound And Video) 필드는 음성과 영상을 인터리빙 방식으로 정보를 전송할 때 SAV=0일 때는 음성 정보와 영상 정보를, SAV=1일 때는 영상 정보만 전송한다.
VPID(Video Packet InDication) 필드는 영상 정보 한 패킷을 1000byte로 나눠서 전송할 때 패킷의 처음 부분과, 중간 부분, 끝 부분을 구별하기 위해 사용한다. VPID='00'일 경우 reserved, VPID='01'일 경우 영상 정보 패킷의 첫 부분, VPID='10' 일 경우 패킷의 중간 부분, VPID='11'일 경우 패킷의 끝 부분을 지정한다.
RTS(Residual Time Stamp) 필드는 VGC정보에 의하여 클럭 동기가 구성되어 있을 때 각 미디어 정보에 SRTS(Synchronous Residual Time Stamp) 방법을 적용하여 얻은 RTS 정보를 전송하기 위한 필드이다. RTS 정보를 이용하여 미디어 내부 동기를 맞추어줄 수 있다.
FSN(Frame Sequence Number) 필드는 음성과 영상 정보의 프레임을 지정하기 위해 순서 번호 필드이다.
PSN(Packet Sequence Number) 필드는 1 프레임에 해당하는 음성과 영상 정보를 패킷으로 나눠어서 정송할 때 패킷 순서 번호를 지정한 것이다.
수신측 시스템에서는 송신측 시스템에서 전송한 FSN과 PSN을 이용하여 미디어간의 프레임과 패킷을 맞춰서 데이터를 출력하게 된다. 이렇게 하면 미디어들 간의 동기를 맞추어 줄 수 있다.
도 4는 SAV='0'일 때 음성과 영상 정보를 전송하기 위하여 구성한 데이터 필드를 보여주고 있으며, 도 5는 SAV='1'일 때 영상 정보만 전송할 수 있게 데이터 필드가 구성되어 있다.
도 6은 본 발명에 따른 시스템 클럭 비(CR)를 계산하는 방법을 설명하기 위한 플로우차트이고, 도 7은 인터넷 통신에서의 동기화 멀티미디어 정보 전송의 일 예를 설명하기 위한 도면이다.
이와 같은 본 발명 가상 클럭 방식을 이용한 동기 방법은, 처음 동기를 구성하고, 특정 주기 후 다시 동기를 구성하기 위하여 처음 동기를 구성하기 위한 과정을 반복할 필요 없이 두 시스템의 시스템 클락 비를 두 시스템에서 서로 공유하고 있기 때문에 두 시스템의 시스템 클락을 예측할 수 있다. 또한 통신망의 종류에 관계없이 통신이 가능한 환경에서는 모두 적용 가능하다는 장점이 있으며, 기존의 인터넷에서의 동기화 알고리즘인 NTP(Network Time Protocol) 보다 약 70배 정도의 정밀도를 갖는다.
Claims (1)
- 두 시스템 사이에 데이터를 전송하는 과정을 복수 번 반복하는 단계와;상기 반복과정에서 발생하는 일주지연들의 평균에 대한 반값을 사용하여 클럭 옵셋을 환산하는 단계와;상기 클럭 옵셋을 이용하여 두 시스템 사이의 클락 비를 계산하는 단계와;상기 계산된 클럭 옵셋과 클럭비에 대한 정보를 소스와 목적지 시스템에서 공유하는 단계와;상기 소스에서 목적지로 데이터를 전송하는 경우 상기 소스에서 수행시간 정보를 상기 목적지로 보내주면 상기 목적지 시스템에서 목적지 시스템 클럭 속도로 환산한 클럭 시간을 구하여 데이터를 디스플레이하며 두 시스템 사이의 미디어 내부 동기를 맞추는 단계를 포함하여 이루어짐을 특징으로 하는 가상 클락 방식을 이용한 동기 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030025454A KR20040093226A (ko) | 2003-04-22 | 2003-04-22 | 가상 클락 방식을 이용한 동기 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030025454A KR20040093226A (ko) | 2003-04-22 | 2003-04-22 | 가상 클락 방식을 이용한 동기 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040093226A true KR20040093226A (ko) | 2004-11-05 |
Family
ID=37373341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030025454A KR20040093226A (ko) | 2003-04-22 | 2003-04-22 | 가상 클락 방식을 이용한 동기 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20040093226A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706763B1 (ko) * | 2006-08-16 | 2007-04-13 | 맥슨씨아이씨 주식회사 | E1/t1 신호를 이용하여 시각 동기 정보를 송수신하는클럭 공급 장치 및 그 방법 |
-
2003
- 2003-04-22 KR KR1020030025454A patent/KR20040093226A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706763B1 (ko) * | 2006-08-16 | 2007-04-13 | 맥슨씨아이씨 주식회사 | E1/t1 신호를 이용하여 시각 동기 정보를 송수신하는클럭 공급 장치 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2076983B1 (en) | Method for clock recovery using updated timestamps | |
US7483450B1 (en) | Method and system for link-based clock synchronization in asynchronous networks | |
US8964790B2 (en) | Communication apparatus | |
US5844600A (en) | Methods, apparatus, and systems for transporting multimedia conference data streams through a transport network | |
US6819682B1 (en) | System and method for the synchronization and distribution of telephony timing information in a cable modem network | |
US7079554B2 (en) | System and method for synchronizing between communication terminals of asynchronous packets networks | |
US5260978A (en) | Synchronous residual time stamp for timing recovery in a broadband network | |
US20020167911A1 (en) | Method and apparatus for determining jitter buffer size in a voice over packet communications system | |
US20030035444A1 (en) | Method for synchronizing a communication system via a packet-oriented data network | |
JP2007097185A (ja) | マルチメディアストリームにおける同期化ウォーターマーキング | |
US20080181604A1 (en) | Optical access system | |
KR20070070299A (ko) | 레지덴셜 이더넷 시스템에서의 시간 동기화 방법 | |
WO2019053853A1 (ja) | 映像切替システム | |
JP2000101609A (ja) | 非同期媒体によって送出される同期トラヒック・ストリ―ムの同期のための装置 | |
JPH06216908A (ja) | フレーム構造を有する等時性ソースデータの伝送用ネットワーク | |
WO2008125043A1 (en) | Multi-frame network clock synchronization | |
US20020056133A1 (en) | Synchronization for digital cable network | |
WO2019036943A1 (zh) | 一种报文处理的方法和网络设备 | |
WO2008125044A1 (en) | Network clock synchronization timestamp | |
FR2670974A1 (fr) | Dispositif pour la transmission par un reseau asynchrone, notamment un reseau de type atm, de donnees de signalisation voie par voie regroupees dans une multitrame emise de maniere synchrone en mode hors bande. | |
CN1672375A (zh) | 分组交换网络中时间敏感数据的同步数据传输系统 | |
JP2000224199A (ja) | 時分割多重バス同期化信号コンセントレ―タとデ―タ伝送システム及びその方法 | |
JP2001513301A (ja) | Stm伝送システムによるatmにおける同期 | |
JPH0851451A (ja) | 同期方法および同期装置、端末、交換装置 | |
US7447238B2 (en) | Method for compensating for internal delays within each node and transmission delays between the nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
WITB | Written withdrawal of application |