Publication: IBM Systems Journal Publication Date: 01-JUL-05 Delivery: Immediate Online Access Author: Ponzo, J. ; Gruber, O. Company: International Business Machines Corp.
Article Excerpt The world of end-user applications has been divided between Web applications and traditional applications. Whereas traditional applications use widget technologies for their user interface (UI), Web applications use markup rendering technologies, such as HTML (Hypertext Markup Language), CSS (Cascading Style Sheets), and scripting (e.g., JavaScript **). The advantages of combining both technologies in a single application has recently been demonstrated in products such as Lotus Notes *, Quicken **, and Microsoft Money 2005. It is our goal to offer these advantages in the Eclipse platform. (1)
Eclipse, an open-source project that started as a platform for developing IDEs (Integrated Development Environments), is a platform for developing applications based on software components. Through components, Eclipse provides integration frameworks such as the Eclipse Workbench for UI integration and the Eclipse Workspace for data integration. Recently, Eclipse has evolved toward the concept of a Rich Client Platform, the integration not only of tools but also of applications. (2) With this goal in mind, we feel that it is particularly important to appeal equally to Java ** and Web developers.
To that end, we integrate Web technologies in Eclipse. Here we use the term "integration" to imply a tighter relationship than simple "embedding." The integration is performed in two steps: (1) embedding of UI artifacts, and (2) support for Document Object Model (DOM) programming. The UI artifacts that can be embedded in the Eclipse Workbench are developed by using either widget or markup technologies. The DOM is the in-memory parsed tree of a markup document--most often HTML. Web browser engines dynamically render the DOM as they parse Web pages. DOM programming is the dynamic creation or manipulation of the in-memory tree, thereby controlling the rendering of the document. DOM programming is also used for handling user-interface events.
For our integration approach in Eclipse, we preserve the design principle of the Standard Widget Toolkit (SWT), the cross-platform widget toolkit of Eclipse. (1) SWT implements a thin veneer over existing native widget capabilities. This thin veneer varies with the environment because it depends on the windowing system and on the native widget toolkit. This approach is well suited for embedding Web browsers. Both Internet Explorer (IE) and Mozilla ** provide embeddable engines that can be exposed to Java. We extend SWT to make use of these engines for the parsing and rendering of HTML documents as well as for providing full DOM application programming interfaces (APIs). We provide browser-specific DOM APIs, thus giving access to the full capabilities of each browser when needed.
In addition, it is important to promote a portable programming model for Web technologies, rather than a browser-specific one. To achieve this goal, we also provide the DOM 2 Core API (3) defined by the World Wide Web Consortium (W3C **). By using this API (W3C DOM2 for short), we ensure that Eclipse developers have portability across Web browsers and operating systems (Windows **, Linux ** and Mac OS **).
Our approach is technically an extension of the approach for integrating native applications pioneered by SWT. SWT exposes a bridge in Java for the Microsoft native component framework COM (Component Object Model). (4) Our approach also supports the Mozilla component framework, XPCOM (Cross Platform Component Object Model). (5) With this foundation in place, it is relatively straightforward to define a SWT widget for embedding the different Web browsers, thus providing a common API for navigating HTML pages. However, providing a common DOM API across Web browsers is more challenging because of the slight variations between the existing DOM APIs in IE and Mozilla. We approach this in two steps. First, we map the native browser DOM APIs to Java. These straightforward but rather numerous mappings are automatically generated from the corresponding COM/XPCOM IDL (Interface Description Language) by a COM/XPCOM-IDL-to-Java-Class generator that we created. Second, we use these Java APIs to implement the W3C DOM2 API.
Integrating Web technologies significantly enhances the Eclipse platform. First, it enables the UI embedding of Web pages. This provides in-place integration of Web assets, such as Web applications or Web-based tools. One typical example is the integration of the HTML help system. Second, it enables a choice of UI technologies for plug-in developers. Eclipse views or perspectives may be developed using either markup or widget technologies. Java logic can interact with either Java widgets or HTML markup, providing a rich, seamless user experience that combines the strengths of both widget and markup paradigms. Our work opens up Eclipse to Dynamic HTML (DHTML) (6) for Java.
The rest of the paper is structured as follows. In the next section we review the necessary background on the Web browser technologies used by the IE and Mozilla browsers. In the following section we describe the design challenges we faced for integrating Web technologies in Eclipse. We first describe the bridging to the relevant foundation technologies--COM and XPCOM. Then, building on these bridges, we discuss our approach to the embedding of UI artifacts and to supporting DOM programming. In the section "Examples," we discuss several possible applications: online help systems, integrating development or administrative tools, and using Eclipse as an advanced application platform. In the last two sections we cover related work and conclusions.
WEB BROWSER BACKGROUND
Web browsers have evolved from...
NOTE: All illustrations and photos have been removed from this article.

More articles from
IBM Systems Journal Beyond predictable workflows: enhancing productivity in artful business processes., 01-OCT-06 Following the sun: case studies in global software development., 01-OCT-06 Business activity patterns: a new model for collaborative business applications., 01-OCT-06
Looking for additional articles? Click here to search our database of over 3 million articles.
Looking for more in-depth information on this industry? Click here to search our complete database of Industry & Market reports by text, subject, publication name or publication date.
About Goliath Whether you're looking for sales prospects, competitive information, company analysis or best practices in managing your organization, Goliath can help you meet your business needs.
Our extensive business information databases empower business professionals with both the breadth and depth of credible, authoritative information they need to support their business goals. Whether it be strategic planning, sales prospecting, company research or defining management best practices - Goliath is your leading source for accurate information. |