LCDS와 BlazeDS 간단히 비교해 보기

1. 제공하는 서비스

기본적으로 LCDS 2.5에서는 4가지 서비스가 제공된다.

LCDS 자체가 미들웨어로서 리모트 서버와 플렉스 클라이언트 사이에서 연결 역할을 해서,
예를 들어 다른 도메인의 데이터를 불러올 때 crossdomain.xml 을 해당 서버에 설정하지 않아도 되게 해 주는
Proxy Service가 첫 번째이고

두 번째로 자바 클래스의 메소드와 속성에 직접 접근할 수 있도록 해주며 AMF를 이용한 ActionScript와 Java Back End간의 소통을 가능케 해주는 Remote Object Service!

세 번째로 Producer 와 Consumer 컴포넌트를 이용한 동시 작업을 가능케 해주는 Messaging Service

그리고 마지막으로 데이터 동기화를 가능하게 해 주고 서버 사이드 푸쉬 기술의 핵이라 할 수 있는 Data Management Service 그것이다.

이 중 어느 하나도 하찮은 서비스가 없으나 실제로 이들 서비스는, 실상 전혀 그렇지 않음에도 불구하고, 서로
중복돼 보이기도 하고 뭐가 뭔지 헷갈려 보일 때도 많다. 그러나 찬찬히 살펴보면, Proxy Service는 리모트 서버와 작업할 때만 필요하고 그렇지 않을 경우에는 필요없는, 가장 중요도가 떨어지는 서비스이다. 반면 Remote Object Service는 기존 BackEnd의 로직을 그대로 유지하면서 플렉스로 클라이언트단을 새로 개발하려는 (특별히 자바) 개발자들에게는 아주 유용한 서비스이다. 중요성은 두 번째라 할 수 있고, 경우에 따라서는 가장 핵심적인 서비스라고도 할 수 있다. Messaging Service는 말 그대로 공동 작업이 필요한 경우에 쓰면 되는 서비스이다. 예를 들어, LCDS나 Blaze의 샘플들에 자주 나오는 차트 클릭하면 같은 화면이 동시에 업그레이드되는... 신기한 기술이기는 하지만, 공동 작업이 많지 않은 경우에는 잘 안쓰게 된다. 마지막으로 Data Management ServiceBlazeDS에서는 살짝 빼놓은 서비스로 데이터를 동기화하고 진정한 의미의 Data Push를 가능케 해주는 가장 핵심이 되는 서비스이다. 동시에, 가장 돈이되는 서비스이다.

결론적으로 Blaze DS에서는 얼핏 LCDS의 모든 서비스가 제공되는 것처럼 보이지만, 실제로는 Data Management Service가 생략되어 있다. 이러한 사실은 BlazeDS에서 제공하는 설정 파일 중에는 data-management-config.xml 파일이 없다는 사실로 쉽게 확인할 수 있으며, BlazeDS에서 제공하는 samples 예제 중에도 LCDS에서 제공하는 hibernate 예제가 빠져있다는 사실로도 확인할 수 있다.

결론적으로 BlazeDS는 오픈소스이고 무료인 대신, 데이터 메니지먼트 서비스는 제공하지 않으며, 이점은 다소 유감스러운 일이라 할 수 있다! (여기에 덧붙여서 BlazeDS에서는 PDF 동적 생성 기능도 제공하지 않는다 ㅠㅠ)

2. 설치 과정

LCDS 2.5와 BlazeDS의 설치 과정 사이에 큰 차이점은 없다. 다만 LCDS의 경우 설치 후 flex.war, flex-admin.war, samples.war 파일을 컨텍스트 루트에 복사하는 것으로 대부분의 작업이 끝났다고 한다면 (톰캣에서 메세징 서비스를 사용하려면 common/lib에 jotm.jar, jotm_iiop_stubs.jar, jotm_jrmp_stubs.jar 등을 복사해 붙여넣어야 하지만) BlazeDS의 경우는 사용자 편의를 위해 아예 톰캣 6 버전과 연동해 출시되었다. 다른 WAS와 연동하려면 http://labs.adobe.com/wiki/index.php/BlazeDS:Release_Notes 를 참조해서 진행하면 되는데 방법은 상당히 간단하다. BlazeDS의 경우에는 별도의 설치 과정이 없이 war 파일들을 복사해서 디플로이 시키는 것으로 대부분의 설치가 끝나게 된다.

3. 예제 실행

LCDS 2.5의 경우에는 http://localhost:8080/samples/ 에서 예제를 확인할 수 있고, BlazeDS 통합 버전의 톰캣을 사용해 BlazeDS를 설치한 경우에는, 톰캣의 port가 기본적으로 8400으로 잡혀 있으므로http://localhost:8400/samples/ 여기서 예제를 확인할 수 있다.

