• 沒有找到結果。

2.1 Toolkit Design Concept

The toolkit proposed mainly targets on the usability and flexibility; it gives developers an integrated development environment and some easy-to-use operations.

The complex stuff such as tag mapping and transformation are hided from developers, developer can therefore develop the application user-interface as easily as developing HTML using visualized toolkit such as Microsoft FrontPage.

2.2 User-interface Markup Language

There are many markup languages for describing the user-interface. PUML, XUL, UIML, WML, XForms are among these languages, all of them has different focuses and purposes. PUML is a language first proposed by Shen [1] for describing the user-interface of applications on mobile devices. It works as a media for transforming the user-interface into various formats. In Shen’s work, the XSLT mechanism is utilized to transform it into WML and J2ME MIDP for running in WAP-enabled and J2ME-enabled mobile devices correspondingly. Since PUML is a language with flat-structure, it is simple to transform and the transform results can highly conform to the meaning of original PUML document. For this reason, PUML is adopted as our base language for authoring applications on multiple mobile devices.

2.3 Document Model

According to the XML-based PUML, the document model behind the program is then to be a model which can represent the XML structure. The model is built through

parsing the source XML document. Following are three models which are addressed with considerations about adopting them in the toolkit.

2.3.1 SAX

SAX [9] stands for Simple API for XML; it provides a programming interface for applications that need to parse XML documents. The SAX model triggers SAX events as it parses a XML document, therefore, it never creates a tree structure for the document in memory. However, it is allowed to programmatically instruct it to create our own data structure. Since SAX parser pushes data to the client application, it is relatively lightweight to the DOM parsers. For the above reasons, SAX parser is used as our major parser to create another model which can be stayed in memory.

2.3.2 XML DOM

XML Document Object Model (DOM) [10] is first standardized by the World Wide Web Consortium (W3C). It provides a standard set of objects for representing XML documents and a standard interface for retrieving and manipulating them. XML DOM views XML documents as a tree structure composing of multiple nodes. All of these nodes are stayed in memory; therefore, a node can be accessed or modified at anytime. However, a DOM tree node has many complex types and the node can not be further extended in the standard Java DOM API. Therefore, using XML DOM model will need to create another mechanism for mapping a node and a visualized widget which wastes lots of memory space. As a result, XML DOM is not adopted as our toolkit model.

2.3.3 JDOM

JDOM [11] is a Java representation of an XML document. It provides a way for easy and efficient reading, manipulating, and writing XML documents. Moreover, it also has a lightweight, fast, and optimized Java API. Furthermore, it integrates well with both DOM and SAX models and allows us to build customized model which extends the default JDOM model. For these reasons, JDOM is adopted as our final document model representing the source PUML document.

2.4 JavaBeans

For the extensibility of the toolkit, the widget structure must be extensible to tolerate future changes. Since the toolkit is completely written in Java, JavaBeans [12]

component architecture for Java 2 Platform, Standard Edition (J2SE) is therefore adopted as the base structure of widgets in the toolkit. JavaBeans are reusable software components that you can develop and assemble easily to create sophisticated applications. In JavaBeans architecture, a component can be described with a “bean”

and a “bean descriptor”, the bean descriptor describes the bean class and the methods provided in the bean. Moreover, with combination of Java reflection mechanism, it is possible to create and manipulate widgets dynamically in the runtime. Accordingly, the widget structure becomes extensible as well, once a new PUML element is released, a corresponding widget can be developed rapidly through following JavaBeans specification.

2.5 OpenTools API

Borland JBuilder is a leading product in developing Java applications; it provides

a complete application programming interface (API) for developing tools integrated with JBuilder. The API is called OpenTools [13], it provides access to almost every component inside JBuilder, and it is therefore possible to integrate our toolkit into JBuilder as a plug-in. The OpenTools API is a full Java-based API with complete Java document released. Furthermore, Borland also releases a simple tutorial for developing OpenTools; the architecture of JBuilder can be comprehended easily through it. For the above reasons, JBuilder is selected as our final integration target.

2.6 Related Works

The mobile application development has already been evolved in our laboratory more than two years. One of the development kit proposed by Liu [14] is based on the thin-client platform called ART (Adaptive Remote Terminal). The other kit proposed by Shen [1] is based on the PUML and PGML. However, both kits lack a visualized development toolkit to develop the application user-interface easily and quickly.

In the current market, there are some other products for visualizing the development of multi-device applications. One is Microsoft’s ASP .NET Web Matrix [7] which relies on runtime interpretation of a device-independent application.

Another is also Microsoft’s product – Visual Studio .NET [15] which provides an integrated development environment and a rich set of widget controls. The other is the IBM Everyplace toolkit for WebSphere Studio [6] which provides the ability to adjust a part of the generic user-interface for a specific device.

As for the academic researches, there are many researches related to the user-interface transformation mechanism design, however, few researches put their focus on authoring multi-device applications. One of these researches is published in [16]; a Platform-Independent Model for Applications (PIMA) is proposed to adapt the

user-interface in both design-time and runtime. It contains a generalization mechanism for extracting a model from device-specific interfaces such as HTML. A specialization mechanism that adapts the application to various target devices automatically is also included. Another research is published in [17], a Multi-Device Authoring Technology (MDAT) is proposed. The MDAT is a second-generation technology based on the PIMA stated above, it combines both design-time and runtime adaptation to provide a more complete authoring framework. Moreover, it is also the base technology used in the IBM Everyplace toolkit for WebSphere Studio.

The other research is published in [18] which proposes a design environment for adaptive multi-device user-interfaces and generates both HTML and WML languages.

From the authoring frameworks described above, the concepts of model-based user interface development and multi-device development are referenced in the design of our own authoring framework and toolkit.

相關文件