Apache - Korean UserGroup WebDAV : Collaboration based on Apache

김규 하([email protected]) CSA,SCNA,CCNA,CISSP Korea technical office - CollabNet,Inc Computer Eng dept. - Hansung University Apache Korean User Group Apache Korean Session Summary User Group ¾ 협업 — WebDAV 이전의 아파치 웹서버 ¾ WebDAV란? — WebDAV Benefits ¾ WebDAV Basics — mod_dav 소개 ¾ WebDAV 활용 — WebDAV softwares ¾ WebDAV 설치 및 운영 ¾ SubVersion이란? — SubVersion & CVS features ¾ SubVersion 설치 및 운영 — SubVersion Basic work scenario — SubVersion softwares ¾ Resources & References ¾ Q&A

-2 - Collaborations based on Apache http://www.apache-kr.org Apache Korean 협업 ? User Group ¾ Collaboration ¾ 협업 소프트웨어들 — Collaborative groupwares — Groove — Collaborative tools — Collaboration systems ¾ 협업 소프트웨어의 기본적인 요건들

참여자들의 입장에 따라 보장되는 가시성

완벽하고 실제적인 보안성

다양한 배경의 사용자들을 위한 확장성

언제 어디서든 표준환경으로 참여할 수 있는 접근성

쉬운 사용으로 교육 없이 참여할 수 있는 사용성

-3 - Collaborations based on Apache http://www.apache-kr.org Apache Korean 협업 ? User Group

-4 - Collaborations based on Apache http://www.apache-kr.org Apache Korean 협업 ? User Group

Tool & Embedded Mobile Service Technology Software Phone Providers Providers Companies Manufacturers

Java Libraries IDEs WAP Protocol 1 “2G” CDMA

WebSphere iMODE Protocol 2 “2.5G” CDMA IDEs Libraries

C# Libraries SKVM IDEs SK WITOP “3G” GSM

Content Providers e.g., daum, Yahoo, ISVs Users

-5 - Collaborations based on Apache http://www.apache-kr.org Apache Korean 협업 ? User Group ¾ OpenSource Community — 비영리적 오픈소스 커 뮤니티 — 기업 주도의 오픈소스 커뮤니티

-6 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV 이전의 아파치 웹서버 인프라 User Group ¾ Apache : A patched web server — HTTP 프로토콜을 기반 —WEB을 전 인류에게. — 점유율 1위 — 오픈 소스 기반 웹 서버 소프트웨어 — 다양한 확장 소프트웨어들

-7 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV 이전의 아파치 웹서버 인프라 User Group ¾ Readonly! ¾ Extenstions — Additional tools — Different protocol 9Security 9Learning cost 9Standardization

WebServer

Extensions

-8 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV User Group ¾Web based Distributed Authoring and Versioning —HTTP + Collaboration

WebDAV server

-9 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV 란? User Group ¾ 협업 인프라 — 모든 종류의 컨텐츠를 협업적으로 작성하고 관리할 수 있도록 하는 프로토콜 ¾ 데이터 통합 — 문서 관리, 버전관리 및 형상관리, 이메일 저장소, 파일 서버 등 ¾ 원격, 분산 소프트웨어 개발 — 분산 협업 소프트웨어 개발 Subversion (DAV & DeltaV) ¾ HTTP 프로토콜의 확장 — 덮어쓰기 방지 9 Lock,Unlock — 리소스 관리 9 Collection 9 Resource creation, copy, move, Mkcol,Move,Copy — 문서 속성 9 Propfind ¾ XML 기술의 활용 : 속성, 제어, 상태 ¾ 표준화 — RFC 2518,RFC 3253

- 10 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV History User Group ¾ WebDAV 이전의 다른 시도들 — Data integration 9 NFS : Network / WebNFS 9 POP3, IMAP and many other protocols — Distributed authoring : 9 Microsoft FrontPage 9 Netscape Composer ¾ 1996 년 —Web을 통한 소프트웨어 개발 및 원격 저작을 위한 방법 모색 — Jim Whitehead(UC Irvine), Dan Connoly (W3C), Larry Masinter(Xerox) — Microsoft , Novell, Netscape 등 업체에서 참여. ¾ 1999년 2월 — RFC 2518 : Core features defined

