Publications-Theses

Article View/Open

Publication Export

Google ScholarTM

NCCU Library

Citation Infomation

Related Publications in TAIR

題名 使 Eclipse 平台具備遠端外掛程式功能之研究
Enhance Eclipse platform with remote plug-ins
作者 林庭瑋
貢獻者 陳正佳
林庭瑋
關鍵詞 Eclipse
遠端服務
外掛程式
分散式計算
日期 2009
上傳時間 9-May-2016 15:28:47 (UTC+8)
摘要 Eclipse 是目前最廣受歡迎的軟體工具整合平台,其可擴充的架構,允許第三方撰寫名為 Plug-in 的擴充套件將既有的或是新開發的工具程式整合至此平台。然而隨著 Eclipse 的普及以及可用工具套件的增加,衍生的困擾則是幾乎每一套 Eclipse 平台都會裝載過多的工具。雖然 Eclipse 的架構提供了諸如 Plug-in 的延遲載入(Lazy-Loading)、快速裝載與更新等功能,讓 Eclipse 平台具有相當高度的可延展性(Scalability),但整體效能還是會因為裝載過多的工具程式而下滑。
     
     為了解決上述問題,本研究提出一套名為 Remote Plug-in 的解決方案,允許使用者或是廠商將原生(Native)或非原生的工具發布到遠端站台,並透過本研究提供的開發工具快速產生包裝程式,讓標的工具能以 Web Services 的型式發布到站台上供使用者叫用。另一方面,需要使用這些工具服務的 Eclipse 平台則可以透過本研究提供的輔助 Plug-in 提供之功能,直接叫用這些工具服務,效果則有如使用安裝於相同電腦的 Plug-in 一樣。
     
     此作法除了能降低 Plug-in 的安裝數量,進而改善 Eclipse 平台的整體效能外,也能減少許多不常使用工具的裝卸。此外,Remote Plug-in 架構的其他優點在於讓用戶得以使用在其平台無法安裝執行的工具程式,軟體商亦可經由發布 Remote Plug-in 加強對軟體的記錄控管。
