메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

JXTA가 입지를 확고히 하다

한빛미디어

|

2001-08-13

|

by HANBIT

6,749

by 라엘 돈페스트(Rael Dornfest) 왜 JXTA를 사용해야 하는가? 현재의 P2P 애플리케이션은 기본적인 네트워킹에 기반하고 있어 직접 P2P 인프라(infrastructure)를 재생성해야 한다. 파워 P2P 사용자는 자신의 데스크탑에서 얼마나 많은 HTTP 서버, 접속 관리 프레임워크(presence management frameworks), 방화벽 파괴 시스템(firewall subdivision systems) 등을 운영하고 있는가? 업무 위주의 저장고가 P2P에 반드시 필요한 공간이라면, 애플리케이션마다 스택을 따로 설정하는 것은 우스꽝스러운 일이다. JXTA를 사용해 보자. JXTA는 P2P 스택으로 되어 있는데, P2P 스택은 웨이퍼(wafer) 모양의 얇은 계층으로, 운영 체제나 가상 머신의 상층에, 실제 P2P 서비스와 애플리케이션 하층에 위치한다. 다음에 나오는 "JXTA 계층 케이크"라는 그림에 이를 시각화해 놓았다. 이 그림은 핵심 기능을 잘 설명하고 있어 P2P 개발자들이 애플리케이션의 종류에 상관 없이, 이 기능층 위에 애플리케이션을 구축하도록 하고 있다. JXTA만 있으면 개발자는 P2P 상호작용에 필요한 모든 것이 구비되었다고 생각해도 된다. 자바 가상 머신이 시작할 수 있는 핵심 인프라와 기능을 제공해 주는 것과 같은 이치이다. 그러니 JXTA와 네트워크 스택을 혼동하지 말자. JXTA는 이 그림에서처럼 "Any Peer" 계층에서 제공하는 네트워킹 계층을 가정하고 있다. JXTA 플랫폼은 좀더 높은 수준의 P2P에 한해 필요한 것에 대한 것으로, 피어 그룹을 만들고 가입 및 탈퇴 메커니즘, 피어간 커뮤니케이션 파이프, 모니터링(접근 제어, 계량화 등), 보안 대비에 관한 것이다.

JXTA 계층 케이크

아키텍처 JXTA 스택은 중간에 JXTA 코어가 있는 계층 구조이다. 맨 아래에서부터 계층을 따라 위로 올라가면서 알아 보자.
  • 하드웨어 맨 아래층은 당연히 하드웨어이다. JXTA는 데스크탑 PC 뿐 아니라, 전자 펄스가 있는 것이라면 어디에나 사용할 수 있도록 고안되었다. 얇은 플랫폼에 경량으로 만들어서 P2P 기본 기술을 팜탑, 셋탑, 게임 콘솔, 휴대 전화, 페이저, 냉장고 등에 이용할 수 있다.
  • 운영 환경 혹은 가상 머신 바로 위층은 운영 환경 혹은 가상 머신이다. jxta.org에서 구현한 것은 자바 가상 머신(JVM)에서 였지만, 이는 프레임워크의 참조 구현일 뿐이다. JXTA 플랫폼은 C, 펄, 파이썬, 마이크로소프트의 자바와 유사한 C#에 이르는 모든 언어로 구현할 것으로 기대하고 있기 때문이다. 위 그림에서는 "Any Peer" 계층으로 나타나 있다.
  • JXTA 기술 계층 JXTA의 P2P 기술이 작동되는 곳이다.
    • 피어 그룹(Peer Groups)은 그룹 일원이 커뮤니케이션, 협업, 공유할 수 있는 기능을 제공한다. 회원 정책과 인증/허가 수단은 과거와 같은 형태가 아닌, 그룹 자체에 위임한다.
    • 피어 파이프(Peer Pipes)는 피어간 커뮤니케이션 채널로, *nix 명령 행이 한 명령의 출력을 다른 명령의 입력으로 파이핑하는 것과 마찬가지 개념이다. 이러한 파이프는 한 방향으로만 작용하며, 피어가 서로 제휴하기 위해 뭉치거나 흩어질 수 있다. *nix 명령 행에서 ASCII 문자열과 비슷한 파이프된 메시지는 XML 문서로, 플랫폼이나 언어, 프로토콜에 독립적이다. 그래서 "Hello, World!" 처럼 파이프를 통해 SOAP이나 XML-RPC 요청을 쉽게 해서, P2P와 웹 서비스 사이에 강력한 애플리케이션을 구축할 수 있다.
    • 피어 모니터링(Peer Monitoring)은 코어의 트래픽을 감시하는 것으로, 인증/허가, 계량화 등을 처리한다.
  • 피어 서비스 계층 피어 서비스 계층은 JXTA 코어 프로토콜 위에 있으며, 완벽한 P2P 애플리케이션을 위한 빌딩블록(building blocks)이다. 이는 cat, grep, more 등 *nix 셸의 각 명령어와 유사하다. JXTA의 최초 예제 서비스/애플이케이션은 JXTA 셸은 참조 피어 서비스이다.
  • 피어 애플리케이션 계층 여기에 그누텔라와 냅스터, 그루브, 인스턴트 메신저 등의 P2P 애플리케이션이 위치한다. JXTA 프로젝트는 플랫폼과 JXTA 셸을 포함한 샘플 애플리케이션, 초기 단계의 컨텐츠 관리 시스템(CMS), 파일 공유 애플리케이션이 있는 GUI 인스턴트 메신저로 시작되었고, 썬이 인프라서치(InfraSearch)를 인수함에 따라 곧 검색 기능도 추가될 것이다. 각 기능은 JXTA 프레임워크 위에 구축하는 애플리케이션 유형의 참조 구현이며, 아직은 미숙한 단계이다. 현재는 JXTA 셸만이 온전한 모습을 갖추고 있다.
