웹투비
웹투비(WebtoB)는 한국의 ㈜티맥스소프트가 개발한 웹서버 제품이다. 주로 와스(WAS) 제품인 제우스(JEUS)와 함께 사용된다. 웹투비(WebtoB)에서 첫 글자인 'W'와 마지막 글자인 'B'는 대문자로 쓴다.
개요
WebtoB는 기존 웹서버가 가지고 있는 구조적인 문제를 혁신적으로 개선해 성능 및 안정성에 탁월한 기능을 제공하는 차세대 웹서버 제품이다. 웹 상에서의 대규모 트랜잭션(Transaction) 처리에 적합하도록 설계되어 처리 속도 지연, 서버 다운 등 웹 시스템상의 문제들을 효과적으로 해결한다. 웹서버로서의 기본 기능 외에도 클러스터링을 통한 부하 조절 및 페일 오버, 보안, 장애 대응, 대용량 처리 시 강력한 성능, 대량의 클라이언트 요청을 서버의 자원을 적게 소모하면서 안정적으로 처리하며 차별화된 기능을 제공한다.
등장배경
웹투비(WebtoB)는 2000년 티맥스소프트사에서 대규모 트랜잭션 처리에 적합하도록 처리속도 지연, 서버 장애 등의 웹 시스템상의 문제점을 해결하는 아키텍처로 설계된 웹 서버 제품이다.
역사
- 2000년 : 웹투비 출시
- 2001년 : 장영실상 수상 (웹투비 - 과학기술부 장관)
- 2002년 : 세계일류상품 선정 (웹투비 - 산업자원부), 신기술(NT) 획득 (웹투비 - 산업자원부), 신기술 실용화 유공기업 국무 총리상 수상
- 2005년 : 웹투비 4 출시, 품질인증카므 GS(Good Software) 인증
- 2015년 : 웹투비 5 출시
- 2016년 : 웹투비 5 릴리즈
특징
대량의 클라이언트 요청을 서버의 자원을 적게 소모하면서 안정적인 처리를 제공한다. 다른 웹 서버에서 제공하는 대부분의 로그 포맷을 만들 수 있고, 사용자가 원하는 형식으로 조정이 가능하다. 단일 프로세스를 통하여 최적화된 서비스 요청 분배(Multiplexing)를 통하여 일반적인 웹서버 대비 대용량 처리 시 자원을 적게 소모하면서 빠르고 안정적으로 처리한다. 타 웹 서버의 경우에는 하나의 프로세스에 HTML, SSI, CGI 등의 모든 서비스를 처리해 사용하지도 않는 서비스들로 인해 많은 자원을 사용하여 시스템에 부하를 줄 수도 있다. 웹투비는 이에 반하여 필요한 서비스들을 분리해 제공한다. 각각의 HTML, SSI, CGI 등의 서비스들을 별도의 독립적인 프로세스로 설정하여 프로세스의 수를 조정한다. 이로써 사용자가 필요로 하는 서비스만을 프로세스를 구성하여 자원을 효율적으로 사용하고 시스템 부하를 줄인다. 일반적으로 많은 웹 서버들이 캐싱 기능을 제공하고 있다. 그러나 이들은 대부분 디스크에 대한 캐싱으로써 필요한 데이터들을 다른 머신에서 자신의 머신으로 가져와 디스크에 저장하고, 사용자가 요구하면 이를 보내 주는 방식이다. 주로 프락시라는 개념으로 많이 이용되는 다른 웹 서버도 역시 이 기능이 있으며, 이것은 성능 향상에 많은 도움을 준다. 웹투비에서의 캐싱은 사용자가 요구를 보내면 웹투비가 자주 이용되는 리소스들을 선별하여 이를 메모리에 상주 시켜 놓는 시스템이다. 또, WBAPI라는 내부 함수를 제공한다. 이는 웹투비에서만 제공하는 것으로 다양한 용도로 적용될 수 있다. 우선 기존 CGI 프로그램들을 변환하는 데 이용할 수 있다. 기존 CGI 프로그램은 상당히 비효율적으로 설계되어 있고 구현은 간단하지만, 성능 면에서 워낙 문제가 많기 때문에 사용자가 많은 곳에 적용하기는 힘들었다. 기존 사이트 중 CGI 프로그램으로 애플리케이션을 개발하고 서비스를 하는 중 갑자기 사용자가 늘어나는 경우에는 본래 이용하던 CGI 프로그램으로는 감당하기 힘들게 되는 경우가 많이 있다. 이 경우 현재까지의 해결 방법은 CGI 프로그램과 같은 기능을 하는 다른 애플리케이션을 완전히 새로 개발하거나 하드웨어를 무한정 늘리는 것 외에는 다른 방법이 없었다. WBAPI를 제공하여 기존 CGI 프로그램을 웹투비의 서비스 형태로 변환하는 것을 가능하게 해준다. 이는 기존의 CGI 프로그램의 단점을 개선한 형태로 현재 많이 이용되는 Servlet이나 기타 다른 스크립트 언어 등과 같은 성능을 제공한다. 또한 웹투비에서 TP-모니터의 서비스 루틴을 호출하는 데 이용되기도 한다.[1]
- 구조
웹투비는 기존 웹 서버와는 다른 구조로 되어 있다. 기존 웹 서버들은 대부분 NCSA사의 httpd의 구조로 되어 있다. 이는 사용자가 많지 않던 환경에서 사용되던 것으로 사용자의 증가에 유연하게 대처하지 못하는 단점을 지니고 있다.웹투비에서는 이런 문제를 해결하기 위해 최우선으로 고려한 것이 사용자가 계속 증가하는 경우에 대한 대처 방식이었다. 기존의 웹 서버들은 사용자의 요구가 들어오면 1:1 방식으로 연결을 맺는 구조로 되어 있다. 따라서 사용자가 증가하는 경우 결국 서버 프로세스나 스레드가 그 수만큼 동시에 늘어나야 서비스를 할 수 있다. 그러나 이러한 방식은 사용자가 증가하면 할수록 서버에 걸리는 부하도 따라서 증가하기 때문에 많은 문제점을 야기한다. 물론, 사용자가 증가하면 서버에 발생하는 부하가 적을 수는 없다. 더 많은 메모리와 CPU 오버헤드를 감수해야 하는 것은 당연한 일이다. 그러나 사용자 증가로 인해 서버에 발생하는 부하가 비례적으로 증가하여 더 많은 하드웨어를 추가로 사야 한다면, 이는 적절한 해답이 될 수 없다. 즉, 사용자가 증가해도 서버 자체에서 적절히 대응하여 일정 수준까지는 무리 없이 서비스를 가능하게 하는 구조가 되어야 무한하게 확장하는 웹에 대응할 수 있는 것이다.
- 다른 웹 서버와의 비교
초기의 웹 서버는 httpd의 구조를 그대로 계승했기 때문에 사용자 요구마다 프로세스가 발생해서 처리하는 구조이다. 따라서 앞에서 언급한 대로 사용자가 증가하면 프로세스도 같이 비례하여 증가하게 되므로, 사용자 수가 일정 수 이상이 되면 서비스에 많은 무리가 생긴다. 이는 시스템마다 프로세스의 수가 한정되어 있고, 프로세스가 증가하면 너무 많은 메모리를 차지하는 등의 오버헤드도 함께 증가하기 때문이다. 이로 인하여 새로운 상용 웹 서버들이 등장하면서 급속도로 확장하고 있는 웹 환경에 대처하기 위하여 새로운 구조를 채택하였다. 가장 일반적인 것이 멀티 스레드 기술을 이용한 것이다. 이는 프로세스보다 오버헤드가 적은 스레드를 사용하여 서비스하는 것으로 기존 프로세스 방식보다 월등히 좋은 성능을 나타냈다. 스레드는 프로세스 내부에서 여러 개를 동시에 이용할 수 있기 때문에 오버헤드도 적고, 차지하는 메모리도 프로세스 방식보다 상당히 적기 때문이다. 그러나 이러한 방식도 문제를 가지고 있다. 스레드 기술이 상당히 우수한 기술임은 틀림없지만 내부에서 자신들 간의 영역 다툼으로 인하여 데드락 등의 문제가 빈번하게 발생하기 때문이다. 이것은 특히 안정성에 있어 치명적이다. 스레드 구조에서 데드락이 발생하면 자체 스레드가 서비스를 수행하지 못함은 물론, 자칫하면 전체 시스템이 다운되어 서비스 불능 상태가 될 수 있다. 이는 성능뿐 아니라 안정성도 중요한 요소가 되는 웹 서버에 치명적인 결함이 될 수 있다. 위에서 언급한 2가지 방식은 서로 장단점이 있다. 성능과 안정성 면에서 서로 양극단을 달리고 있다고 보면 될 정도로 차이가 있다. 하지만, 성능과 안정성 모두 웹 서버에게 있어서는 놓쳐서는 안 될 아주 중요한 고려 사항이다. 둘 중의 하나만 충족되지 않아도 원만한 서비스가 되지 않기 때문이다. 티맥스소프트에서는 웹투비를 개발하면서 성능과 안정성을 모두 충족시키기 위하여 많은 구조를 검토하고 연구하였다. 웹투비에서는 안정성을 위하여 프로세스 구조를 채택함과 동시에 성능을 위해 스레드 구조를 접목하였다. 안정 및 성능을 위해 각 프로세스를 독립적으로 만들지 않고 각각의 특별한 기능을 하는 프로세스를 두어 역할을 분담하고, 특정 프로세스의 경우 특별한 기능을 하는 스레드를 두어 역할을 분담하였다. 또한, 각 프로세스마다 만약의 경우를 대비하여 여분의 보조 프로세스를 두는 것을 가능하게 하여 안정성에 치중하였다.
- 구성
구성 구성항목 상세내역 System Process 시스템 운용 Process(WSM), 리스너 Process(HTL, HTTP Listener), 핸들러 Process(HTH, HTTP Handler), Gw process 구성 Web Service HTML, PHP, CGI, SSI, PHP 등을 처리하기 위한 각각의 서버 프로세스를 제공하는 영역 Web Container 웹투비의 Web Container 영역은 제우스 Servlet 엔진을 탐재하여 JSP 및 Servlet 프로그램 지원과 Web 관리자 툴 지원 Wsadmin 웹 관리자 툴(WebAdmin), 커맨드라인 기반의 관리자 툴(wsadmin)
- 주요 프로세스와 스레드
- WSM(WebtoB System Manager)은 전체적인 웹투비 시스템의 운용 프로세스로써 시스템의 운영 정보를 관리하고, HTL/HTH 프로세스 및 모든 서버 프로세스들을 관리하는 프로세스이다. 시스템을 기동할 때 WSM은 가장 먼저 메모리에 로드되고 시스템이 종료될 때에는 가장 나중에 종료된다.
- HTL(HTTP Listener)은 클라이언트와 웹투비 간의 연결을 관리하는 리스너 프로세스이다. 클라이언트가 처음 웹투비에 접속할 때에는 HTL과 연결을 맺어 통신이 이루어진다. 하지만 서비스 요청이 있으면 내부적으로 HTH와 연결이 되어 모든 서비스 처리가 이루어진다.
- HTH(HTTP Handler)는 클라이언트 핸들러라고도 하며 실질적으로 클라이언트와 서버의 업무 처리 프로세스 사이를 중계하는 프로세스이다. 서버 프로세스들과의 통신을 통해 모든 실제적인 데이터의 흐름을 관리한다. 즉 클라이언트의 서비스 요청을 받아 그에 해당하는 업무를 처리하며 그 결과를 수신하여 다시 클라이언트에게 되돌려준다. 최대한 록을 잡지 않는 고성능 아키텍처의 스레드 모델로 구성되어 있으며 각 스레스별로 아래와 같은 역할을 담당한다. 이 외에도 PHPS(PHP Server), CGIS(CGI Server), SSIS(SSI Server) 등이 있다.
- 관리툴
관리 툴 관리 툴 설명 wsadmin WebtoB 시스템 전체적인 관리를 위해서 사용되는 툴로서 시스템 정보 및 관리자의 작업들을 수행할 수 있다. wscfl 텍스트 기반의 환경 파일을 컴파일해서 바이너리 파일로 변환한다. wsuncfl 컴파일된 바이너리 파일을 텍스트 기반의 환경 파일로 변환한다. wsmkpw 사용자 인증에 관련된 정보들을 암호화해서 특정 파일을 생성한다. wsmkppd *SSL.PassPhraseDialog 설정 중 "file:<passphrase file path>"로 설정할 때 사용할 passphrase 암호를 저장하고 있는 파일을 생성한다.
- 환경변수
환경변수 설정 환경변수 설명 WEBTOBDIR 웹투비가 설치된 디렉터리 정보를 설정한다. (필수 항목) WEBTOB_LICENSE 라이선스 파일명을 변경하는 경우 설정한다. (기본값: license.dat) WEBTOB_RAC_PORT wsracd가 사용하는 포트 번호를 변경하는 경우 설정한다. (기본값: 3333) WEBTOB_PREFER_IPV6 IPv6 주소를 사용하고자 할 경우 'Y' 혹은 '1'로 설정한다.
- 디렉토리 구성
WebtoB |-- bin |-- lib |-- usrinc |-- ap |-- config |-- path |-- log |-- docs |-- license
bin은 실행 파일들이 위치하고, lib는 라이브러리 파일이 위치하고 usrinc는 API 함수들의 헤더 파일이 위치하고 ap는 사용자 프로그램이 위치하고 config는 웹투비 환경 파일이 위치하고, path는 프로세스 내부 통신을 위한 네임드 파이프(Named Pipe)가 생성되고 log는 로그 파일들이 위치하고 docs는 웹투비에서 기본적으로 등록되는 HTML 문서가 위치하고 license는 웹투비 라이선스 파일이 위치한다.
성공사례
- 인천국제공항 공항 운항정보 표출 시스템(FIDS, Flight Information Display System)
- 요구사항
365일 무중단 운영 시스템으로써 서비스 가용도 99.98%이상, 5초 이내의 빠른 데이터 응답시간, 5천 여대 이상의 단말기에 실시간 데이터 전송, 공항 피크타임 처리, 네트워크 부하 없는 동영상 및 이미지 처리 등의 요구사항을 안정적으로 처리하기 원했다.
- 도입효과
FIDS 개발 시 부하상황에 대한 사전 테스트가 가능해졌으며, 안정적인 무중단 운영 체계를 지원하게 되었음. 또한 외산 대비 안정적 기술지원 및 비용 절감 측면에 효과가 있었다.
- 적용 솔루션
SysMaster, 제우스, 웹투비
- 한국철도공사 예약·발매시스템
- 요구사항
새로운 예약문화를 선도하고 수익 극대화를 목표로 웹 기반의 대고객 예약 발매 서비스를 구축하고자 하며, 예상되는 고객 수송량 증가와 대수송 기간의 접속자 폭주를 위해 안정적 고성능을 원했다.
- 도입효과
고속철도 예약 발매 시스템은 세계 최초로 오픈 시스템으로 성공적으로 구축되었으며, 본 프로젝트를 통하여 티맥스의 트랜잭션 처리에 대한 우수한 성능과 안정성을 입증했고, 메인프레임에서 오픈 시스템으로 전환하면서 티맥스 및 제우스 기반의 3Tier로 구성하여 메인프레임에 버금가는 안정성을 확보했다.
- 적용 솔루션
웹투비, 제우스
- 온-나라 시스템
- 요구사항
온-나라시스템은 각 기관의 표준화된 업무관리를 지원하기 위하여 업무환경에 최적화된 Web/Was 필요
- 도입효과
일관성 있는 제품 확보(제품 업그레이드 시 영향도 문제 탈피 – JDK, 웹서비스 연계 등) WAS 벤더 종속성 탈피와 국산 SW(WAS) 보급 확산 적시 기술지원을 통한 시군구 확산 사업간 시너지
- 적용 솔루션
웹투비, 제우스
- SK Telecom 차세대 마케팅 시스템
- 요구사항
2천만 명의 회원 정보를 통합 관리하여 신속한 정산 및 마케팅을 전개하고 빠른 상품개발 및 대용량 트랜잭션 처리, 무중단 서비스를 목표로 함
- 도입효과
제우스를 비롯한 티맥스, 애니링크, SysMaster, 프로 프래임 등 티맥스소프트의 집중제품으로 성공적으로 구축했고 제우스, 웹투비B 기반에서 비즈니스 로직의 안정성과 성능, 정합성을 보장했다. 신규 가입신청 시간 단축 및 단일 데이터 활용으로 정보 불일치를 해소했다.
- 적용 솔루션
웹투비, 제우스, 티맥스
- 삼성전자 G-MES
요구사항 으로기존 C/S 환경 및 일부 외산 WAS 제품으로 구성된 휴대폰/가전 부문의 MES 시스템을 모두 자바환경으로 재구축하고자 한다.
- 도입효과
제우스가 핵심 미들웨어 플랫폼으로 선정되어 C/S 환경을 Web 환경으로 전면 전환하였으며, 외산 WAS(WebLogic)를 제우스로 전환하여 H/W, S/W, 어플리케이션까지 국내에서 패키징하여 32개 국내외 법인에 인도했다.
- 적용 솔루션
웹투비, 제우스
- 신한카드 차세대 계정계 시스템 구축
- 요구사항
미래지향적인 IT인프라 구축을 위해 핵심시스템(계정계/승인계) 전면 재구축. 오픈시스템 기반으로 대외기관을 통합하고, 표준화된 전문과 단일 아키텍처를 구성하여 시스템의 안정성과 유연성을 확보한 대외연계 시스템을 구축하고자 한다.
- 도입효과
국내 카드사 최초 자바 기반 계정계 구축했고, 오픈시스템 환경의 신속한 업무개발, 총소유비용(TCO)절감, 단일화된 아키텍처 및 표준화된 내부 시스템을 구현했다.
- 적용 솔루션
제우스, 웹투비, 티맥스
각주
참고자료
- 티맥스소프트 공식 홈페이지 - https://kr.tmaxsoft.com/
- 〈티맥스소프트 공식 홈페이지〉, 《티맥스소프트》
- 〈WebtoB 소개〉, 《티맥스소프트》
같이 보기