Since its inception in 2001, Eclipse has quickly become the most popular platform for software development, partly thanks to its extensible architecture, which allows third parties to easily integrate their software tools into the platform in the form of plug-ins. As the quick increase and abundance of free or cheap Eclipse plug-ins available to the public, coming up also is the problem that most users install too many plug-ins than tolerable in a platform. Although the designers of Eclipse have develped mechanisms such as Lazy-Loading [42], and quick installation and update subsystem to make Eclipse scalable, the overall performance is inevitably degraded for the installation of too many plug-ins.
     
     In order to overcome this problem, we propose in this thesis a method called remote plug-ins which can enable the distribution and sharing of plug-ins in remote sites. Users or ISVs (independent software vendors) can deploy their tools on remote sites and use the tool we have developed to wrap them as web services accepting requests from Eclipse platforms. On the other hand, users needing services of remote plug-ins could install in their local Eclipse the proxy plug-in which we developed for requesting services of remote plug-ins. With the help of the proxy, remote plug-ins can be invoked as if they were local ones.
     
     By moving unnecessary plug-ins outside of local Eclipse installation, not only can our method improve the overall performance of the platform, but it can also diminish the waste of time on tedious installation and uninstallation of plug-ins which are seldom used. Other advantages of our method include the feasibility of invoking remote plug-ins which are either hard or unable to be installed in local Eclipse, as well as more complete control of vendors to client`s access to their tools deployed as remote plug-ins.
參考文獻 [1] Apache Software Foundation. Class Loader HOW-TO. http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html, 1999-2009.
     [2] Apache Software Foundation. Apache Axis. http://ws.apache.org/axis/, 2000-2005.
     [3] Apache Software Foundation. POJO Web Services using Apache Axis2. http://ws.apache.org/axis2/1_4_1/pojoguide.html, 2004-2008.
     [4] Apache Software Foundation. Apache Axis2. http://ws.apache.org/axis2/, 2004-2009.
     [5] Apache Software Foundation. Apache CXF. http://cxf.apache.org/, 2006-2009.
     [6] Apache Software Foundation. Apache Commons - Codec. http://commons.apache.org/codec/, 2008.
     [7] Apache Software Foundation. Apache Ant. http://ant.apache.org/, 2009.
     [8] Apache Software Foundation. Apache Felix. http://felix.apache.org/, 2009.
     [9] Apache Software Foundation. Apache Hadoop. http://hadoop.apache.org/, 2009.
     [10] Apache Software Foundation. Apache Maven. http://maven.apache.org/, 2009.
     [11] Arthorne, J. Project Builders and Natures. http://www.eclipse.org/articles/Article-Builders/builders.html, 2003.
     [12] Beck, K., and Gamma, E. JUnit. http://junit.org/, 2009.
     [13] Blewitt, A. Eclipse - a tale of two vms (and many classloaders). http://www.eclipsezone.com/articles/eclipse-vms/, 2006.
     [14] Blewitt, A. Getting started with Eclipse plug-ins: understanding extension points. http://www.eclipsezone.com/eclipse/forums/t93753.html, 2007.
     [15] Caucho Technology, Inc. Hessian Binary Web Services Protocol. http://hessian.caucho.com/, 2003-2008.
     [16] CollabNet. Subversion. http://subversion.tigris.org/, 2001-2008.
     [17] Coulouris, G., Dollimore, J., and Kindberg, T. Distributed Systems: Concepts and Design, Edition 3. Addison-Wesley, 2001.
     [18] deBoer, T., and Karasiuk, G. J2EE Class Loading Demystified. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer.html, 2002.
     [19] Eclipse Foundation. Eclipse Remote Development. http://www.eclipse.org/eclipse/platform-core/documents/2.0/remote-development.html, 2002.
     [20] Eclipse Foundation. Eclipse Communication Framework. http://www.eclipse.org/ecf/, 2005-2008.
     [21] Eclipse Foundation. Eclipse Device Software Development Platform. http://www.eclipse.org/dsdp/, 2005-2008.
     [22] Eclipse Foundation. Eclipse. http://www.eclipse.org/eclipse/, 2008.
     [23] Eclipse Foundation. Eclipse Plugin Central. http://www.eclipseplugincentral.com/, 2008.
     [24] Eclipse Foundation. Eclipse Riena. http://www.eclipse.org/riena/, 2008.
     [25] Eclipse Foundation. FAQ Where did Eclipse come from? http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F, 2008.
     [26] Eclipse Foundation. DLTK Remote API Migration guide. http://wiki.eclipse.org/Remote_API_Migration_guide, 2009.
     [27] Eclipse Foundation. ECF API Documentation. http://wiki.eclipse.org/ECF_API_Docs, 2009.
     [28] Eclipse Foundation. ECF Remote Service. http://wiki.eclipse.org/ECF_Remote_Services_API_Bundle, 2009.
     [29] Eclipse Foundation. Eclipse Command Framework. http://wiki.eclipse.org/index.php/Platform_Command_Framework, 2009.
     [30] Eclipse Foundation. Eclipse Equinox. http://www.eclipse.org/equinox/, 2009.
     [31] Eclipse Foundation. Eclipse Jetty. http://www.eclipse.org/jetty/, 2009.
     [32] Eclipse Foundation. Eclipse Platform CVS Support. http://www.eclipse.org/eclipse/platform-cvs/, 2009.
     [33] Eclipse Foundation. Eclipse Rich Ajax Platform. http://www.eclipse.org/rap/, 2009.
     [34] Eclipse Foundation. Eclipse Rich Client Platform. http://wiki.eclipse.org/Rich_Client_Platform, 2009.
     [35] Eclipse Foundation. Eclipse standard widget toolkit. http://www.eclipse.org/swt/, 2009.
     [36] Eclipse Foundation. Eclipse Subversive. http://www.eclipse.org/subversive/, 2009.
     [37] Eclipse Foundation. Equinox QuickStart Guide. http://www.eclipse.org/equinox/documents/quickstart.php, 2009.
     [38] Eclipse Foundation. RAP Widget Toolkit. http://wiki.eclipse.org/WidgetToolkit, 2009.
     [39] Eclipse Foundation. Riena Snippets. http://wiki.eclipse.org/Riena_Snippets, 2009.
     [40] Eclipse Foundation. Target Management (RSE). http://www.eclipse.org/dsdp/tm/, 2009.
     [41] Envoi Solutions LLC. XFire. http://xfire.codehaus.org/, 2007.
     [42] Fowler, M. Patterns of Enterprise Application Architecture. Addison-Wesley, 2003.
     [43] Free Software Foundation, Inc. GNU make. http://www.gnu.org/software/make/, 1997-2006.
     [44] Free Software Foundation, Inc. Concurrent Versions System. http://www.nongnu.org/cvs/, 2006.
     [45] Gehner, W. Eclipse goes Server-Side! http://www.infonoia.com/en/content.jsp?d=inf.05.07, 2006.
     [46] HP Confidential. HP C/ C + + Remote Developer Plugin for Eclipse. http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=c808f44064f02110f44064f02110275d6e10RCRD, 2009.
     [47] Institute for Pervasive Computing, ETH Zurich. R-OSGi. http://r-osgi.sourceforge.net/, 2006-2008.
     [48] Institute for Pervasive Computing, ETH Zurich. Concierge. http://concierge.sourceforge.net/, 2009.
     [49] Internet Engineering Task Force. Web-based Distributed Authoring and Versioning. http://www.webdav.org/, 1996-2008.
     [50] IONA Technologies. IONA Celtix: The Open Source Java Enterprise Service Bus. http://celtix.ow2.org/, 2005.
     [51] Java Community Process. JSR 291: Dynamic Component Support for Java SE. http://jcp.org/en/jsr/detail?id=291, 2006-2009.
     [52] JetBrains. IntelliJ IDEA. http://www.jetbrains.com/idea/, 2009.
     [53] Martin Fowler. POJO. http://www.martinfowler.com/bliki/POJO.html, 2000.
     [54] McAffer, J. Inside and beyond the eclipse 3.0 runtime. http://www.eclipse.org/eclipse/platform-core/runtime/runtime.html, 2004.
     [55] Microsoft Corporation. Microsoft Distributed Component Object Model. http://msdn.microsoft.com/en-us/library/ms809340.aspx, 1996-2008.
     [56] Microsoft Corporation. Windows Live Messenger. http://messenger.live.com/, 1999-2009.
     [57] Microsoft Corporation. Microsoft Visual Studio. http://www.microsoft.com/visualstudio/, 2009.
     [58] Nielsen, B. Java RMI Tutorial. http://www.cs.aau.dk/~bnielsen/DS-E08/Java-RMI-Tutorial/, 2006.
     [59] Object Management Group. OMG Common Object Request Broker Architecture. http://www.corba.org/, 1991-2008.
     [60] Object Management Group. CORBA/IIOP Specification. http://www.omg.org/technology/documents/formal/corba_iiop.htm, 2004.
     [61] Organization for the Advancement of Structured Information Standards. Universal Description, Discovery, and Integration. http://uddi.xml.org/, 1993-2009.
     [62] OSGi Alliance. Benefits of Using OSGi. http://www.osgi.org/About/WhyOSGi, 1999-2008.
     [63] OSGi Alliance. OSGi Framework. http://www.osgi.org/, 1999-2008.
     [64] OSGi Alliance. Javadoc: BundleContext. http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html, 2000-2009.
     [65] OSGi Alliance. Distributed OSGi. http://cxf.apache.org/distributed-osgi.html, 2009.
     [66] Sandakith, L. Eclipse WTP Tutorials - Creating Bottom Up Web Service via Apache Axis2. http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html, 2007.
     [67] Sandakith, L. Eclipse WTP Tutorials - Creating Top Down Web Service via Apache Axis2. http://www.eclipse.org/webtools/community/tutorials/TopDownAxis2WebService/td_tutorial.html, 2007.
     [68] Sommerer, A. Java Archive (JAR) File Format. http://java.sun.com/developer/Books/javaprogramming/JAR/, 2009.
     [69] SpringSource. Spring Dynamic Modules for OSGi Service Platforms. http://www.springsource.org/osgi/, 2008-2009.
     [70] Sun Microsystem, Inc. Java Naming Convention. http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html, 1995-1999.
     [71] Sun Microsystem, Inc. Java Tutorial - System Properties. http://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html, 1995-2008.
     [72] Sun Microsystem, Inc. Java Remote Method Invocation. http://java.sun.com/javase/technologies/core/basic/rmi/, 1997-2008.
     [73] Sun Microsystem, Inc. Java Remote Method Invocation over Internet Inter-ORB Protocol. http://java.sun.com/javase/6/docs/technotes/guides/rmi-iiop/, 2001-2004.
     [74] Sun Microsystem, Inc. Java API for XML WebServices. https://jax-ws.dev.java.net/, 2009.
     [75] Sun Microsystem, Inc. JAXB Reference Implementation. https://jaxb.dev.java.net/, 2009.
     [76] Sun Microsystem, Inc. NetBeans. http://www.netbeans.org/, 2009.
     [77] The GNU Project. The GNU Project Debugger. http://www.gnu.org/software/gdb/, 1986-2009.
     [78] The Knopflerfish Project. Knopflerfish. http://www.knopflerfish.org/, 2008-2009.
     [79] University of California. SETI@home. http://setiathome.ssl.berkeley.edu/, 2009.
     [80] World Wide Web Consortium. Simple Object Access Protocol. http://www.w3.org/TR/soap/, 2000-2007.
     [81] World Wide Web Consortium. Web Services Description Language. http://www.w3.org/TR/wsdl, 2001.
     [82] World Wide Web Consortium. XML Web Services. http://www.w3.org/2002/ws/, 2002-2008.
     [83] XMPP Standards Foundation. Extensible Messaging and Presence Protocol. http://xmpp.org/, 1998-2009.
     [84] Yahoo! Inc. Yahoo! Messenger. http://messenger.yahoo.com/, 1998-2009.
描述 碩士
國立政治大學
資訊科學學系
95753032
資料來源 http://thesis.lib.nccu.edu.tw/record/#G0095753032
資料類型 thesis
dc.contributor.advisor 陳正佳zh_TW
dc.contributor.author (Authors) 林庭瑋zh_TW
dc.creator (作者) 林庭瑋zh_TW
dc.date (日期) 2009en_US
dc.date.accessioned 9-May-2016 15:28:47 (UTC+8)-
dc.date.available 9-May-2016 15:28:47 (UTC+8)-
dc.date.issued (上傳時間) 9-May-2016 15:28:47 (UTC+8)-
dc.identifier (Other Identifiers) G0095753032en_US
dc.identifier.uri (URI) http://nccur.lib.nccu.edu.tw/handle/140.119/95261-
dc.description (描述) 碩士zh_TW
dc.description (描述) 國立政治大學zh_TW
dc.description (描述) 資訊科學學系zh_TW
dc.description (描述) 95753032zh_TW
dc.description.abstract (摘要) Eclipse 是目前最廣受歡迎的軟體工具整合平台,其可擴充的架構,允許第三方撰寫名為 Plug-in 的擴充套件將既有的或是新開發的工具程式整合至此平台。然而隨著 Eclipse 的普及以及可用工具套件的增加,衍生的困擾則是幾乎每一套 Eclipse 平台都會裝載過多的工具。雖然 Eclipse 的架構提供了諸如 Plug-in 的延遲載入(Lazy-Loading)、快速裝載與更新等功能,讓 Eclipse 平台具有相當高度的可延展性(Scalability),但整體效能還是會因為裝載過多的工具程式而下滑。
     
     為了解決上述問題,本研究提出一套名為 Remote Plug-in 的解決方案,允許使用者或是廠商將原生(Native)或非原生的工具發布到遠端站台,並透過本研究提供的開發工具快速產生包裝程式,讓標的工具能以 Web Services 的型式發布到站台上供使用者叫用。另一方面,需要使用這些工具服務的 Eclipse 平台則可以透過本研究提供的輔助 Plug-in 提供之功能,直接叫用這些工具服務,效果則有如使用安裝於相同電腦的 Plug-in 一樣。
     
     此作法除了能降低 Plug-in 的安裝數量,進而改善 Eclipse 平台的整體效能外,也能減少許多不常使用工具的裝卸。此外,Remote Plug-in 架構的其他優點在於讓用戶得以使用在其平台無法安裝執行的工具程式,軟體商亦可經由發布 Remote Plug-in 加強對軟體的記錄控管。
zh_TW
dc.description.abstract (摘要) Since its inception in 2001, Eclipse has quickly become the most popular platform for software development, partly thanks to its extensible architecture, which allows third parties to easily integrate their software tools into the platform in the form of plug-ins. As the quick increase and abundance of free or cheap Eclipse plug-ins available to the public, coming up also is the problem that most users install too many plug-ins than tolerable in a platform. Although the designers of Eclipse have develped mechanisms such as Lazy-Loading [42], and quick installation and update subsystem to make Eclipse scalable, the overall performance is inevitably degraded for the installation of too many plug-ins.
     
     In order to overcome this problem, we propose in this thesis a method called remote plug-ins which can enable the distribution and sharing of plug-ins in remote sites. Users or ISVs (independent software vendors) can deploy their tools on remote sites and use the tool we have developed to wrap them as web services accepting requests from Eclipse platforms. On the other hand, users needing services of remote plug-ins could install in their local Eclipse the proxy plug-in which we developed for requesting services of remote plug-ins. With the help of the proxy, remote plug-ins can be invoked as if they were local ones.
     
     By moving unnecessary plug-ins outside of local Eclipse installation, not only can our method improve the overall performance of the platform, but it can also diminish the waste of time on tedious installation and uninstallation of plug-ins which are seldom used. Other advantages of our method include the feasibility of invoking remote plug-ins which are either hard or unable to be installed in local Eclipse, as well as more complete control of vendors to client`s access to their tools deployed as remote plug-ins.
