1 / 27

리눅스에서의 컴포넌트 소프트웨어 KOM/OpenParts

리눅스에서의 컴포넌트 소프트웨어 KOM/OpenParts. 서영진( yjseo@mizi.co.kr) 미지 리서치 http://www.mizi.co.kr. 미지 리서치의 목표 데스크탑에서 사용할 수 있는 리눅스. 어플리케이션 개발에 주력 hwp/x, hwpview, hwp.cgi hanIM HTM 한글 설치 Qt/KDE 한글화 노력. 컴포넌트 SW 의 정의 & 목표. 엑셀의 차트를 워드에 복사하는 기술 Office Suite 의 토대 인터넷의 기반 기술 ( MS 의 ActiveX)

imelda
Télécharger la présentation

리눅스에서의 컴포넌트 소프트웨어 KOM/OpenParts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 리눅스에서의 컴포넌트 소프트웨어KOM/OpenParts 서영진(yjseo@mizi.co.kr) 미지 리서치 http://www.mizi.co.kr

  2. 미지 리서치의 목표데스크탑에서 사용할 수 있는 리눅스 어플리케이션 개발에 주력 hwp/x, hwpview, hwp.cgi hanIM HTM 한글 설치 Qt/KDE 한글화 노력

  3. 컴포넌트 SW의 정의 & 목표 • 엑셀의 차트를 워드에 복사하는 기술 • Office Suite의 토대 • 인터넷의 기반 기술 (MS의 ActiveX) • 여러 회사 , 학교, 연구소의 자원을 공유하기 위한 공통의 방법론 • 데스크탑 OS에서 시장 점유율 2000년 10%, 장기적 25%

  4. 왜 데스크탑인가 • 충분한 경제적 가치 • KDE, Gnome 등 기술적 토대 마련 • 레퍼런스 사이트만 있다면 승산 • 당위성 : 상대는 MicroSoft 데스크탑을 공략하지 않는다면 MS는 Netscape을 공격한 것과 같이 PC 시장의 독점적 지위를 이용할 것이다.

  5. Component SW의 History • 1990 Microsoft DDE 기반의 OLE1 • 1993 Microsoft COM 기반의 OLE2 • 1994 OCX • OCX의 인터넷화 ActiveX • 1993 Apple, IBM, Novell, Oracle. Taligent, SunSoft, WordPerfect OpenDoc • TaligentCommonPoint • NeXT PDO

  6. 현재의 상황 • KDE와 Gnome - 충분한 어플리케이션 • 공통의 Look & Feel • Gnome : Object Model design stage • KDE : KOM/OpenParts 기반의 KOffice 현재의 구현 상태는 Microsoft DCOM/ActiveXIBM/Apple SOM/OpenDoc의 중간 정도

  7. KOffice (1) KOM/OpenParts 기반의 office suite

  8. KOffice (2) • SpreadSheet • Presentation • Charts • Image viewer • Korganizer • Kmail • Kword

  9. KOffice의 평가 (3) • 개별 프로그램의 완성도 미흡 • Gnome 등 다른 API와의 자료 호환 미흡 • Office 슈트의 큰 틀을 잡고 실제로 구현하였다는 점 높이 평가 • 다른 Office Suite의 교본

  10. KDE KOM/OpenParts • Document Layout Service • Structured Storage • Scripting and Automation • Uniform Data Transfer • CORBA에 기초하고 있다. • 실제로 동작한다

  11. Word processor가 GIF 그림을 삽입하려 시도 “image/gif”를 지원하는 컴포넌트 요청 사용자 설정 전달 조건에 맞는 서버 리스트 전달 받음 서버를 실행하고 component 생성 메뉴, 툴바 등 GUI 변경 XML 등 자료 교환 Component Selection Process

  12. Server & Factories • Server • implementation repository에 등록 • Unix process • factory set 제공 • Factories • simple CORBA 개체 • 하나의 Factory는 하나의 개체를 생성한다.

  13. KOM의 사건 처리 Filter 1 • Filter 1: Recording • Filter 2: Absorbing, modifying • Filter 2: Alternative implementation Receiver Sender Filter 2 Filter 3

  14. Signals & Slot Sender 1 Receiver 1 • Smart replacement of callback • auto connection closing • Type save Sender 2 Receiver 2

  15. OpenParts - Control • Component와 X11 윈도우 연결 • other process or shared library • parent window에 삽임(swallow) • Control-Frame이 존재해서 native toolkit을 사용하기 쉽게 • Mixing different toolkit • MS ActiveX에 해당

  16. Parts • Toolbar, Menubar, Statusbar 등의 공유되는 리소스 • 특수한 Toplevel 윈도우: Shells • Shell은 File 메뉴와 Toolbar를 가진다. • 활성화된 Part가 리소스 접근 가능 • Part는 다른 Part에 포함 또는 삽입될 수 있다.

  17. Serialization • XML • Mime-Multi-Part • White Box • OLE의 Persistent Storage는 해석 불가 • Black Box Mime Header Text Doc(XML) Table(XML) Image(Base64)

  18. KOM/OP 의 구성 • CORBA • MICO (Corba 2.2 compliant) 사용 • KOM • CORBA 의 기능 보충(Event 처리등) • OpenParts • User Interface 부분 (메뉴, 툴바 등등)

  19. 클래스 • KoApplication : KApplication 에 해당하는 클래스 • KoMainWindow : KTopLevelWidget 에 해당하는 클래스

  20. 프로그램 구성 precompiler IDL KoDocument View_skel Doc_skel KoViewIf KoMainWindow Document View Shell Widget 상속 입력/생성 KoApplication 포인터

  21. Kimage.idl module KImage{ interface View : KOffice::View { // Edit slot void editEditImage(); slot void editImportImage(); slot void editExportImage(); … }; interface Document : KOffice::Document, KOffice::Print { }; interface DocumentFactory : KOffice::DocumentFactory { }; };

  22. Kimage_view.h class KImageView : public QWidget, virtual public KoViewIf, virtual public KImage::View_skel { Q_OBJECT public: KImageView( QWidget *_parent, const char *_name, KImageDoc *_doc ); ~KImageView(); KImageDoc* doc() { return m_pDoc; } // IDL void editEditImage(); void editImportImage(); void editExportImage(); … public slots: // Document signals void slotUpdateView();

  23. Kimage_view.h (cont’d) protected: // C++ virtual void init(); virtual bool event(const char* _event, const CORBA::Any& _value); virtual bool mappingCreateMenubar(OpenPartsUI::MenuBar_ptr _menubar); virtual bool mappingCreateToolbar(OpenPartsUI::ToolBarFactory_ptr _factory); ... // edit menu OpenPartsUI::Menu_var m_vMenuEdit; CORBA::Long m_idMenuEdit_Edit; CORBA::Long m_idMenuEdit_Import; CORBA::Long m_idMenuEdit_Export; … KImageDoc *m_pDoc; };

  24. 한국에서 사용하려면(1) • CORBA • 이론적인 문제는 없다. • MICO ORB • KOM, OpenParts • XML • 이론적인 문제 없다. • 누구도 해보지 않았다.

  25. 한국에서 사용하려면(2) • Qt 한글화 • 현재 진행 중 • 인력 부족으로 어려움 • KDE 라이브러리 • 글꼴 및 Metafile의 한글화 • 요원하다

  26. 한국에서 사용하려면(3) • 인쇄 • Ghostscipt에서 가능 • 글꼴 확보가 문제 • 기타 많은 유틸리티 • Spell 검사 • 로컬 검색 엔진 • 터미널, 메일 리더, ….

  27. 결론 • 성공할 것인가 • Linux에 이은 또 하나의 기적 • Unix 계열 운영 체제에서의 혁명적 시도 • 동작하는 예제로서 의의 있음 • 성공한다면 • 획기적 경쟁력 • Desktop OS 점유율 25%

More Related