- 11 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Benefits User Group ¾ 웹 컨텐츠 사용자 — 문서 작업을 위한 메타데이터 활용 — 디렉토리 리스팅 ¾ 웹 컨텐츠 저작자 — 서버에 저작물을 올려두기 위한 표준적인 방법 제공 — 저작물의 복사 및 이동 — 동시 저작을 위한 겹쳐 쓰기 방지 ¾ 관리자 — Security Benefits — 표준 프로토콜을 통한 데이터의 이동 — 시스템 계정 없이 HTTP 기반으로 인증 제공

- 12 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Technical benefits User Group ¾ 단순성 ! ¾ HTTP 인프라스트럭쳐에서의 장점 계승 — 인증(Authentication) — 암호화지원(Encryption) — Proxy /Firewall navigation — 가장 널리 사용 — 다양한 기존 툴들 ¾ 이미준비된다양한툴및제품들 ¾ Pluggable data storages — RDBMS, XML database, File system ¾ 널리확대된 저변 (Knowhow pool)

- 13 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Business Drivers User Group ¾ 분산및협업소프트웨어구현을위한최적의인프라스 트럭쳐 — 협업 프로젝트, 문서 관리 기반 협업, 컨텐츠 관리, 웹 디스크, 협업 소프트웨어 개발 — Cost effective ¾ 이미 WebDAV를지원하는많은수의서버제품및툴들. — Cross platform data integration 가능 ¾ 기존 투자 보호 —WebDAV서버로의 변경 — 다양한웹서버기반Datastorage자원 활용

- 14 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Webdav Basics User Group ¾ Namespace & Resource management —Collection —Resource —Member Resource —URL 계층구조 Resource — Create,move,

copy.delete… Collection Resource

Resource

Member Member Resource Resource

Member Member Member Resource Resource Resource

- 15 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Webdav Basics User Group ¾ Metadata — Properties 9Name : uniquely identified with URIs 9Value : well-formed XML fragments — Records Metadata 9author, title, modification time, size ¾ 겹쳐쓰기 방지 : Locking — Shared & exclusive locks —Lock 속성 9timeout, owner, depth —Lock 인식 9authentication 9lock token

- 16 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Basics User Group ¾ Search — DASL : DAV serching and locating — Server Wide Search — Property and contents searching — Multiple Scopes

- 17 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Basics User Group ¾ Versioning — DeltaV : RFC3253 — Revision control — Configuration management — Server Repository & Client Working copy — Baselines :: Snapshots — Activities :: change sets

- 18 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Basics User Group ¾ old+New HTTP Methods 메소드 기능 Head,Trace 네트워크를 통한 접근을 찾고 추척 Get 문서 검색 Put,Post 문서를 서버에 전달 Delete 리소스, 컬렉션을 삭제 Mkcol 컬렉션 생성 Propfind 리소스와 컬렉션의 속성을 검색. 파일 목록 및 속 성 검색을 의미 Proppatch 리소스에 대한 속성을 변경 Copy,Move 라소스, 컬렉션을 복사 및 이동 Lock,Unlock 덮어쓰기방지기능 Options 서버가 지원하는 메소드 출력

- 19 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Basics User Group ¾ old+New HTTP Methods

Web Resource

Properties PROPFIND LOCK (name, value) PROPPATCH UNLOCK pairs COPY MOVE† DELETE† Body GET MKCOL† (primary (PUT†) state) PUT†

† - affected by LOCK

- 20 - Collaborations based on Apache http://www.apache-kr.org Apache Korean mod_dav introduction User Group ¾ An Apache module to support WebDAV —Apache 1.3 : 별도의 모듈로 이용 가능 —Apache 2.0 : 기본 모듈로 포함 ¾ Greg stein — Chairman, Apache software foundation ¾ 기본적으로파일시스템을저장소로사용 — Pluggable back end repository 지원. ¾ 상업용 제품에서의 이용 —Oracle — IBM Rational ClearCase

- 21 - Collaborations based on Apache http://www.apache-kr.org Apache Korean mod_dav Back-ends User Group ¾ mod_dav Back-ends = providers Apache 2.0 ¾ Reference name DSO loader — Dav directive. (eg. DAV svn) ¾ mod_dav_fs mod_dav — Apache module — Register your provider mod_dav_fs with mod_dav ¾ OpenSource providers — MySQL backend : FS Catacomb