en_US
dc.description.tableofcontents 摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
     Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
     謝誌. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
     1 導論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
     1.1 問題動機. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
     1.2 實現策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
     1.3 特色貢獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
     1.4 章節架構. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
     2 相關研究探討. . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     2.1 分散式物件系統. . . . . . . . . . . . . . . . . . . . . . . . . 7
     2.2 Java 平台上的各式分散式物件技術 . . . . . . . . . . . . . . . . 10
     2.2.1 Common Object Request Broker Architecture, CORBA. . . . . . . 10
     2.2.2 Java Remote Method Invocation, Java RMI . . . . . . . . . . . 12
     2.2.3 XML Web Services. . . . . . . . . . . . . . . . . . . . . . . 13
     2.3 檔案資源管理. . . . . . . . . . . . . . . . . . . . . . . . . . 14
     2.4 Eclipse 開發平台. . . . . . . . . . . . . . . . . . . . . . . . 15
     2.4.1 Plug-in, Extension 與 Extension Point . . . . . . . . . . . . 15
     2.4.2 OSGi Framework. . . . . . . . . . . . . . . . . . . . . . . . 16
     2.5 Eclipse 關聯專案. . . . . . . . . . . . . . . . . . . . . . . . 20
     2.5.1 Eclipse Communication Framework . . . . . . . . . . . . . . . 20
     2.5.2 Eclipse Device Software Development Platform - Target Management
     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
     2.5.3 Eclipse Riena . . . . . . . . . . . . . . . . . . . . . . . . 22
     2.5.4 Eclipse Rich AJAX Platform. . . . . . . . . . . . . . . . . . 23
     2.6 總結與比較. . . . . . . . . . . . . . . . . . . . . . . . . . . 23
     3 系統架構分析. . . . . . . . . . . . . . . . . . . . . . . . . . . 25
     3.1 架構概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
     3.2 外部工具程式. . . . . . . . . . . . . . . . . . . . . . . . . . 28
     3.3 外部工具描述檔案. . . . . . . . . . . . . . . . . . . . . . . . 29
     3.4 通訊介面與代理程式. . . . . . . . . . . . . . . . . . . . . . . 30
     3.5 遠端指令分派程式. . . . . . . . . . . . . . . . . . . . . . . . 31
     3.6 本機指令圖形介面. . . . . . . . . . . . . . . . . . . . . . . . 33
     3.7 黃頁. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
     4 系統實作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     4.1 建置概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     4.2 建立通訊介面與兩端代理程式. . . . . . . . . . . . . . . . . . . 37
     4.3 定義外部工具描述介面. . . . . . . . . . . . . . . . . . . . . . 41
     4.4 建置遠端指令分派程式. . . . . . . . . . . . . . . . . . . . . . 41
     4.4.1 規範遠端工作區. . . . . . . . . . . . . . . . . . . . . . . . 43
     4.4.2 撰寫分派程式骨架. . . . . . . . . . . . . . . . . . . . . . . 45
     4.4.3 檔案異動處理邏輯. . . . . . . . . . . . . . . . . . . . . . . 46
     4.5 建立黃頁並使用服務探索機制. . . . . . . . . . . . . . . . . . . 47
     4.6 建立本機指令圖形介面. . . . . . . . . . . . . . . . . . . . . . 49
     4.6.1 本機指令程式基本骨架. . . . . . . . . . . . . . . . . . . . . 49
     4.6.2 本機工作區資源異動同步. . . . . . . . . . . . . . . . . . . . 50
     4.6.3 選單介面. . . . . . . . . . . . . . . . . . . . . . . . . . . 55
     5 系統範例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
     5.1 挑選外部工具與撰寫外部工具描述檔案. . . . . . . . . . . . . . . 61
     5.2 啟動黃頁伺服器. . . . . . . . . . . . . . . . . . . . . . . . . 62
     5.3 安裝遠端系統與註冊外部工具描述檔案. . . . . . . . . . . . . . . 62
     5.4 安裝本機系統並叫用遠端服務. . . . . . . . . . . . . . . . . . . 65
     5.5 使用案例與操作流程. . . . . . . . . . . . . . . . . . . . . . . 67
     6 結論與未來展望. . . . . . . . . . . . . . . . . . . . . . . . . . 71
     6.1 結論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
     6.2 未來展望. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
     參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