앞서도 잠깐 언급했지만 BlazeDS에서는 데이터 메니지먼트 서비스를 지원하지 않기 때문에, BlazeDS에서는 LCDS에서 볼 수 있었던 hibernate 예쩨를 볼 수 없다. 참고로 LCDS 2.5를 실행하더라도 hibernate 예제는 바로 실행되지 않는다.
hibernate 예제를 실행해서 실시간 데이터 push 어플리케이션을 체험해 보려면, LCDS가 설치된 디렉토리 (WAS의 컨텍스트 루트가 아니고 C:\의 LCDS 설치 디렉토리를 말한다)의 resources 폴더 밑에 있는 모든 jar 파일을 해당 컨텍스트 루트의 WEB-INF\lib 에 모두 복사한 후 data-management-config.xml 파일에서 <destination id="hibernate-contact"> 이 부분이 주석처리되어 있는 걸 모두 해제한 후 WAS를 재기동시켜야 한다.


4. 개발 진행

글이 처음 생각했던 것보다 다소 길어졌다. LCDS 2.5의 경우 플렉스 2.01과 플렉스 hot-fix 1이 설치된 버전에서 사용가능하다. 플레스 2.01과 관련해서는 hot-fix가 3까지 나왔는데 LCDS 2.5와 관련된 부분이 상당히 많아서 LCDS 2.5를 설치하면 이런 패치가 자동으로 깔리게 되므로 LCDS 2.5를 사용하기 위해 플렉스 hot fix 3까지 모두 설치할 필요는 없다! 또한 LCDS 2.5는 플렉스 3 버전에서도 사용 가능하다.

반면 BlazeDS는 플렉스 2.01에서는 사용할 수 없고 플렉스 3 버전만을 지원한다. 이런 내용이 Release Note에 나오지 않은 것은 참으로 유감스러운 일이지만, 사실이다. BlazeDS는 반드시 플렉스 3 버전을 이용해 개발해야 한다.

5. 마치며...

이상으로 BlazeDS와 LCDS를 간단히 비교해 보았다. LCDS 전부가 오픈 소스로 전향되었다면 더 좋았겠지만, 이 정도로 Adobe가 LCDS 중 3/4을 딱 잘라서 오픈해 준 것만으로도 RIA 개발자들은 행복한 비명을 지를 수 있게 되었으리라 생각한다. 또 PDF 동적 생성의 경우에는 LCDS를 사용하지 않더라도 별도로 제공되는 오픈 소스 라이브러리가 있다는 사실로 위안을 삼아본다. 그렇다면 역시 가장 걸리는 건 Data Management Service 부분인데, 추후엔 이 부분도 오픈 소스로 제공되었으면 하고 바라며 (어도비는 뭘 먹고 살라고) 글을 마친다.

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/09/29 13:59 2008/09/29 13:59
tagged with  , ,
REPLY AND TRACKBACK RSS http://joshy21.com/weblog/rss/response/2
REPLY AND TRACKBACK ATOM http://joshy21.com/weblog/atom/response/2
TRACKBACK ADDRESS
http://joshy21.com/weblog/trackback/2
tracked from 지돌스타의 Flex와 천문프로그래밍
REPLY RSS http://joshy21.com/weblog/rss/comment/2
REPLY ATOM http://joshy21.com/weblog/atom/comment/2
비밀방문자 
wrote at 2008/10/22 10:15
관리자만 볼 수 있는 댓글입니다.
wrote at 2008/10/29 20:51
질문이 있어요. Data push는 Message Service 에서 해주는게 아닌가요? Data Management Service 에서 진정한 의미의 Data Push를 해준다는 말이 무슨 말인지 잘 이해가 안되네요.
eirene 
wrote at 2008/10/30 13:33
일단 Data push는 물론 메세징 서비스를 사용하는 게 맞습니다. 사실 데이터 메니지먼트 서비스도 이런 메세징 서비스를 바탕으로 하고 있죠. 하지만 데이터 메니지먼트 서비스는 data push시 클라이언트 로직을 거의 필요로하지 않고 서버 로직과 설정만으로 데이터 푸시를 가능하게 한다는 점에서 기본 메세징 서비스와는 구별됩니다. 또 데이터 메니지먼트 서비스는 메시징 서비스를 쓸 때처럼 Producer, Consumer 컴포넌트를 사용하지 않고 DatsService 컴포넌트를 사용한다는 점에서도 다르죠...

어떻게 보면 메세징 서비스만으로 데이터 푸시를 구현하는 건 좀 노가다이고 많은 설계가 필요한 반면, 데이터메니지먼트 서비스는 아예 근본 자체가 서버를 중심으로 한 데이터 푸시를 지원하기 위한 서비스이기 때문에 그렇게 표현했습니다.
wrote at 2008/10/30 17:08
좋은 설명 감사드려요 eirene님 ^^
eirene 
wrote at 2008/10/30 19:16
☆말씀을 ㅇㅇ
[로그인][오픈아이디란?]
이름 :
비밀번호 :
홈사이트 :
비밀글 :
*1  ... *104  *105  *106  *107  *108 
count total 10269, today 2, yesterday 16
관리인 : eirene
rss
I am
전체
Development
La vie quotidienne
English
Languages
Jesus
글 보관함
2010/01, 2009/06, 2009/03, 2009/02, 2009/01,
달력
«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31