단순함 복잡한 시스템의 근본은 단순하다라는 말이 있다. JXTA는 P2P 개발을 위한 기본적인 것만을 제공하는 것을 목적으로 한다. 즉 발견, 관리, 커뮤니케이션을 위한 기본 서비스의 얇은 스택을 제공하는 것이다. 이의 목적을 잘 달성하고 있는지의 여부는 기업이나 개인이 JXTA를 얼마나 사용하는가, 그리고 개발자들의 피드백을 통해 알 수 있을 것이다. 개방성 초기 기술 자문 회사인 Joy"s Law와 일한 경험과 안팎으로 더 나은 것을 받아들이려는 노력으로 JXTA는 오픈 소스가 되었다. 이 프로젝트는 아파치 오픈 소스 라이선스를 빌려 쓰고 있을 뿐 아니라, 아파치의 능력 중심(meritocratic) 개발 모델 또한 수용하고 있다. 조이는 썬에서 자바에 닫힌 소스(closed-source)로 접근을 하고 있는 데 대해 비판하면서, "우리는 세상을 바꾸려고 하는 게 아닙니다. 우리가 자바 기술을 라이선싱하듯이, 세계의 모든 사람이 우리의 JXTA 기술을 라이선스하는 걸 원치 않습니다."라고 밝힌다. JXTA는 jxta.org에서 볼 수 있다. 메일링 리스트에 가입하면 소스 코드, 바이너리, 문서를 읽을 수 있는 권한이 주어진다. 관리 체제는 CVS "위임" 권한을 가치 있는 공헌자에게 부여한다. 조직은 엄격하지 않으며 "소유자"도 없지만, JXTA 팀은 커뮤니티에서 이에 관해 제안하고 이끌어 주길 기대하고 있다. P2P vs JXTA 그러면 다른 P2P와 웹 서비스 영역에 대해 JXTA가 차지하는 위치는 어디인가? XML 오늘날 기본적인 상호운영성의 표준은 물론 XML이며, JXTA는 거의 XML로 작성한다. 피어, 그룹, 토크, 메시지, 파이프 광고는 XML 문서이다. 다음은 저자가 온라인에 접속해 있다는 것을 보여 주는 인스턴트 메시지 광고이다.

JXTA>cat adv0





  
    jxta://59616261646162614A787461503250333DA9279761254559B209922
    BACA69E1900000000000000000000000000000000000000000000000000000
    00000000301
  
  
    JxtaTalkUserName:rael
  