zh_TW
dc.source.uri (資料來源) http://thesis.lib.nccu.edu.tw/record/#G0095753032en_US
dc.subject (關鍵詞) Eclipsezh_TW
dc.subject (關鍵詞) 遠端服務zh_TW
dc.subject (關鍵詞) 外掛程式zh_TW
dc.subject (關鍵詞) 分散式計算zh_TW
dc.title (題名) 使 Eclipse 平台具備遠端外掛程式功能之研究zh_TW
dc.title (題名) Enhance Eclipse platform with remote plug-insen_US
dc.type (資料類型) thesisen_US
dc.relation.reference (參考文獻) [1] Apache Software Foundation. Class Loader HOW-TO. http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html, 1999-2009.
     [2] Apache Software Foundation. Apache Axis. http://ws.apache.org/axis/, 2000-2005.
     [3] Apache Software Foundation. POJO Web Services using Apache Axis2. http://ws.apache.org/axis2/1_4_1/pojoguide.html, 2004-2008.
     [4] Apache Software Foundation. Apache Axis2. http://ws.apache.org/axis2/, 2004-2009.
     [5] Apache Software Foundation. Apache CXF. http://cxf.apache.org/, 2006-2009.
     [6] Apache Software Foundation. Apache Commons - Codec. http://commons.apache.org/codec/, 2008.
     [7] Apache Software Foundation. Apache Ant. http://ant.apache.org/, 2009.
     [8] Apache Software Foundation. Apache Felix. http://felix.apache.org/, 2009.
     [9] Apache Software Foundation. Apache Hadoop. http://hadoop.apache.org/, 2009.
     [10] Apache Software Foundation. Apache Maven. http://maven.apache.org/, 2009.
     [11] Arthorne, J. Project Builders and Natures. http://www.eclipse.org/articles/Article-Builders/builders.html, 2003.
     [12] Beck, K., and Gamma, E. JUnit. http://junit.org/, 2009.
     [13] Blewitt, A. Eclipse - a tale of two vms (and many classloaders). http://www.eclipsezone.com/articles/eclipse-vms/, 2006.
     [14] Blewitt, A. Getting started with Eclipse plug-ins: understanding extension points. http://www.eclipsezone.com/eclipse/forums/t93753.html, 2007.
     [15] Caucho Technology, Inc. Hessian Binary Web Services Protocol. http://hessian.caucho.com/, 2003-2008.
     [16] CollabNet. Subversion. http://subversion.tigris.org/, 2001-2008.
     [17] Coulouris, G., Dollimore, J., and Kindberg, T. Distributed Systems: Concepts and Design, Edition 3. Addison-Wesley, 2001.
     [18] deBoer, T., and Karasiuk, G. J2EE Class Loading Demystified. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer.html, 2002.
     [19] Eclipse Foundation. Eclipse Remote Development. http://www.eclipse.org/eclipse/platform-core/documents/2.0/remote-development.html, 2002.
     [20] Eclipse Foundation. Eclipse Communication Framework. http://www.eclipse.org/ecf/, 2005-2008.
     [21] Eclipse Foundation. Eclipse Device Software Development Platform. http://www.eclipse.org/dsdp/, 2005-2008.
     [22] Eclipse Foundation. Eclipse. http://www.eclipse.org/eclipse/, 2008.
     [23] Eclipse Foundation. Eclipse Plugin Central. http://www.eclipseplugincentral.com/, 2008.
     [24] Eclipse Foundation. Eclipse Riena. http://www.eclipse.org/riena/, 2008.
     [25] Eclipse Foundation. FAQ Where did Eclipse come from? http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F, 2008.
     [26] Eclipse Foundation. DLTK Remote API Migration guide. http://wiki.eclipse.org/Remote_API_Migration_guide, 2009.
     [27] Eclipse Foundation. ECF API Documentation. http://wiki.eclipse.org/ECF_API_Docs, 2009.
     [28] Eclipse Foundation. ECF Remote Service. http://wiki.eclipse.org/ECF_Remote_Services_API_Bundle, 2009.
     [29] Eclipse Foundation. Eclipse Command Framework. http://wiki.eclipse.org/index.php/Platform_Command_Framework, 2009.
     [30] Eclipse Foundation. Eclipse Equinox. http://www.eclipse.org/equinox/, 2009.
     [31] Eclipse Foundation. Eclipse Jetty. http://www.eclipse.org/jetty/, 2009.
     [32] Eclipse Foundation. Eclipse Platform CVS Support. http://www.eclipse.org/eclipse/platform-cvs/, 2009.
     [33] Eclipse Foundation. Eclipse Rich Ajax Platform. http://www.eclipse.org/rap/, 2009.
     [34] Eclipse Foundation. Eclipse Rich Client Platform. http://wiki.eclipse.org/Rich_Client_Platform, 2009.
     [35] Eclipse Foundation. Eclipse standard widget toolkit. http://www.eclipse.org/swt/, 2009.
     [36] Eclipse Foundation. Eclipse Subversive. http://www.eclipse.org/subversive/, 2009.
     [37] Eclipse Foundation. Equinox QuickStart Guide. http://www.eclipse.org/equinox/documents/quickstart.php, 2009.
     [38] Eclipse Foundation. RAP Widget Toolkit. http://wiki.eclipse.org/WidgetToolkit, 2009.
     [39] Eclipse Foundation. Riena Snippets. http://wiki.eclipse.org/Riena_Snippets, 2009.
     [40] Eclipse Foundation. Target Management (RSE). http://www.eclipse.org/dsdp/tm/, 2009.
     [41] Envoi Solutions LLC. XFire. http://xfire.codehaus.org/, 2007.
     [42] Fowler, M. Patterns of Enterprise Application Architecture. Addison-Wesley, 2003.
     [43] Free Software Foundation, Inc. GNU make. http://www.gnu.org/software/make/, 1997-2006.
     [44] Free Software Foundation, Inc. Concurrent Versions System. http://www.nongnu.org/cvs/, 2006.
     [45] Gehner, W. Eclipse goes Server-Side! http://www.infonoia.com/en/content.jsp?d=inf.05.07, 2006.
     [46] HP Confidential. HP C/ C + + Remote Developer Plugin for Eclipse. http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=c808f44064f02110f44064f02110275d6e10RCRD, 2009.
     [47] Institute for Pervasive Computing, ETH Zurich. R-OSGi. http://r-osgi.sourceforge.net/, 2006-2008.
     [48] Institute for Pervasive Computing, ETH Zurich. Concierge. http://concierge.sourceforge.net/, 2009.
     [49] Internet Engineering Task Force. Web-based Distributed Authoring and Versioning. http://www.webdav.org/, 1996-2008.
     [50] IONA Technologies. IONA Celtix: The Open Source Java Enterprise Service Bus. http://celtix.ow2.org/, 2005.
     [51] Java Community Process. JSR 291: Dynamic Component Support for Java SE. http://jcp.org/en/jsr/detail?id=291, 2006-2009.
     [52] JetBrains. IntelliJ IDEA. http://www.jetbrains.com/idea/, 2009.
     [53] Martin Fowler. POJO. http://www.martinfowler.com/bliki/POJO.html, 2000.
     [54] McAffer, J. Inside and beyond the eclipse 3.0 runtime. http://www.eclipse.org/eclipse/platform-core/runtime/runtime.html, 2004.
     [55] Microsoft Corporation. Microsoft Distributed Component Object Model. http://msdn.microsoft.com/en-us/library/ms809340.aspx, 1996-2008.
     [56] Microsoft Corporation. Windows Live Messenger. http://messenger.live.com/, 1999-2009.
     [57] Microsoft Corporation. Microsoft Visual Studio. http://www.microsoft.com/visualstudio/, 2009.
     [58] Nielsen, B. Java RMI Tutorial. http://www.cs.aau.dk/~bnielsen/DS-E08/Java-RMI-Tutorial/, 2006.
     [59] Object Management Group. OMG Common Object Request Broker Architecture. http://www.corba.org/, 1991-2008.
     [60] Object Management Group. CORBA/IIOP Specification. http://www.omg.org/technology/documents/formal/corba_iiop.htm, 2004.
     [61] Organization for the Advancement of Structured Information Standards. Universal Description, Discovery, and Integration. http://uddi.xml.org/, 1993-2009.
     [62] OSGi Alliance. Benefits of Using OSGi. http://www.osgi.org/About/WhyOSGi, 1999-2008.
     [63] OSGi Alliance. OSGi Framework. http://www.osgi.org/, 1999-2008.
     [64] OSGi Alliance. Javadoc: BundleContext. http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html, 2000-2009.
     [65] OSGi Alliance. Distributed OSGi. http://cxf.apache.org/distributed-osgi.html, 2009.
     [66] Sandakith, L. Eclipse WTP Tutorials - Creating Bottom Up Web Service via Apache Axis2. http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html, 2007.
     [67] Sandakith, L. Eclipse WTP Tutorials - Creating Top Down Web Service via Apache Axis2. http://www.eclipse.org/webtools/community/tutorials/TopDownAxis2WebService/td_tutorial.html, 2007.
     [68] Sommerer, A. Java Archive (JAR) File Format. http://java.sun.com/developer/Books/javaprogramming/JAR/, 2009.
     [69] SpringSource. Spring Dynamic Modules for OSGi Service Platforms. http://www.springsource.org/osgi/, 2008-2009.
     [70] Sun Microsystem, Inc. Java Naming Convention. http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html, 1995-1999.
     [71] Sun Microsystem, Inc. Java Tutorial - System Properties. http://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html, 1995-2008.
     [72] Sun Microsystem, Inc. Java Remote Method Invocation. http://java.sun.com/javase/technologies/core/basic/rmi/, 1997-2008.
     [73] Sun Microsystem, Inc. Java Remote Method Invocation over Internet Inter-ORB Protocol. http://java.sun.com/javase/6/docs/technotes/guides/rmi-iiop/, 2001-2004.
     [74] Sun Microsystem, Inc. Java API for XML WebServices. https://jax-ws.dev.java.net/, 2009.
     [75] Sun Microsystem, Inc. JAXB Reference Implementation. https://jaxb.dev.java.net/, 2009.
     [76] Sun Microsystem, Inc. NetBeans. http://www.netbeans.org/, 2009.
     [77] The GNU Project. The GNU Project Debugger. http://www.gnu.org/software/gdb/, 1986-2009.
     [78] The Knopflerfish Project. Knopflerfish. http://www.knopflerfish.org/, 2008-2009.
     [79] University of California. SETI@home. http://setiathome.ssl.berkeley.edu/, 2009.
     [80] World Wide Web Consortium. Simple Object Access Protocol. http://www.w3.org/TR/soap/, 2000-2007.
     [81] World Wide Web Consortium. Web Services Description Language. http://www.w3.org/TR/wsdl, 2001.
     [82] World Wide Web Consortium. XML Web Services. http://www.w3.org/2002/ws/, 2002-2008.
     [83] XMPP Standards Foundation. Extensible Messaging and Presence Protocol. http://xmpp.org/, 1998-2009.
     [84] Yahoo! Inc. Yahoo! Messenger. http://messenger.yahoo.com/, 1998-2009.
zh_TW