WebLogic의 HTTP Publish-Subscribe 서버 사용하기

View Comments


HTTP Publish-Subscribe Server(이하 pub-sub)은 채널들에 대기(subscribe)하고 있는 웹 클라이언트들에게 HTTP를 이용하여 비동기적으로 메시지를 보내는(publish) 기술이다.
다시말해 일반적인 웹 환경하의 서버-클라이언트 프로그래밍 방식으로 구현할 때 발생하는 서버의 부하를 줄이고자 채널에 대기중인 클라이언트에게 서버에서 메시지를 보내는 방식으로 구현된 서버이다.

pub-sub 서버는 cometd 프로젝트에서 제안한 Bayeux protocol에 기초하여 만들어졌다. 보다 자세한 사항은 각 링클를 통하여 확인한다. (사실 필자도 제대로 읽어보진 않았음.. ㅠㅠ)

아직은 필자가 자세한 내용을 다뤄보지 않아서 세부적인 내용은 다음에 다루기로 하고, 간단한 설정 및 맛보기를 해보자.

본 문서는 WebLogic 10.3.4에서 테스트 되었다.

1. WebLogic 설치시에 반드시 Web 2.0 HTTP Pub-Sub Server를 설치하여야 한다.

1.4에 선택 된 것을 확인할 수 있다.


2. WebLogic 도메인 생성 후 콘솔에 접속하여 pubsub-1.0.war를 라이브러리로 배포한다.
- pubsub-1.0.war 파일은 WebLogic 설치 디렉토리/wlserver_10.3/common/deployable-libraries 밑에 위치한다.


3. Web Application을 만든 후 WEB-INF/weblogic.xml 파일에 다음을 추가한다.

    pubsub
    1.0   


4. WEB-INF 밑에 weblogic-pubsub.xml 파일을 생성하여 다음을 추가한다.




  
    /hello/**
  

  
    
      subscribe
      subscribe channel constraint
      /hello/*
      subscribe
      create
      publish
    
  



5. Dojo Toolkit을 다운로드받아 Web Application root에 복사한다.
- 필자는 1.6 버전을 다운로드 받았으며 Web Application root의 dojo-release-1.6.1 디렉토리에 복사하였다.

6. Web Application root에 msg.html 파일을 생성하여 다음의 내용을 추가한다.
  
	
    

    
  
  
    
  


7. Web Application을 배포한 다음 브라우저 2개를 띄우고 한쪽의 브라우저에서 버튼을 누른다.

간단히 설명하자면,
msg.html을 클라이언트에서 실행하면(브라우저에서 열면) "/hello/world"라는 이름의 채널에서 수신을 대기하고(브라우저에서 request를 보낸 후 서버에서 response를 받지 않은 상태, dojox.cometd.subscribe)에서 버튼을 클릭하여 메시지를 보내면(dojox.cometd.publish) pub-sub 서버는 "/hello/world" 채널에서 대기중인 클라이언트들에게 메시지를 보낸다.

설명이 뭔가 모호한 구석이 있네.. ㅎ

결론은 WebLogic에서는 comet, reverse ajax, long polling 등등의 기술을 지원하기 위해서 cometd 프로젝트의 Bayeux protocol을 사용하는 라이브러리를 제공하며 이를 이용하기 위해서는 Web Application의 Descriptor에 간단하게 기술하여 사용할 수 있다는 것이다.

참고사이트
- Real-time Updates on WebPages - Part 2 - Hello World Comet Application
- Using the HTTP Publish-Subscribe Server


Comments (+add yours?)

Tracbacks (+view to the desc.)