SOAP/XML-RPC가 웹 서비스와 연계돼 있어서 JXTA 기술 고문 위원회나 개발 팀에서 이에 관해 듣게 되는 건 당연하다. 이러한 플랫폼과 언어에 독립적인 원격 프로시저 호출이 특정 JXTA 구현에 상관 없이 간단한 상호운영성을 부여할 것이다. 또한 JXTA에 웹 서비스영역과 이의 넷 이펙트(NET Effect) 주도도 가능하게 할 것이다. 썬에서 JXTA는 어떤 위치를 차지하고 있는가? 썬은 JXTA를 연구 프로젝트로 주의 깊게 드러내고 있다. 썬의 다른 기술과 어떻게 연결돼 있는지에 대해서는 거의 알려져 있지 않다. JXTA가 "네트워크가 컴퓨터다" 라는 썬의 비전의 연속임은 분명해 보이지만, 사람들은 썬 내부에서는 JXTA를 어떻게 보고 있는지, 그리고 JXTA에 비즈니스 모델이 있는지에 더 관심이 있다. Q: JXTA 프로젝트를 위한 썬의 비즈니스 모델은 무엇인가? A: 썬이 중점을 두는 것은 광범위한 네트워킹을 지원하는 혁신적인 시스템과 소프트웨어를 개발하는 것이다. JXTA 프로젝트는 우리의 시스템과 소프트웨어가 P2P 네트워크에서 활동 피어가 되게 해 줌으로써 부가 가치를 제공한다. 그 결과 썬의 현재 클라이언트/서버 네트워크 솔루션이 완벽해 지는 것이다.[JXTA FAQ] 썬의 넷 이펙트 웹 서비스 주도라는 면에서 보면, JXTA는 컴포넌트 간의 커뮤니케이션은 물론, 피어/서비스에도 가장 적합할 것이다. P2P와 웹 서비스가 합쳐질 수 있는 힘을 JXTA가 제공할 것으로 보인다. 물론 JXTA 셸의 기능을 솔라리스 명령 행 환경에 통합하는 것은 아주 쉬운 일이다. JXTA가 계속 이러한 방향으로 나아간다면, 나중에는 P2P로 가능해진 *nix 셸도 볼 수 있을 것이다. 2월에 열린 썬의 "The Net Effect: To Services and Beyond" 집회에서 CEO인 스콧 맥닐리는 썬이 "인프라 시스템 제공자가 되어 기쁘다"라고 공표했는데, 필자의 생각으로 썬은 앞으로 그냥 "인프라 제공자"가 되어야 할 것이다. 마이크로소프트의 닷넷(.NET)과 헤일스톰(Hailstorm) 가장 흥미를 끄는 것은 MS의 닷넷과 헤일스톰에 대해 JXTA가 어떤 위치를 점하고 있느냐이다. 표면상으로는 이들이 표명하는 것이 거의 유사하다. 모두 피어간의 상호 작용과 상호운용 서비스를 위한 오픈되어 있으며, 플랫폼과 언어에 독립적인 프레임워크이다. 하지만 MS에 비하면 썬의 JXTA는 고목나무의 매미와도 같다. MS는 닷넷과 헤일스톰을 자사가 철저하게 소유하고 있는 윈도우 OS 및 관련 제품/서비스군과 통합하는 데 중점을 두고 있다. 헤일스톰이 웹 서비스의 개별 제공자들을 가질 것이라고 내세우고는 있지만, 이러한 "파트너들"이 서로 약 결합(loosely coupled) 플러그인(plug-ins)이 될 가능성은 거의 없다. 데일 도허티의 말을 빌자면, "헤일스톰이 계층으로 된 케이크라고 치면, MS는 케이크를 팔지 계층을 팔지는 않는다."는 것이다. 그리고 MS의 패스포트(Passport) 서비스인 헤일스톰의 분산 아키텍처에는 집중된 것들이 있다는 것도 상기하자. 집중식 인증과 로그인 관리 시스템에 대해서는 "MS는 당신의 정체성을 소유하고 나선 당신에게 한 달에 몇 달러를 내고 빌려 쓰라고 하는 겁니다" 라고 클레이 셔키가 언급한 바 있다. 반면 썬은 약 결합(read: piped), 대체 가능한 부분이라는 분명한 아키텍처와 철학적 비전을 가진 유닉스 혈통을 보여 주고 있다. JXTA는 스택의 한 계층, 혹은 세 계층만을 목표로 하며, 작업을 완수할 수 있는 토대만을 제공한다. JXTA에서는 보안, 로그인, 서비스, 애플리케이션 등 핵심 피어간 병치를 넘어서는 모든 것은 플러그인이다. 그렇게 되면 MS의 패스포트는 하나의 가능한 인증 메커니즘으로 바로 JXTA에 플러그될 수 있다. 독자적인 P2P 노력 JXTA는 P2P나 협업 컴퓨팅 영역에서 여러 독자적인 노력을 하고 있는 개발자들을 위한 인프라에서 가장 시급한 P2P 스택을 제공할 수 있다. 그누텔라, 오픈냅, 그루브, 데스크탑 웹사이트 등이 여기에 해당하는 것 같다. 켈리 트루러브는 Clip2의 JuxtaNet 기사에서 JXTA와 그누텔라를 비교하고 있다. 결론 JXTA는 최초의 P2P 스택이 아니듯이 최후의 P2P 스택이 되지도 않을 것이다. 하지만 P2P 스택의 프레임워크가 어떠하다는 것을 보여주는 최초의 시도임은 분명하다. JXTA 프로젝트의 성공 여부는 이 프로젝트가 연구에서 출발하여, 개발자가 채택하고 커뮤니티에서 확장하는 사용하기 편리한 프레임워크로 나아갈 수 있느냐는 것이다.
라엘 돈페스트(Rael Dornfest)는 JXTA 기술 고문 위원회의 일원이다.
TAG :
댓글 입력
자료실

최근 본 책0