Developing Offline Web Apps 1 ETRI 표준연구센터서비스융합표준연구팀이원석 wslee@{etri.re.kr, w3.org}
목차 웹응용 웹응용이란? 웹응용의종류 웹응용의문제점 Offline 웹응용사례 Offline 웹응용아키텍처 Offline 웹응용툴킷 Google gears Dojo offline Offline 웹응용표준화 결론및향후전망 2 참고문헌
웹응용 3
웹응용이란? 브라우저기반응용 자바스크립트 + XHTML + CSS 기반개발 ( 웹표준기반 ) 모바일단말의리소스 / 기능사용제한 워드프로세서 4
웹응용의종류 Web apps Google Zoho Word Processor Google Docs Zoho Writer Spreadsheet Google Spreadsheet Zoho Sheet Slideshows Google Presentation Zoho Show Web Clippings Google Notebook Zoho Notebook Email Gmail Zoho Mail Chat Google Talk Zoho Chat Wiki (Google acquired JotSpot) Zoho Wiki 점차웹응용과데스크탑응용의영역에 Zoho Creator 대한구분이사라지고있음 Database Application Online Database Project Management Zoho DB Zoho Projects Web Conferencing (Google acquired Marratech) Zoho Meeting Customer Relationship Manager Personal Organizer Zoho CRM Zoho Planner Web site hosting Feed Reader Google Page Creator Google Reader Personalized Homepage igoogle (Zoho Start Page only for Zoho Apps) 5
웹응용의문제점 웹응용은인터넷에연결된상태에서만정상적으로동작 사용자는오프라인상태에서도 e-메일클라이언트, 오피스응용등다양한응용의사용을원함 예 ) 비행기안에서업무처리를위한메일작성, 문서작성등이가능해야함 6
Offline 웹응용사례 [1] 7
Offline 웹응용사례 [2] 8
Offline 웹응용사례 [3] 9
Offline 웹응용아키텍처 10
AJAX 기반웹응용아키텍처 11
Offline 웹응용아키텍처 내부데이터베이스를이용한읽기및쓰기 동기화를위해수정내용큐잉 UI와서버통신의완전한분리 12
Offline 웹응용툴킷 13
오프라인웹응용의철학 하나의응용은하나의 URL로표현 온라인 / 오프라인간의자연스러운지원 온라인상황에서도로컬데이터사용능력지원 모든플랫폼, 모든사용자에대한가능성 14
Google Gears 브라우저플러그인 Firefox Internet Explorer Opera and safari? 라이선스 오픈소스 (New BSD 라이선스 ) 15
Google Gears 개발자들에게오프라인지원웹응용개발을지원하기위한오픈소스브라우저확장 Google docs: offline 지원 Gmail 및 Google Calendar: offline 지원예정 구성요소 LocalServer 응용자원 (XHTML, 자바스크립트, 이미지등 ) 을내부적으로캐쉬하고서비스함 Database 관계형데이터베이스내부에데이터저장관리 + full text search WorkerPool 자바스크립트에쓰레드유사기능지원 16
LocalServer 17 HTTP/HTTPS 요청을캐싱된데이터를이용하여제공 네트워크상태와상관없이요청된 URL에대한자원의캐싱여부에따라처리 자원저장의두종류 ResourceStore 자바스크립트를이용해임시의 URL 들을캠쳐링 응용들이 URL로식별되는사용자데이터파일의저장을허용 (e.g. PDF, image) ManagedResourceStore manifest 파일에선언된 URL들을캡쳐링 웹응용실행에필요한자원의집합의캡쳐링허용 Manifest 파일의버전이변경되는경우자동업데이트실행 (checkforupdate() 메소드이용 ) 차이점 : 리소스에대한자동업데이트지원여부 ManagedResourceStore: 자동업데이트 ResourceStore: 수동업데이트
- ResourceStore 캐쉬된 URL의컨테이너 각각의 3가지의속성에의해서식별 name: 저장자원을식별하기위한이름 requiredcookie: 저장자원의쿠키요구여부 domain: 현재페이지의도메인, 프로토콜과포트 18
- ManagedResourceStore 독립된 manifest 파일에응용에대한자원들기술 각각의자원을캡쳐및업데이트제공 자동적인업데이트지원 각응용에대해다수사용자지원 ( ManagedResourceStore 코드예 ) 19
- ManagedResourceStore manifest 화일 JavaScript Object Notation (JSON) 폼맷 20
Database 사용자컴퓨터에사용자데이터를영구적으로저장 SQLite + full-text search 기능확장 데이터베이스파일위치 21
Full-text Search 데이터베이스생성 db.execute('create VIRTUAL TABLE recipe USING fts2(dish, ingredients)'); 데이터베이스검색 var rs = db.execute('select dish FROM recipe WHERE recipe MATCH?', ['tomatoes']); 22
WorkerPool 자바스크립트에스레드기능제공 브라우저 UI가블록되는문제해결 IPC 기반통신제공 (sendmessage() 사용 ) 동기화에활용 Message passing User Interface Window, document no access 23
WorkerPool 코드예 24
Dojo offline Google gears 기반툴킷으로상위레벨 API와추가기능제공 주요구성 Offline widget(on/offline detection) Sync framework Offline 상황에서실행된액션들을저장하고, online 이되면서버와 sync 기능제공 Slurp() 응용과관련된모든리소스를스캔 Dojo storage, Dojo SQL Encryption (Offline widget 예 ) 25
Dojo offline 데이터저장소 Dojo SQL Gears의 SQLite 구현위에위치 Encryption 지원 Dojo Storage 간단한해쉬테이블 ( 키 / 값쌍 ) 26
Offline 웹응용표준화 27
W3C HTML 5 HTML 5 표준개발에포함 Offline 웹응용 API 표준화진행중 Offline Web Applications 2008 년 6 월 3 일초안발표 W3C Working Group Note 표준화대상 SQL APIs Offline application caching APIs Related APIs Online/offline events APIs Status APIs Local Storage API 28
결론및향후전망 29
결론및향후전망 [1] 안정적인 Offline 툴킷기반유무선 Offline 웹응용지속적으로증가 W3C HTML WG에서 Offline 웹응용표준개발중 웹응용이 offline 문제를해결함에따라웹응용활용이더욱증가할것으로예상 아직웹응용은아직해결해야할많은문제들이있으나향후이러한문제들이해소되면? 30
결론및향후전망 [2] 출처 : http://almaer.com/blog/category/gears 31
참고자료 Creating Offline Web Applications With Dojo Offline http://docs.google.com/view?docid=dhkhksk4_8gdp9gr Getting Started with Google Gears http://immike.net/blog/2007/05/31/getting-started-with-googlegears/ Google Gears API http://code.google.com/apis/gears/ Slideshows for tag: offline http://www.slideshare.net/tag/offline?order=popularity The Dojo Offline Toolkit http://dojotoolkit.org/offline W3C Working Group Note 30 May 2008, Offline Web Applications, http://www.w3.org/tr/offline-webapps/ Web 2.0 Take the Web Offline to the Desktop http://www.docstoc.com/docs/525367/web-20-take-the-web- Offline-to-the-Desktop 32