WAP Gateway는 WAP 기반 무선 인터넷을 구성하는 핵심 요소이다. WAP Gateway는 HTTP와 WAP간의 변환을 담당하는 기본적 역할 이외에도 많은 기능들을 수행한다. 본 문서에서는 WAP Gateway의 정의와 기능에 대해 논하고자 한다.

그림 WAP Gateway에서의 기능

WAP Gateway의 정의

WAP Gateway는 TCP/IP기반의 유선 인터넷 네트워크와 무선 네트워크를 연결하는 소프트웨어 서버라고 볼 수 있다. WAP Gateway는 WAP 프로토콜(WSP, WTP, WTLS, WDP)과 IP기반의 패킷 네트워크 사이에서 데이터를 변환하는 중개자 역할을 수행한다. WAP Gateway의 구현은 벤더(Phone.com, Nokia 등)에 의해 자유로운 방식에 의해 이루어진다. 그러므로 단일 서버 형태로 될 수도 있고 여러 서버에 분산되어 돌아가도록 구현할 수도 있다.

WAP Gateway의 기능

1. 프로토콜 변환(Protocol Conversion : WSP <==> HTTP)

유선 인터넷의 경우 HTTP를 통해 브라우저로부터의 Request와 서버로부터의 Response, 그리고, 서버에서 브라우저에게 전해지는 HTML file 등의 Entity Body등이 전송됨으로써 브라우저를 이용한 인터넷 서핑이 이루어진다. Request, Response, Entity Body와 관련된 부가 정보를 함께 보내기 위해서 Header가 이용된다. HTTP를 통해 전송되는 이러한 정보들은 텍스트 형태로 보내지는데 이는 대역폭(bandwidth)이 작은 무선 인터넷에는 적절하지 않다.

결국 좁은 대역과 긴 latency(지연)를 갖는 무선인터넷에 있어서는 텍스트 형태의 HTTP 정보들을 바이나리 형태의 토큰으로 변환할 필요가 있다. WML과 WSP등을 구성하는 요소들에 해당되는 바이나리 형태의 토큰 테이블은 WSP 명세에 정의되어 있다.

2. WML 컨텐츠의 부호화/복호화(Encoding/Decoding)

CP Server에서 제공되는 텍스트 형태의 WML 파일이 사용자 단말기로 전송되기 전에 WAP Gateway에 의해서 바이나리 형태로 압축되게 된다. WML을 구성하는 element tags, attributes등의 요소들에 대한 바이나리 값들은 token table 형태로 WAP 명세에 정의되어 있다. Token table에 따라 WML 파일을 바이나리 형태로 변환하는 과정을 tokenization이라고 한다. Tokenization 과정과 함께 Gateway는 WML 파일의 error checking을 수행한다. 만약 해당 WML 파일에 에러가 존재하는 경우 사용자 단말기에 error message를 보내게 된다. WAP Gateway에 의해서 WML의 무결성이 조사되므로 단말기 상의 마이크로 브라우저는 부가적인 error handling의 부하가 사라지게 된다.

3. HTML의 WML로의 변환

기존 HTML page를 WML 형태로 실시간으로 변환할 수 있다면 무선 인터넷 컨텐츠는 비약적으로 발전할 수 있겠지만 아직은 기술적으로 완전환 변환이 어려운 실정이다. 일부 WAP Gateway의 경우 이러한 변환을 지원한다고 주장하지만 변환의 질은 보장되지 않고 있다. 즉, 기존 HTML page가 변환된 후 단말기에 적절하게 디스플레이 될지는 알 수 없다는 것이다. 그러므로 CP의 경우 무선 인터넷을 목표로 하는 서비스의 경우는 WML로 사이트를 재구성하는 것이 옳다고 본다. 특정 사이트를 유, 무선 인터넷 양쪽 모두 다 서비스하고자 하는 경우 동일한 서비스의 HTML과 WML방식의 버전을 각각 준비한 후 HTTP Request Header에 있는 "USER-Agent" 또는 "Accept:" 정보에 따라서 적절한 페이지를 보내는 방식을 취할 수도 있다. HTML의 WML로의 변환은 WAP Gateway의 선택적 기능이므로 일부 게이트웨이에서만 지원된다.

4. 접근 제어(Access Control)

WAP 서비스의 종류에 따라서는 사용자에 따른 접근 가능한 정보를 제한해야 되는 경우도 있을 수 있다. 유료 서비스 또는 사내 인트라넷 WAP 서비스 등이 접근 제어가 요구되는 서비스의 예라고 할 수 있다. 접근 제어를 위해서는 단말기를 통해 접근하는 사용자가 서비스 접근이 가능한 사람인지를 판단할 수 있어야 한다. 단말기를 통한 사용자 판단을 위해서는 접근 가능한 사용자의 단말기인지에 대한 판단이 요구되는데 이를 위해서는 단말기의 MSISDN number(혹은 전화 번호) 또는 IP 주소 등의 정보를 이용한다. 단말기의 식별을 위한 정보로 무엇을 이용할 지는 bearer type에 따라 좌우된다. 예를 들어 SMS를 bearer로 이용하는 WAP Gateway의 경우는 전화 번호나 단말기를 식별하기 위한 유일한 정보이므로 전화번호로 단말기를 식별하게 된다. Bearer에 따라서 IP가 단말기에 고정된 경우는 IP를 이용해서 단말기의 식별이 가능할 것이다.

5. 보안(Security)

WAP 명세에 의하면 WAP Gateway가 보안 기능을 지원하느냐는 선택적인 문제이다. 그러나, 무선 뱅킹, 무선 상거래와 같은 안전한 거래가 요구되는 응용 서비스인 경우는 보안 기능을 지원하는 Gateway를 사용해야 될 것이다. 단말기와 Gateway사이는 WTLS(Wireless Transport Layered Security) 에 따라 보안이 지원되고 Gateway와 CP Server 사이는 SSL 방식에 따른 보안이 지원된다. 이경우 WAP Gateway에서 프로토콜 변환 과정 시 보안이 침해당할 우려가 있으므로 끝 단간의 보안(end to end security)은 보장된다고 할 수 없다.

6. WMLScript 컴파일링

일반적인 프로그래밍 언어의 컴파일 과정과 같이 WMLScript의 구문(syntax), 의미(semantic)가 적절한지에 대한 조사가 이루어진 후 WMLScript 명세에 정의된 WMLScript Instruction Set에 의하여 바이나리 스트림 형태의 코드가 단말기로 전송된다.