티스토리 뷰

걷다보니 여기까지.../SSM

InfoEcosystem

JOHNPARK82 2006. 6. 11. 23:37
※ 이 프로젝트는 삼성 소프트웨어 멤버십 지원을 위해서 본인이 구현한 내용입니다. 프로젝트의 내용과 아키텍쳐는 본인의 것임을 미리 주지하며, 도용을 금합니다.
프로그램은 현재 각 로컬 PC에 설치되기 시작한 어플리케이션중 그 용도가 로컬 메타 데이터 베이스로서 이용이 가능한 어플리케이션을 이용해 이 메타데이터에 기반한 검색을 지원하는 것이 목적인 프로그램입니다.
현재 로컬 어플리케이션에서 이용가능한 모듈은 GDS, 간단한 RSS 리더기 정도입니다.

문의 사항은 eternalbleu@_nospam_@izyou.net 로 연락주시기 바랍니다.

소개글
제가 이번에 제출하는 작품은 분산형 네트워크에 기반을 둔 검색 시스템 구축 프로그램입니다.

이 프로그램은 최근 많은 이용 증가율을 보이는 로컬 데스크탑 검색 엔진, RSS 리더기, 미디어 컨텐츠 관리 프로그램등과 연동할 수 있으며, 로컬에 존재하는 이런 정보를 제가 만든 프로그램을 통해서 네트워크로 연결하여 정보 검색을 가능하도록 작성한 프로그램입니다. 이런 프로그램의 특징상 네트워크상 각 노드의 정보들이 하나의 생태계를 이룬다는 의미로 저는 이 프로젝트의 이름을 "InfoEcosystem"이라고 칭하였습니다.

본 프로그램의 핵심적인 기술은 애플리케이션 수준의 분산 네트워크의 구성 기술과 7레벨 라우팅을 통해서 네트워크상으로 보낸 쿼리를 처리하고, 이 네트워크상 각 노드의 쿼리 결과를 쿼리의 생산자에게 전송하는 과정을 개별의 호스트 노드들이 컨트롤하고 네트워크 구성원들이 Self Routing 을 구현하는 과정이 가장 핵심적인 기술입니다.

이 기술의 구현을 위해서 저는 본 시스템에 적합하게 프로토콜을 정의했고, 각 노드에 라우팅 기능이 가능하도록 간이 라우팅 테이블을 작성하도록 구현했습니다. 프로토콜 정의에 관한 아이디어를 얻기위해서 다양한 기술을 참고했고, 그 기술들중에서 동등 계층 통신기법을 다수 공부하여 구현에 참고하였습니다. 네트워크 구성 파트의 테스트를 위해서 상당한 시간을 투자하였습니다.

본 프로그램의 검색 가능성과 검색의 테스트를 위해서 Google Desktop Search과 같은 데스트탑 서치를 이용했고, RSS리더기와의 연동 가능성을 테스트하기 위해서 간단한 RSS리더기를 작성해서 실제로 시스템과 연동하여 검색을 테스트하였습니다.

본 프로그램은 이번에 열리는 대한민국 소프트웨어 공모전에 출전할 작품입니다.


시스템 아키텍쳐

시스템 아키텍쳐


엔드 유저 동작 예시

엔드 유저 검색에 따른


프로그램 동작 설명

프로그램의 메인


프로그램의 로컬 검색 엔진 구현


로컬 메타 데이터 모듈의 예시로 작성한 RSS


클라이언트의 노드 상태를 보여주는


클라이언트 부분의 네트워크 검색기 구현


웹을 통한 검색의 위임과 결과


웹을 통한 검색의 위임과 결과 출력 (XSLT)