- 22 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV의활용시나리오 User Group ¾ Collaborative Authoring ¾ ¾ Distributed software engineering ¾ Unified repository access protocol

- 23 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV softwares User Group ¾ Projects & tools — Java based contents and authoring : Slide , Skunkdav, elipse (plugin) — Utilities : davfs, DAVtool, KDE - Conquerer —Others ¾ Commerical Products — Adobe , Microsoft, MacOS X products —Oracle XML DB — Dreamweaver , XML authoring tools — Commercial DAV Servers : A part of solution product —Others

- 24 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV softwares User Group ¾ SkunkDAV ¾ DAVExplorer

- 25 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV softwares User Group ¾ davfs2 — WebDAV folder를 UNIX/LINUX에서 네트워크 드라이브로 마운 트 — filesystem

- 26 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV softwares User Group ¾ Microsoft products — Windows — Office 2000/XP and etc ¾ SouthRiver Tech —WebDrive

- 27 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV softwares User Group ¾ Adobe softwares —Photoshop —illustrator —Acrobat —GoLive

- 28 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV installation User Group ¾ Basic installation —Tarball : http://www.apache-kr.org/dist/ ¾ Configure script example

./configure –enable-dav –enable-dav-fs ¾ Digest Authentication ; — ‘ --enable-auth-digest ’

- 29 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV Installation User Group ¾ Basic configuration Alias /userhome /home/userhome/davfolder DAV On ¾ Lock DB 용의 디렉토리 생성 및 설정 — 아파치 서버 디렉토리 하위의 var/DavLock 을 이용하는 경우 디렉토리 생성 — 아파치 실행 권한에게 디렉토리 접근 및 쓰기 가능권한 설정

DAVLockDB var/DavLock

- 30 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV installation User Group ¾ Other considerations —CGI 프로그램의실행및SSI includes 등의 방지 9 Options None — .htaccess 파일의 활용 방지 9 AllowOverride None — 사용자의 method 접근 제한 9 9 Require valid-user — 홈페이지 컨텐츠 관리를 지정된 아이피에서만 WebDAV로접근 9 Allow from “관리자 아이피 혹은 아이피 대역” — Authentication Type 을 Digest로이용 9 AuthType Digest 9 AuthUserFile “htdigest 로 생성된 파일위치”

- 31 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV installation User Group ¾ Advanced configuration example

AllowOverride None Options None DAV On AuthName “User verification for WebDAV folder” AuthType basic AuthFile “/htpasswd로파일만든위치/.htpasswd” Order deny,allow Allow from 192.168.0.1 Require valid-user

- 32 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV installation User Group ¾ Advanced configuration DAV On AllowOverride None Options None AuthName “User verification for WebDAV folder" AuthType Basic AuthFile “/htpasswd로파일만든위치/.htpasswd Order deny,allow Deny from all Allow from 192.168.1.1 Require user ADMINID Order deny,allow Deny from all Allow from 192.168.2. Require user USERID

- 33 - Collaborations based on Apache http://www.apache-kr.org Apache Korean WebDAV installation User Group ¾ 인증 파일 생성 — htpasswd –c /만들파일의위치/.htpasswd 사용자id New password: Re-type new password: Adding password for user 사용자id — 아파치 웹서버 실행권한이 접근할 수 있도록 퍼미션 조정 —AuthType Digest인 경우에는 htdigest이용 ¾ 설정확인및적용 —/아파치웹서버설치위치/bin/apachectl configtest Syntax OK —/아파치웹서버설치위치/bin/apachectl restart

- 34 - Collaborations based on Apache http://www.apache-kr.org Apache Korean DAV & Secuiry Issues User Group ¾ DoS Attack — IIS5 — mod-dav : Limit XML body ¾ Authentication and encryption weakness — Basic authentication — Digest authentication —SSL encryption ¾ AccessControl

- 35 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Quiz – WebDAV Performance ? User Group ¾ Q. 다음중가장빠른속도를내는조건은? (* Local Network *P3 750Mhz 256mb 급의 클라이언트 및 서버 사양 *41개파일3개폴더: 약 100mb 용량의 데이터를 원격으로 복사하는 경우 ) — 1. WebDAV(Apache 2.0) 를 윈도우의 DAV 폴더를 통해 복사 — 2. 리눅스 상의 NFS를통해복사 — 3. FTP Client를 통해 복사

- 36 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Quiz – Answer User Group

¾ 원격 복사 결과 원격 파일 복사 시간 :: 100mb 데이터 (41개 파일) / 단위 분.초 —2.NFS !

1.2 1.02 1 0.8 0.6 0.4 0.22 0.12 0.2 0 W ebDAV FTP NFS

WebDAV FTP NFS

대용량 파일(638mb) 5.48 1.44 1.39

소용량파일(6mb) 0.06 0.01 0.01

100mb 데이터 (41개 파일) 1.02 0.22 0.12

- 37 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion introduction User Group ¾ DeltaV working group — Versioning extention for webdav — RFC3253 ¾ Subversion — http://subversion.tigris.org — 2000년부터CollabNet이 후원하여 시작된 프로젝트 9 Apache/BSD style 라이센스로 개발 9WebDAV 와 DeltaV 기반 9현재 0.34 버전 릴리즈 —CVS를 대체할 수 있는 오픈소스 버전관리 시스템 9엔터프라이즈 환경에서의 형상관리에 근접 9향상된 기능들 9TortoiseCVS 등 기존의 버전 관리 툴의 SVN버젼 개발

- 38 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion introduction User Group ¾ Version control URL path of Versioned Foo.htm Controlled initial 1 Resource Line of Beta1 2 Descent Branch Revision Version 3 4 History Name

Label 5Test1 6 Merge

Successor 7 Beta2 Predecessor - 39 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion introduction User Group ¾ Subversion features(compare with CVS) — Atomic commits — Real copies and real name 9Directory versioning — Advanced network layer 9Apache + WebDAV/DeltaV 9Or Subversion standealone + SSH — Faster network access 9binary diffs 9mod_deflate compression — Less network access — BerkelyDB based repository

- 40 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion introduction User Group ¾ Subversion architecture — Local repository — Remote repository 9HTTP authentication

- 41 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion Installation User Group ¾ Requirements — Apache 2.0.48 — Subversion 0.34.0 — Gcc — OpenSSL — Berkeley DB

- 42 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion Installation User Group ¾ Apache configuration example

./configure --prefix=/usr/local/apache2 \ --enable-so --enable-dav --enable-maintainer-mode \ --enable-suexec --with-suexec-caller=bin \ --enable-ssl=/usr --enable-cache --enable-ext-filter \ --with-z=/usr --with-dbm=db4 --with-berkley-db=/usr

- 43 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion installation User Group ¾ Subversion configure example

./configure --prefix=/usr/local/subversion \ --with-editer-/bin/vi --with-jdk=/usr/java --with-zlib \ --enable-maintainer-mode --with-ssl=/usr --with-dbm=db4 \ --with-berkeley-db=/usr --with-apr=/usr/local/apache2 \ --with-apr-util=/usr/local/apache2 \ --with-apxs=/usr/local/apache2/bin/apxs

- 44 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion installation User Group ¾ After installaion

httpd.conf

LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so

¾ Preparing subversion repository

#svnadmin create sample

¾ Permission setting

- 45 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion Basic work scenario User Group ¾ Check out (svn co) example

¾ Commit (svn commit) ¾ List (svn list) ¾ diff (svn diff) ¾ Update (svn update) ¾ Mkdir (svn mkdir) ¾ Move (svn mv) ¾ Copy (svn cp)

- 46 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Subversion softwares User Group ¾ TortoiseSVN ¾ Subclipse ¾ Subwiki ¾ RapidSVN ¾ ViewCVS ¾ gSVN

- 47 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Resource & References User Group ¾ http://www.webdav.org —WebDAV에관한모든자료 — Greg stein, WebDAV and Apache — RFC2518 , RFC 3253 ¾ http://www.tigris.org — subversion.tigris.org — and other subversion scm tools ¾ 이외 많은 DAV관련 개발 프로젝트 홈페이지들

- 48 - Collaborations based on Apache http://www.apache-kr.org Apache Korean Q&A User Group ¾ 감사합니다.

- 49 - Collaborations based on Apache http://www.apache-kr.org