XMobile: a MB-UID environment for semi-automatic generation of adaptive applications for mobile devices

Size: px
Start display at page:

Download "XMobile: a MB-UID environment for semi-automatic generation of adaptive applications for mobile devices"

Transcription

1 XMobile: a MB-UID environment for semi-automatic generation of adaptive applications for mobile devices Windson Viana 1, Rossana M. C. Andrade 2 1 LIG Université Joseph Fourier (UJF), Grenoble I, France 2 Department of Computer Science Federal University of Ceará (UFC), Brazil Windson.Viana-de-Carvalho@imag.fr, rossana@ufc.br Abstract. Ubiquitous Computing promises seamless access to information anytime, anywhere with different and heterogeneous devices. This kind of environment imposes new challenges to software development. For example, information and user interface should be adapted according to contextual characteristics such as user, environment, and access device. In case of device adaptation, the development challenge is related to the heterogeneity of the devices, which requires software engineers to create different versions for each type of device and every platform. This paper proposes a MB-UID (Model-Based User Interface Development) approach for semi-automatic generation of adaptive applications for mobile devices. An environment, called XMobile, offers a device-independent user interface framework and a code generation tool for providing fast development of multi-platform and adaptive applications according to device and platform features. A case study is also presented to illustrate how the environment can be used for constructing an application for heterogeneous devices with different network connectivity modes. 1. Introduction The miniaturization of computational devices as well as the wide-spread availability of wireless communication resources makes possible the initial vision of ubiquitous computing described by Mark Weiser [ 20]. In the Weiser vision, the computational devices are inserted in the environment and allow a user to access information naturally, anywhere and with multiple types of interaction (e.g., visual, voice). An example of a ubiquitous application is an intelligent system for sharing digital photos and comments, where a user could employ his personal devices (e.g., handheld or a mobile phone with a built in camera) to take photos and to send them to his blog. The system detects where the photo was taken automatically and adds annotations, for example, about the location and the weather conditions. The user could also visualize photos of his/her friends that were taken near the place where the user is currently located. Many research projects already discuss the development of these ubiquitous systems [ 7, 10, 11]. However, these systems have never been widely available to everyday users. One of the critical aspects is the execution of applications in different computational devices [ 9, 13]. Personal mobile devices (MDs) such as PDA (Personal Digital Assistant), mobile phones and smartphones illustrate part of the heterogeneity problem. These devices are characterized by different restrictions of processing, memory, battery, and communication bandwidth. They also present differences in the

2 display properties and in how users interact with them. In addition, the support of programming platforms changes from one device to another, which makes it difficult to adopt a single platform for the application development process [ 13]. Hence, the conception and the design of ubiquitous applications becomes a challenge to a software engineer [ 9]. For instance, in the previously described ubiquitous system, different versions of the mobile application should be created. Each version should adjust its interface, its execution behavior and its functionalities to the characteristics of each user personal device. In spite of this, the creation of different application versions can be inadequate for human codification due to the diversity of platforms and available devices. Therefore, it is necessary to create tools to customize the development of these applications [ 9]. There have been many research and commercial projects in the area of automatic generation, mainly in the model-based user interface community. Generally, these tools use a hierarchy of description models in order to dissociate the final presentation of a user interface from its initial definition (i.e., components, style, and data) [ 16]. This interface design approach is called MB-UID (Model-Based User Interface Development). Model-based systems attempt to formally describe tasks, data, and users for an application, and then use these formal models to guide its generation. Particularly, MB-UID offers an infrastructure for the development of methods and tools that generates the user interface automatically [ 19]. In this context, this article presents a MB-UID environment, called XMobile, for the automatic generation of application interfaces that execute in mobile devices. The main goal of XMobile is to reduce the prototyping time of an application and to provide various adaptation levels of the user interface. XMobile differs from other MB-UID approaches, like XIML 16] and TERESA [ 1]. These approaches only allow the description of simple interfaces that could be not useful for real applications. In spite of this, XMobile can be used to describe the interface in a more detailed way in order to generate richer interfaces. Moreover, it does not limit the types of application that can be built with the environment. XMobile allows the developers to describe the graphic interfaces with a subset of the W3C standards [ 25]. This choice facilitates the learning process of XMobile and its integration with other development tools such as Eclipse [ 26]. The XMobile environment is composed of the XFormUI framework and the UIG (Use Interface Generator) tool. The framework XFormUI is a toolkit for creation of graphic interfaces independent of a particular device and from a certain programming platform. XMobile allows software engineers to describe the graphic interfaces with the following W3C standards: XHtml, XForms, XMLSchema and CSS (Cascading Style Sheets). The developer also describes the navigation graph associated with the application. Using this initial description, the UIG tool generates, in an adaptive and automatic way, the final code for different programming platforms. For the code generation, the tool uses a set of mapping rules that describe how the interfaces are adapted according to a class of devices (PDA, portable telephone), and to a programming platform. In addition, this generated code uses the framework XFormUI to build the final interface. Thus, XMobile allows a hybrid adaptation of the interface, which is a static adaptation with UIG, and, on the other hand, a dynamic adaptation with XFormUI.

3 This article is organized as follows: section 2 presents concepts about code generation and MB-UID; section 3 shows an overview of the proposed environment; section 4 discusses the types of user interface adaptation supported by XMobile; section 5 and section 6 describe, in details, respectively, the XFormUI framework and the UIG tool; section 7 presents a case study that illustrates how the environment is used to build an application for heterogeneous devices; and, finally, in section 8, final remarks as well as potential future works are outlined. 2. MB-UID and Code Generation Automatic generation of user interfaces (UIs) is extremely useful in the application design. It provides a division between the interface description and the application logic [ 5]. Generally, environments for construction and generation of UIs use a hierarchy of description layers or models to dissociate the interface definition from how it is rendered [ 16]. These declarative user interface models (UIM) allow modeling the interface in different levels of descriptions. UIM increase the possibility of reusing interfaces specifications. In addition, UIM provide an infrastructure for the development of methods and tools that generates the user interface automatically [ 19]. For instance, an interface form to share photos can be specified in three models: A more abstract model describes the interface components and functionalities. In this case, the model contains a text input component and a component to visualize images. Moreover, it includes the functionalities of sending a photo, posting comments and viewing friends photos; A second model specifies the interface composition and layout. This model describes that the text input should be replaced after the image component and the sending photo functionality should be presented together with the posting comments functionality. A third concrete model maps components to real widgets of a programming platform. For instance, a code generation process of J2ME MIDP platform will transform the component to visualize images in an ImageItem component. In ubiquitous computing, the use of interface description in many levels allows a single interface to define more than one model of composition and layout. Furthermore, different mapping models for real widgets can be described, which allows a unique description of an interface to be reused for various rendering situations. The choice of which models are used can be associated to different use contexts. Thus, the interface can be rendered in an adapted way according to the device, to the programming platform, to the user s preferences and to the characteristics of the environment the user is inserted in User Interface Description Languages Many languages based in XML have been developed with the goal of dissociating the interface definition from its final presentation, such as: UIML [ 23], XIML [ 16], XForms [ 25], UID [ 17], XML AWD [ 3], SUIML [ 18], and Teresa XML [ 1]. These languages are characterized by their power of expression, the set of available user interface components, and the techniques of mapping among description models.

4 XIML and Teresa XML are more general languages. They afford the ability to describe a user interface without any concern about the implementation. Besides the description of components, a software engineer specifies the knowledge related to the interaction between user and application. XIML and Teresa XML are used during the whole software development process, including design and analysis phases. To illustrate that, the business domain characteristics, the environment properties, and the user s activities can be specified. UIML and XML AWD offer a less general level of user interface description. They allow the specification of the interface independent from a specific programming platform or device. They also give the possibility of describing the style and the data associated with the user interface, which make them more adequate to the implementation phase. The XML user interface description languages organize the levels of UI definition in different ways. For instance, XIML uses an ontological representation, called attribute-value pairs, to describe the objects of each abstraction level. XIML organizes this description in five models: Task, Domain, User, Presentation, and Dialog. Similarly, UIML separates the interface definition in five levels: description, structure, data, style, and events. <description>, <structure>, and <data> describe, respectively, the components, their composition, and the data that will be shown. In <style> and <events>, the mapping rules of the visual components and their events are defined in a programming language (e.g., Java). On the other hand, Teresa XML uses a division in three models: Task, Abstract Interface, and Concrete Interface. Teresa XML allows the automatic generation of user interfaces using a tree of tasks described in ConcurTaskTree (CTT) [ 2]. In this work, we split the user interface description into five levels (detailed in section 3): Abstract Interface, Presentation, Data and Validation, Dialog and Concrete Interface. The first four models are described by the developer, whereas the last model is generated by the UIG tool. Similarly to UIML and XML AWD, the interface description in XMobile is used in the last development stages. First, the system functionalities are specified and associated to a use context (for example, using a use case diagram). After that, the developer can create an initial specification of the user interfaces. The developer uses XForms, a new W3C standard, to create this specification. XForms is an effort of W3C to replace HTML forms with a more adequate format to be rendered by heterogeneous devices. The XForm components were created independent of the mouse access paradigm and also from a visual exhibition in a display. This creation process provides the form description independent of an interaction modality (e.g., visual or audible) and of the device characteristics, in which the application executes. For this reason, the use of XForms enables to the developer to describe, in a detailed way, the user interfaces, without the need for preliminary knowledge of the characteristics of the target device Strategies for Code Generation Usually, the approaches for automatic generation of user interfaces employ two strategies: Generation at development time. In this case, the described interfaces are generated during the development process (i.e., before the execution of the

5 application). Many versions of the user interfaces are generated for different execution contexts. Later, according to the current use context, the generated versions are chosen. Examples of works that use this strategy are MultiMad [ 29], SEFAGI [ 3], Teresa [ 1], and UID [ 17]. Generation at execution time. In this case, the interface definition is mapped during the execution of the application. Generally, this approach is used for adaptation of Web systems based on request/response. The mapping process can be a transcoding between two tag languages (e.g.; XHTML towards WML), or a generation using an abstract definition of the user interface. During the code generation process, the attributes of the context of use (such as the devices characteristics, the user profile) can be used in order to adapt the final presentation of the interface. Usually, the user interfaces are mapped to Web technologies such as WML, XHTML and VoiceXML depending on the requesting device. Works like LiquidUI [ 23], Icrafter [ 18], Roam [ 13] use this strategy. For example, LiquidiUI uses the parameters of a HTTP request in order to discover the access device characteristics. With this information, the tool generates documents in XHTML, WML and VoiceXML from a starting document described in UIML. It seems to us that the generation at execution time restricts the types of applications that can be created by this strategy. Since a strong constraint is that the application must remains connected to the server all the time. In general, works that apply this approach focus on Web technologies like WML, XHTML and VoiceXML. However, these technologies restrict access to the mobile devices functionalities [ 15]. In this work, we choose the generation at development time, since this approach lets the developer verify the generated concrete interface, and adds specific functionalities to each generated version. In addition, the software engineers could create applications with programming platforms such as J2ME MIDP, SuperWaba, Mophun and Doja I-Mode, which are supported by mobile devices. These technologies present high user interactivity, data input customization, and access to several new mobile device functionalities (e.g., bluetooth, cameras, GPS, MP3 players). Besides that, this strategy allows the construction of applications with different connectivity modes (e.g.; always connected, disconnected with later synchronization) and with different communication protocols (e.g.; HTTP, HTTPs, XML-RPC, SOAP). 3. XMobile environment The XMobile environment, which we propose in this paper, helps the development of applications for mobile devices. This environment includes mechanisms to reduce the heterogeneity problem related to this type of development. Since XMobile is designed to be used in a prototyping development process, it allows a rapid user interface construction in order to evaluate the usability of the applications in many devices and programming platforms. The environment generates the user interface at development time, allowing the creation of applications with different network connectivity modes.

6 3.1. Requirements The following requirements, which are pointed out in [ 6, 8, and 16] as essentials to the development of adaptive interface construction environments, have been used to develop XMobile,: A. Design process orientation and Interoperability. A tool used for user interface construction must be easily inserted inside a software development process. Besides that, the tool has to be easily integrated with other development environments. Particularly, UI tools for ubiquitous applications require this integration due to the evidence that the heterogeneity problem makes it impractical to conceive a unique tool for the entire application development. B. Variety of components and extensibility. It is important for a software engineer to have available a large variety of interface components, and a set of restriction and validation methods for data input. Then, functions for navigation among interfaces as well as for display of warning messages, and mechanisms for event handling should be available. However, all these functionalities have to be implemented with extensibility support due to the fast evolution of programming platforms and mobile devices. C. Multi-Modality and Independence of platform and device. The environment should allow the interface description in a dissociated way of a modality, a platform or a device to facilitate the adaptation process. However, this description cannot be restricted to a minimum group of common functionalities among the devices or the programming platforms, since it would limit the interface characteristics. D. Similarity and consistency. The environment has to ensure a minimum degree of similarity and consistency among different generated interfaces. For instance, a user, who runs the same application in different devices, should experience a similar access to the functionalities, and to the navigation among interfaces Components XMobile is composed of an interface component framework, called XFormUI, and a User Interface Generator (UIG) tool. The framework offers an infrastructure for the construction of adaptive forms-based applications. XFormUI is implemented for three different target programming platforms: SuperWaba [ 27], J2ME MIDP 1.0, and J2ME MIDP2.0 [ 28]. XFormUI provides a single way to describe the composed interface, and hides from the user (i.e., a software engineer) the mode, by which the APIs (i.e. Application Programming Interface) of each platform are called by the framework. In Figure 1, an overview of XMobile and the association between the framework XFormUI and the UIG tool is presented.

7 Figure 1 XMobile Environment XMobile allows a software engineer to describe the application forms using the following standards: XForms to define the components; CSS to define the style (e.g., colors and layout); and XML Schema to define the restrictions to the data input fields of the form. After that, the software engineer, using an Eclipse plug-in, creates a XML file, manifest.xml. This file defines the navigability amongst the interfaces and the mapping rules to an executable code of a specific programming platform. The Eclipse plug-in triggers the UIG tool to generate the code of the interface. This generated code uses the framework XFormUI to compose the form interface. The mapping process is facilitated due to XFormUI having been designed to have components with the same name and behavior of the XForms components User Interface Models XMobile is a Model-Based User Interface Development Environment (MB-UIDE), which enables the application modeling according to various levels of abstraction. It provides separation of the main user interface information, as follows: components, data, style, and layout. In XMobile, the interface definition is done in five models: Abstract Interface, Presentation, Data and Validation, Dialog and Concrete Interface. Relations between documents described by the software engineer and the five models are illustrated in Figure 2. Figure 2 XMobile User Interface Models The Abstract Interface model contains the description of the components that take part in the interface. The software engineer describes these components in the element View of XForms. XMobile supports a subset of the XForms components: data input components (e.g., Input, Secret, TextArea), selection components (e.g., Select,

8 Select1, SelectBoolean, Range), data output components (e.g., Output), and event handlers (e.g., Submit, Trigger). In the Presentation model, the developer describes the style and the spatial relations among the components. The style is described using a CSS document. By using CSS, the software engineer can, for example, change the colour properties of each user interface component. The software engineer uses XHTML tags to express the spatial relations and the composition. For instance, the software engineer uses the tag <xhtm:p> in order to define an order relation (e.g., a component must be placed before another) or a grouping relation (e.g., a component is logically dependent on another). For relative spatial position (e.g., centred, on the right of a window), the software engineer uses the "align" attribute. This information is investigated during the code generation process. The UIG tool uses the relations described to guide the adaptation process according to the device space limitations for presentation (e.g., the display size) and according to the presentation restrictions imposed by the target programming platform (e.g., J2ME MIDP 1.0 neither does enable the association of colours to an interface component, nor the presentation of two components in the same line). The Data and Validation model has the initial data associated to the interface and its type restrictions. The initial data (e.g., the default content value of a component) is described using XML at the Model element of the XForms document. The software engineer can also link a XMLSchema to the XML data. This information is used to generate, in the final application code, the Class constructors and the functions to validate the type restrictions. The Dialog model, which comes from XIML, defines the event actions of each interface and the graph of navigation among them. The software engineer associates to each event handler the screens that must be shown with their activation. For example, it can associate the selection of a Trigger in a screen A to the opening of a screen B. This information is described in the Manifest file and is linked to the events described in the Control element of XForms. The Concrete Interface model corresponds to the final code of the user interface in a programming platform. This code is automatically generated by the UIG tool with the descriptions of the other models. As a consequence of the generation at development time, the software engineer can add specific functionalities to each version of the generated code. Figure 3 presents an example of the use of the XMobile models. The example is a login form of a mobile blog application. It is described by three XML documents: one XHTML/XFORMS (Figure 3a), one CSS (Figure 3b) and one XMLSchema (Figure 3c). The form described by the XHTML/XFORMS contains five components: one Image, one Output, one Input, one Secret, and one Submit. The Submit component is associated with the action "Enter". The properties of these components are described by the View element (<xhtml:body>) of the XHTML/XFORMS document (Figure 3a). For instance, the View element describes that the Secret component has Password: as the value of its label and it also describes that the source of the image is on the path /res/mphlog.jpg. This XML document also contains the Model element that describes the initials values of the form (e.g., the title is Mobile Photolog ) and the restriction of value presence of the Input login (i.e., "required=true").

9 Figure 3 - Example of the XMobile Models The CSS document (Figure 3b) describes the color information related to the presentation (e.g., the color of the Input label is red). The XMLSchema document (Figure 3c) associates a simpletype "pass" to the Secret component value. This new type is a string with length between three and nine. This information is used during the code generation process in order to generate a function to validate this restriction. The UIG tool is able to generate the code for a programming platform using these three documents. Figure 3d presents the execution of the generated code to the J2ME MIDP 2.0 platform. The five components are mapped to J2ME MIDP. A code for validation of the restrictions is generated and is linked to the Submit component action ("Enter"). This action is shown in Figure 3d, an alert message is displayed after the Submit action ("Enter"), since the length of the field "Pass:" is less than three.

10 4. Types of Adaptation The programming platforms for mobile devices, either SuperWaba or J2ME MIDP, provide functions for dynamic adaptation of user interfaces. These methods enable a certain code independence of a specific device. For example, the components layout in the interface can be described in a relative manner among the components (e.g., a component A is on the left of a component B). Furthermore, the action and the selection components modify the presentation style in accordance to the interaction modality of the device (e.g., using a stylus pen or using a phone keyboard). Unfortunately, these programming platforms are not supported in a homogeneous way by the operational systems of the mobile devices. This is the main reason for the difficulty in achieving an agreement for a unique platform for the application development. XMobile enables three types of user interface adaptation with the goal of reducing the problem of platform heterogeneity. In addition, XMobile reuse the available adaptation functions in the platforms. These types of user interface adaptation are: i) adaptation according to classes of device, ii) programming platform adaptation, and iii) specific device adaptation. Figure 4 presents these types of adaptation and how they are linked during the process of code generation. The first ones are supported directly by the XMobile environment during the creation of different application versions. On the other hand, the specific device adaptation comes from the structure of the generated code. The interfaces produced by the UIG tool use the framework XFormUI. The framework is specially designed to reuse the functionalities of dynamic adaptation available in the programming platforms. The type of adaptation according to classes of device consists in limiting the number of components presented in an interface (or screen). For each class of device, the tool determines a maximum number of components per interface (Nmax). When an interface has more components than the allowed Nmax, the UIG tool starts the process of interface division (i.e., the screen is mapped to several consecutive screens in order to show each component). This division also takes into account the spatial, order, and grouping relations described by the software engineer. Five rules are used for the division process: a) the relation of order is used in order to select N first components that should be showed in the first interface where N <= Nmax; b) if the Nth component takes part of a group, all the group components must be shown simultaneously in the following interface; c) if a group has more components than Nmax, the generation is stopped and a error message is written in the tool log; d) the components that were not shown in the first interface are shown in the following interface also using the order relation; and e) if the following interface contains more components than Nmax, a new process of interface division is started. In the environment, three classes of device have been defined: mobile phone, smartphone, and PDA. For each device class, Nmax was defined by usability tests. For example, for the mobile phone device class, Nmax is eight. Hence, if an interface contains more than eight components and the chosen device class for the mapping is mobile phone, then this interface is divided. It is important to note that a software engineer can, if he/she wants, change Nmax for each device class. In order to enable the division interface process, the description of XForms is divided into forms using

11 the Wizard Dialog Pattern [ 22]. This pattern allows the construction of a sequence of linked interfaces, and was initially created to adapt Web forms to the display of mobile phones. Besides that, Triggers are added to the new forms (i.e.: next and previous) in order to link them. The initial Triggers contained in the original XForms description are set in the last form of the Wizard sequence. For this reason, the generated code achieves similarity and maintains the desired consistency of the user interface. Figure 4 - XMobile types of adaptation The programming platform adaptation is provided in two forms in the UIG tool. The first one also corresponds to the strategy of interface division. The tool initiates this strategy when the target platform of the generation process does not allow simultaneous presentation of certain components. For instance, J2ME MIDP denies showing a text input component (TextBox) and other data input field in the same interface. In these cases, the UIG tool divides the interface in two screens. The second form of programming platform adaptation is related to the style functions of presentation (i.e., colors, layout). UIG uses the information described in the CSS document, only if the target platform supports these types of functions (e.g., change of colors). This UIG behavior aims at optimizing the generated code in order to better use the resources of interface definition available on each platform. Figure 5 illustrates the platform adaptation process. The figure shows an interface to visualize a new photo and to write comments about it. The description of this interface was written once and after, the UIG tool generated three different codes. The interface was divided into forms for J2ME MIDP 1.0 and 2.0 due to the presentation restriction of these platforms (i.e., the TextBox component can not be showed with the ImageItem component in the same interface.). The XFormUI functions of color changing and layout are started only in the code generated for the platforms SuperWaba and J2ME MIDP 2.0, since these functions are available at these platforms, but not in J2ME MIDP 1.0.

12 Figure 5 Examples of interface adaptation 5. Framework XFormUI SuperWaba, J2ME MIDP, J2ME DOJA and J2ME Personal Java are programming platforms based on the Java programming language. They allow the construction of applications for mobile devices. Unfortunately, these platforms have different APIs for interface definition, data recording, and data transmission that prevents code migration among them. XFormUI offers abstraction of these different platform APIs and reuses their functions of user interface adaptation, since is developed using a bottom-up strategy. The framework XFormUI consists of a platform-independent toolkit of user interface components. Besides the components, XFormUI provides functions to navigate among the interfaces, to restrict data input (e.g., limitation of numeric types, existential quantifiers), to validate data input automatically, and mechanisms to define the forms layout and style. Four approaches have been used to guide the XFormUI design, as follows: Generalization. A study about the main programming platforms for mobile devices has been done in order to allow the implementation of the framework XFormUI in many platforms. The goal of this study was to identify common characteristics of these platforms and to incorporate these common functions in the framework. This generalization process is mainly related to the structure of the core classes of these platforms (e.g., MIDlet in J2ME MIDP and MainWindow in Superwaba). Figure 6a presents an example of this approach. The MainXForm class of the framework XFormUI contains the common structure of execution of the classes MIDlet and MainWindow. Figure 6 - Examples of XFormUI strategies

13 Transparency. Every method of the framework XFormUI abstracts the calls for the APIs of the platforms. This approach enables the constructed interfaces to execute in every platform in which the framework is implemented. For example, XFormUI offers a showmessage() method to display the messages at the interface. The developer uses this method without knowing how showmessage() calls the functions of the Alert component in J2ME MIDP, and those of the MessageBox component in SuperWaba. Combination of Components. Not all XForms components have corresponding components on the programming platform. In such cases, platform components are assembled to construct the XFormUI components. This approach achieves, in part, the similarity among the implementations. We present in Figure 6b an example of this approach. The XFormItem class of the framework XFormUI is composed in different modes on each platform. Specificity. Functions that do not correspond to the common functionalities of the studied programming platforms are added to the XFormUI framework to avoid the limitation of the framework to their minimal common characteristics. These functions are mainly related to the layout management, which is not available in some programming platforms such as J2ME MIDP 1.0. If a function cannot be completely implemented in a programming platform, the implementation of the corresponding methods in the framework cannot execute anything, or execute what is possible only in a partial way. The advantage of this design choice is that the software engineer can improve the interfaces. Thus, the framework tries to present them in the most accurate way using the functionalities available at the target programming platforms. For instance, if the platform supports colors, the application components became colorful. Figure 7 presents an overview of XFormUI. The framework is divided in four parts: Forms, Core and Events, Components, and Validation and Restriction. Figure 7 - Framework XFormUI Three types of forms can be constructed using the framework XFormUI: TextArea, Select1Full and XForm. TextArea corresponds to a textbox form, which has to fill the entire device screen. Select1Full is a menu list form in which the user selects one option. XForm corresponds to a standard form to which many components can be added (e.g., data input fields, selection components). Core and Events contains three

14 main classes of the framework: MainXForm, XFormItem and Trigger. MainXForm is an abstract class and contains the onstart() and onexit() methods. These methods are rewritten by the software engineer in order to define what happens when the application is initialized and finished. The Components part is composed of eight classes that can be added to an XForms form. These classes together provide data input (i.e., text, dates, and passwords), display of texts and images, and selection of options. The Validation and Restriction part is composed of classes that enable the software engineer to define data input restrictions. In addition, the framework checks if the data input does not violate these restrictions. Classes such as StringRestriction, StringValidator, BindRestriction, BindValidator, NumberRestriction and NumberValidator compose this part. For instance, restrictions, such as maximal and minimal character numbers in a text, and a valid interval for a numeric value, can be expressed using methods of the Validation and Restriction classes. Table 1 shows how some classes and methods of the framework are mapped to the programming platforms. XFormUI J2ME MIDP 1.0 J2ME MIDP 2.0 Superwaba MainXFform Midlet Midlet MainWindow TextArea TextBox TextBox Container with a ListBox XFormItem Item Item e ColorLabel Control and Label Input It can contain a TextField or a DateField ColorLabel and can contain a TextField or a DateField Edit and Label. In the case of date restriction, a Calendar is associated Output StringItem StringItem and ColorLabel Label Select1 ChoiceGroup with the ColorLabel and restriction Exclusive ChoiceGroup with the restriction Label and ComboBox or RadioGroup or a ListBox Exclusive or Popup triggerevent() commandaction() commandaction() onevent() setforecolor() - ColorLabel.setForeColor() Control.setForeColor() Table 1 - Mapping of the Framework classes 6. UIG The User Interface Generator (UIG) tool was developed to enable the mapping of the documents that describe the user interfaces (i.e., XForms, CSS, XMLSchema and Manifest.xml) into an executable code. The tool achieves this code generation using XSL [ 25] (i.e., extensible Stylesheet Language). This markup language based on XML allows the creation of stylesheets or mapping documents called XSLT (i.e., XSL mapping). The XSLT enables the definition of rules to map the tags from an XML document to another description. The advantage of XSLT comes from the availability of several XSL parsers. These XSL processors execute all the mapping process only with two documents: the XML original document and the XSLT mapping document. Figure 8 presents the code generation process of the UIG tool. As mentioned before, the tool uses XSLT to execute mappings from XML documents into Java code. However, one of the tool entries is a CSS document, which is not based on the XML standard. Therefore, to complete the mapping process, the first step is to map CSS into a XML document. For this reason, the XCSS was created, which specifies an XML document to support the attributes of a CSS document. After the XCSS generation, the UIG tool, using the XForms, XML Schema, and the XCSS documents, generates an intermediate document, XMLMiddleForm.

15 The XMLMiddleForm is a canonic form defined by UIG in order to facilitate programming platforms mapping process. XForms, XCSS and XMLSchema documents are firstly mapped into XmlMiddleForm and, then, from XMLMiddleForm to the programming platform code. This approach is the application of the Meta-Model design pattern, described in [ 24]. Meta-Model presents the advantage of easy extensibility of the tool for addition of new target platforms (e.g., generation to the BREW platform). After the XMLMiddleForm generation, the Manifest.xml file is read. Thus, UIG identifies the target platform and the required device class of the mapping. Hence, the tool sends the specific template of the device class to the XSLT processor. In this template, functions verify the need of execution of the form division process. Next, templates that map from XMLMiddleForm to Java classes are executed. The construction of the UIG tool was reached in Java by using JAXP (i.e., Java API for XML Processing). The JAXP contains several classes that enable the manipulation of XML documents. In addition, JAXP includes an XSLT processor capable of achieving the desired mappings. Figure 8 Mapping process of the UIG tool The generated code of the forms follows a model similar to MVC (Model/Viewer/Controller). For each form, three classes are generated: Interface, Bean and Controller. The Interface class defines the View part of the form in which the graphic components and their composition are described. The graphic components are instances of the XFormUI classes. Besides that, different contructors are generated to the Interface class allowing its instantiation with static and dynamic data. The Bean class contains attributes related to the form data. Consequently, this class corresponds to the model part. The Controller class contains the execution methods for each Trigger in the forms as well as the methods for data validation and navigability amongst the interfaces. Since the software engineer can focus on the writing of the controlling class that refers to the business rules of the application, the generated code model enables rapid application development. 7. Related works In this section, the following works that are strictly related to this paper s proposal are discussed: MultiMAD [ 29], SEFAGI [ 3], Roam [ 13], and ICrafter [ 18].

16 MultiMAD, for instance, is a visual tool for the generation of multi-modal applications for mobile devices [ 29]. It enables the construction of four types of forms with a limited group of generic components. Besides this, a software engineer can add specific visual components of a certain platform to the application. Nevertheless, the tool will generate code only for the specific platform. MultiMad presents two types of code generators: one for J2ME MIDP and another for WML 1.1/2.0. Different from the XMobile environment proposed in this article, MultiMAD does not offer dynamic adaptation. SEFAGI is architecture for automatic interface generation of Web-Services based applications [ 3]. The application windows are defined in XML AWD (Abstract Window Description) using a panel composition (e.g., video exhibition panel, table exhibition panel) and each panel is associated to a Web Service. Adaptation rules are defined to generate the executable code of the user interfaces. These rules define the widget mapping from AWD panel to a platform component as well as the user interface layout (e.g., components position, window division). The main inconvenience of using the SEFAGI tool comes from the need of creating for each new constructed component, a corresponding component in the AWD description. Furthermore, SEFAGI limits the application to a Web-Service client. Thus, in comparison with XMobile, SEFAGI limits the types of applications that can be constructed. Roam is a component framework for the construction of applications, which execute in heterogeneous devices and can migrate among them [ 13]. Roam allows the designer to define the application interface using a device-independent component toolkit that is similar to the graphic components of the Java Swing API. The Roam framework uses a structure of agents to assure the capture and the transference of the application status when the application migrates among the devices. The software engineer describes how the components should be adapted to a device-platform pair and if the application logic should migrate to a higher capacity device (e.g., a desktop computer). During the application migration, a Roam agent is responsible for choosing how the interface will be exhibited in the new device using the previously described adaptation strategies. The main difference of XMobile, which is presented in this paper, from Roam is the simultaneous support of static adaptation and dynamic adaptation. ICrafter is a framework for interface adaptation in interactive spaces [ 18]. In ICrafter, the environment devices (e.g., a blackboard, a PDA) require a service using a request to a UI (User Interface) server. The framework verifies the environment context and identifies the type of the requesting device. After this, ICrafter instantiates an interface generator, which creates a description of the service based on the current context. Furthermore, the generator delivers the description to the device that builds the interface. ICrafter generates UIs in VoiceXML, HTML and SUIML (Swing UI Markup Language). Similar to SEFAGI, ICrafter has limitations for the types of applications that can be constructed, in contrast to XMobile. Table 2 presents a summary of the comparison between the related works and the XMobile environment. This table shows the interface adaptation types supported by the environments and the main differences among them, as follows: types of applications, target platforms, user interface components, and other specific

17 characteristics. In short, the main difference of XMobile, which is presented in this paper, from the other environments mentioned before is the simultaneous support of static adaptation, with the UIG tool, and dynamic adaptation, with the framework XFormUI. In contrast with ICrafter and SEFAGI, there is no limitation in XMobile for the types of applications that can be constructed. Moreover, the use of W3C standards facilitates the XMobile learning curve and the interoperability of the UIG tool. ICrafter SEFAGI Types of Applications Applications for interactive spaces Online applications based on Web- Services MultiMAD Online/offline applications Roam XMobile Mobile applications Online/offline applications Target Platforms VoiceXML, HTML and SUIML J2SE and J2ME WML 1.0/2.0, J2ME MIDP 1.0 and J2ME MIDP 2.0 J2SE, Personal Java and J2ME Doja Superwaba, J2ME MIDP 1.0 and and J2ME MIDP 2.0 Interface Components UIs for each service of the interactive space Panels with component groups (i.e., grid, list, images) Lists, texts, forms with date and data input fields Similar components to the Java Swing API 10 XForms components and the XHtml image Types of Interface Adaptation Platform Dynamic Adaptation Platform Static Adaptation and Device Dynamic Adaptation Platform Static Adaptation Platform and Class of Device Dynamic Adaptation Platform and Class of Device Static Adaptation. Device Dynamic Adaptation Table 2 Related works to adaptive interfaces generation Specific Characteristics Templates to map the UIs in services. It requires a middleware for the SUIML in MDs Adaptation rules tables to map AWD in specific components, and form division. Visual tool and MobileVC code Code migration and recovering of application status XSLT for code generation, CSS and XML Schema support, Eclipse plug-in, Manifest.xml for navigation among interfaces, and form division. 8. Case Studies We developed a mobile photolog in order to validate the XMobile environment. The mobile photolog allows users to post their comments and pictures using a personal computer or a mobile device. The photolog website, called M-Phlog, can be accessed by a large number of users and it should be able to answer to the requests in a suitable time. During the website conception, the following non-functional requirements are identified: Adaptation of client application. Different users will access M-Phlog from devices with different characteristics. For this reason, the application should be able to execute in a large number of devices and programming platforms. Adaptation of accessed images. Image adaptation is required due to the effort that a mobile device makes to access a Web picture, because of its size and format. Different connectivity modes. The application should allow storage and access to the users preferred pictures in the device itself as a way of avoiding excessive package transmission. Access to multimedia functionalities. The M-Phlog client can use the mobile device camera, in case it has one, and the MMS protocol to send pictures. Although this case study is a basic application, it can not be developed with [ 23], which only provide interface adaptation based on Web technologies for mobile phones (i.e., WML and XHTML). Furthermore, this application can not be developed with [ 3]

18 or [ 13], which are works based on online connectivity model, once the last two requirements are not satisfied. In Figure 9, we present an overview of M-Phlog, which is composed of a client application that executes in mobile devices and a Web server. The XMobile environment is used to build the client application. The user interfaces forms are specified in XForms, CSS and XML Schema. In this case study, these forms, after being generated, were used for login data input, images and comments visualization, image search, update in the user s preferences, and post new comments. After writing these forms, a Manifest.xml file was created. The Manifest.xml document contains the directives of generation and the description of the navigation graph among the interfaces. Three code versions were then generated: J2ME MIDP 1.0 with a mobile phone device class, J2ME MIDP 2.0 with a smartphone device class and SuperWaba with a PDA device class. The maximum time for the code generation of all forms for these platforms was 9.52 seconds. It should be mentioned that UIG was executed on an AMD Athlon 2400Hz, 512 MB of RAM with Windows XP Pro. Figure 9 M-Phlog Architecture M-Phlog server was constructed with the Mobile Adapter framework [ 4], which provides the construction of applications for content adaptation according to the user s preferences and the device characteristics. Thus, a module for image adaptation was constructed to change the image properties conforming to the device display dimensions and the described user s preferences. More details on this adaptation process are described in [ 4]. The Controller classes of the generated code are associated to the frameworks Requisitor and MobAC [ 4] in order to achieve the communication between the applications and the M-Phlog server. These frameworks provide communication functions and context acquisition methods. The code written on the controllers is portable among the target programming platforms, once the frameworks are based on Java and also implemented using these platforms. Therefore, every function of data validation, data exchange among the forms and communication with the M-Phlog server have been written only once by the software engineer. In the mobile photolog application, local storage of the user s favorite images was created using FramePersist [ 12], which provides serialization, object persistence and

19 search methods. This framework is implemented using the RMS and Catalog APIs, respectively, of the MIDP and SuperWaba platforms. Camera access was achieved only on the J2ME MIDP 2.0 platform using Mobile Media API (MMA). The client versions were executed in three devices, as follows: an HP ipaq 4100 with SuperWaba; the cell phone Motorola A388 with MIDP 1.0; and the smartphone P900 with MIDP 2.0. Figure 10 presents an execution flow of the M-Flog client application on the P900 emulator, in which different visual components of the framework XFormUI are illustrated. Figure 10 - Flow of the M-Phlog client on the P900 emulator 7. Conclusion and Future Works The XMobile environment consists of a framework and a generation tool that facilitates the fast prototyping for pervasive applications in heterogeneous mobile devices. In addition, XMobile provides different levels of user interface adaptation. The framework XFormUI enables the construction of graphical interfaces with resources of data validation and component layout. XFormUI implementations allow a software engineer to write the graphical interfaces only once and to execute them in an adaptive way on the following platforms: Superwaba, J2ME MIDP 1.0, and J2ME MIDP 2.0. The UIG tool for code generation allows the definition of interfaces, styles and data validation by using the following declarative languages: XForms, CSS and XML Schema. This tool also provides the interface adaptation in relation to the device classes with user interface form division, and automatically produces the code for navigation among them. Another important contribution of this tool is the code generated model that makes it possible for a software engineer to write only the controllers of the user interface forms, and, as a consequence, to concentrate on the application business rules, since the interfaces have been already constructed.

Recommendations for Improving Device Independent Presentation Authoring. Krishna Vedati. Fast. Forward. Wireless.

Recommendations for Improving Device Independent Presentation Authoring. Krishna Vedati. Fast. Forward. Wireless. Recommendations for Improving Device Independent Presentation Authoring Krishna Vedati Agenda Device-Independent Presentation Authoring Current Approaches to Device-Independent Authoring Pros and Cons

More information

DVB-HTML MIDP 2.0 Graphics Architectures for Non-Desktop Devices

DVB-HTML MIDP 2.0 Graphics Architectures for Non-Desktop Devices DVB-HTML MIDP 2.0 Graphics Architectures for Non-Desktop Devices Pablo Cesar pcesar@tml.hut.fi http://www.tml.hut.fi/~pcesar Part I DVB-HTML Part II MIDP 2.0 Part III Outline Graphics Systems in Embedded

More information

Types and Methods of Content Adaptation. Anna-Kaisa Pietiläinen

Types and Methods of Content Adaptation. Anna-Kaisa Pietiläinen Types and Methods of Content Adaptation Anna-Kaisa Pietiläinen Agenda Introduction Multimedia Content Types Types of Adaptation Methods of Adaptation Conclusion Networks 2 Introduction Networks 3 The Problem

More information

Automatic Semantic Platform- dependent Redesign. Giulio Mori & Fabio Paternò. HIIS Laboratory ISTI-C.N.R.

Automatic Semantic Platform- dependent Redesign. Giulio Mori & Fabio Paternò.  HIIS Laboratory ISTI-C.N.R. Automatic Semantic Platform- dependent Redesign Giulio Mori & Fabio Paternò http://giove.isti.cnr.it/ HIIS Laboratory ISTI-C.N.R. Pisa, Italy Multi-Device Interactive Services: Current Practice Manual

More information

Chapter 3. Architecture and Design

Chapter 3. Architecture and Design Chapter 3. Architecture and Design Design decisions and functional architecture of the Semi automatic generation of warehouse schema has been explained in this section. 3.1. Technical Architecture System

More information

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance. XML Programming Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend face-to-face in the classroom or

More information

Multi-modal Web IBM Position

Multi-modal Web IBM Position Human Language Technologies Multi-modal Web IBM Position W3C / WAP Workshop Mobile Speech Solutions & Conversational AdTech Stéphane H. Maes smaes@us.ibm.com TV Raman 1 Definitions by example: evolution

More information

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

More information

Abstract. 1 Introduction

Abstract. 1 Introduction ROAM, A Seamless Application Framework Hao-hua Chu, Henry Song, Candy Wong, Shoji Kurakake, and Masaji Katagiri DoCoMo Communications Laboratories USA, Inc. 181 Metro Drive, Suite 300, San Jose, CA 95110

More information

eswt Requirements and High-Level Architecture Abstract Document Information Change History

eswt Requirements and High-Level Architecture Abstract Document Information Change History eswt Requirements and High-Level Architecture Abstract There is a need for a standardized UI API fit for embedded devices having fewer resources and smaller screen sizes than a desktop computer. The goal

More information

Scott Weiss & Richard Martin April, 2003

Scott Weiss & Richard Martin April, 2003 Scott Weiss & Richard Martin April, 2003 Usable Products Company, 2003 About the Course Scott Weiss Author, Handheld Usability (John Wiley & Sons) Principal, Usable Products Company Course History: You

More information

Device Independent Principles for Adapted Content Delivery

Device Independent Principles for Adapted Content Delivery Device Independent Principles for Adapted Content Delivery Tayeb Lemlouma 1 and Nabil Layaïda 2 OPERA Project Zirst 655 Avenue de l Europe - 38330 Montbonnot, Saint Martin, France Tel: +33 4 7661 5281

More information

ESPRIT Project N Work Package H User Access. Survey

ESPRIT Project N Work Package H User Access. Survey ESPRIT Project N. 25 338 Work Package H User Access Survey ID: User Access V. 1.0 Date: 28.11.97 Author(s): A. Sinderman/ E. Triep, Status: Fast e.v. Reviewer(s): Distribution: Change History Document

More information

VMer Visualized Mobile Designer for Applications on Small Devices

VMer Visualized Mobile Designer for Applications on Small Devices Proc. of the 8th WSEAS Int. Conf. on Mathematical Methods and Computational Techniques in Electrical Engineering, Bucharest, October 16-17, 2006 253 VMer Visualized Mobile Designer for Applications on

More information

Mobile Information Device Profile (MIDP) Alessandro Cogliati. Helsinki University of Technology Telecommunications Software and Multimedia Laboratory

Mobile Information Device Profile (MIDP) Alessandro Cogliati. Helsinki University of Technology Telecommunications Software and Multimedia Laboratory Multimedia T-111.5350 Mobile Information Device Profile (MIDP) Alessandro Cogliati Helsinki University of Technology Telecommunications Software and Multimedia Laboratory 1 Outline Java Overview (Editions/Configurations/Profiles)

More information

VMware AirWatch 8 VPAT

VMware AirWatch 8 VPAT VMware, Inc. 3401 Hillview Avenue Palo Alto, CA 94304 (877) 486-9273 main (650) 427-5001 fax www.vmware.com VMware AirWatch 8 VPAT May 2015 Since the VPAT must be comprehensive, all Section 508 issues

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

XML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti

XML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti XML for Java Developers G22.3033-002 Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical

More information

XML Applications. Introduction Jaana Holvikivi 1

XML Applications. Introduction Jaana Holvikivi 1 XML Applications Introduction 1.4.2009 Jaana Holvikivi 1 Outline XML standards Application areas 1.4.2009 Jaana Holvikivi 2 Basic XML standards XML a meta language for the creation of languages to define

More information

HMI ARCHITECTURE SUMMARY ARCHITECTURE DESCRIPTION

HMI ARCHITECTURE SUMMARY ARCHITECTURE DESCRIPTION HMI ARCHITECTURE Piergiorgio Navone Advanced Product Dept - Centro Ricerche FIAT Strada Torino 50 10043 Orbassano (TO), Italy Tel: +39 011 9083 866 - Fax +39 011 9083 083 - e-mail: p.navone@crf.it Federico

More information

DESIGNING MULTI-DEVICE INTERACTIVE SERVICES THROUGH MULTIPLE ABSTRACTION LEVELS

DESIGNING MULTI-DEVICE INTERACTIVE SERVICES THROUGH MULTIPLE ABSTRACTION LEVELS DESIGNING MULTI-DEVICE INTERACTIVE SERVICES THROUGH MULTIPLE ABSTRACTION LEVELS SILVIA BERTI, GIULIO MORI, FABIO PATERNO, CARMEN SANTORO ISTI-CNR, Pisa {silvia.berti, giulio.mori, fabio.paterno, carmen.santoro}@isti.cnr.it

More information

An Annotation Tool for Semantic Documents

An Annotation Tool for Semantic Documents An Annotation Tool for Semantic Documents (System Description) Henrik Eriksson Dept. of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden her@ida.liu.se Abstract. Document

More information

White Paper: Delivering Enterprise Web Applications on the Curl Platform

White Paper: Delivering Enterprise Web Applications on the Curl Platform White Paper: Delivering Enterprise Web Applications on the Curl Platform Table of Contents Table of Contents Executive Summary... 1 Introduction... 2 Background... 2 Challenges... 2 The Curl Solution...

More information

Abstract. 1. Conformance. 2. Introduction. 3. Abstract User Interface

Abstract. 1. Conformance. 2. Introduction. 3. Abstract User Interface MARIA (Model-based language for Interactive Applications) W3C Working Group Submission 3 February 2012 Editors: Fabio Paternò, ISTI-CNR Carmen Santoro, ISTI-CNR Lucio Davide Spano, ISTI-CNR Copyright 2012

More information

Adobe Sign Voluntary Product Accessibility Template

Adobe Sign Voluntary Product Accessibility Template Adobe Sign Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments regarding the

More information

Design concepts for data-intensive applications

Design concepts for data-intensive applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Design concepts for data-intensive applications Attila Adamkó Department of Information Technology, Institute of

More information

Inf 202 Introduction to Data and Databases (Spring 2010)

Inf 202 Introduction to Data and Databases (Spring 2010) Inf 202 Introduction to Data and Databases (Spring 2010) Jagdish S. Gangolly Informatics CCI SUNY Albany April 22, 2010 Database Processing Applications Standard Database Processing Client/Server Environment

More information

UNIVERSITY OF NORTH CAROLINA WILMINGTON

UNIVERSITY OF NORTH CAROLINA WILMINGTON Department: Contact Person: Date: Email: Online - Web & Course Accessibility Checklist Text, presentation & content Text equivalent is provided for every non-text element (i.e., image) (Solution: add an

More information

Wireless service developing for ubiquitous computing environments using J2ME technologies

Wireless service developing for ubiquitous computing environments using J2ME technologies Wireless service developing for ubiquitous computing environments using J2ME technologies José Miguel Rubio Escuela de Ingeniería Informática Facultad de Ingeniería, PUCV Valparaíso, Chile jose.rubio.l@ucv.cl

More information

Universal Profiling for Content Negotiation and Adaptation in Heterogeneous Environments

Universal Profiling for Content Negotiation and Adaptation in Heterogeneous Environments Page 1 of 5 Universal Profiling for Content Negotiation and Adaptation in Heterogeneous Environments Tayeb Lemlouma and Nabil Layaïda OPERA Project, INRIA Rhône Alpes Zirst - 655 avenue de l'europe - Montbonnot

More information

IBM's UI UNITY A Role Based, Device Independent, Administrative Console

IBM's UI UNITY A Role Based, Device Independent, Administrative Console IBM's UI UNITY A Role Based, Device Independent, Administrative Console Colin Powell Senior Technical Staff Member Ease of Use Common Systems Administration The "Opportunity" CSA: A Big Opportunity Every

More information

XML Metadata Standards and Topic Maps

XML Metadata Standards and Topic Maps XML Metadata Standards and Topic Maps Erik Wilde 16.7.2001 XML Metadata Standards and Topic Maps 1 Outline what is XML? a syntax (not a data model!) what is the data model behind XML? XML Information Set

More information

Determining the Best Approach

Determining the Best Approach 2 Determining the Best Approach The remaining chapters of this book cover the capabilities of the BlackBerry application platform and then dig into each application development option in detail. Before

More information

Ylvi - Multimedia-izing the Semantic Wiki

Ylvi - Multimedia-izing the Semantic Wiki Ylvi - Multimedia-izing the Semantic Wiki Niko Popitsch 1, Bernhard Schandl 2, rash miri 1, Stefan Leitich 2, and Wolfgang Jochum 2 1 Research Studio Digital Memory Engineering, Vienna, ustria {niko.popitsch,arash.amiri}@researchstudio.at

More information

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol) Developing web applications for PDAs and Cellphones Mobile Station Execution Environment (MExE( MExE) MExE is a standard for defining various levels of wireless communication These levels are called classmarks

More information

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level Kay Glahn Consultant Mobile Service Architecture, Vodafone http://www.vodafone.com Erkki Rysä Technologist Nokia Corporation http://www.nokia.com

More information

DICOM Structured Reporting: Implementation Experience

DICOM Structured Reporting: Implementation Experience DICOM Structured Reporting: Implementation Experience David Clunie, MD. Director of Healthcare Information Systems ComView Corporation Design Goals Cardiology image reporting system Multi-modality: Angio

More information

Diploma in Web & Multimedia Development LC201

Diploma in Web & Multimedia Development LC201 Diploma in Web & Multimedia Development LC201 1. Objectives This course offers web and multimedia development skills which are focused on internet technologies such as the design and implementation of

More information

VMware vrealize Code Stream 6.2 VPAT

VMware vrealize Code Stream 6.2 VPAT VMware, Inc. 3401 Hillview Avenue Palo Alto, CA 94304 (877) 486-9273 main (650) 427-5001 fax www.vmware.com VMware vrealize Code Stream 6.2 VPAT June 2015 Since the VPAT must be comprehensive, all Section

More information

Delivery of Services on Any Device From Java Code to User Interface

Delivery of Services on Any Device From Java Code to User Interface Delivery of Services on Any Device From Java Code to User Interface Davide Carboni, Andrea Piras, Stefano Sanna, Gavino Paddeu CRS4 Center for Advanced Studies, Research and Development in Sardinia VI

More information

VMware vrealize Code Stream 1.0 VPAT

VMware vrealize Code Stream 1.0 VPAT VMware, Inc. 3401 Hillview Avenue Palo Alto, CA 94304 (877) 486-9273 main (650) 427-5001 fax www.vmware.com VMware vrealize Code Stream 1.0 VPAT June 2015 Since the VPAT must be comprehensive, all Section

More information

AIM. 10 September

AIM. 10 September AIM These two courses are aimed at introducing you to the World of Web Programming. These courses does NOT make you Master all the skills of a Web Programmer. You must learn and work MORE in this area

More information

USING METADATA TO PROVIDE SCALABLE BROADCAST AND INTERNET CONTENT AND SERVICES

USING METADATA TO PROVIDE SCALABLE BROADCAST AND INTERNET CONTENT AND SERVICES USING METADATA TO PROVIDE SCALABLE BROADCAST AND INTERNET CONTENT AND SERVICES GABRIELLA KAZAI 1,2, MOUNIA LALMAS 1, MARIE-LUCE BOURGUET 1 AND ALAN PEARMAIN 2 Department of Computer Science 1 and Department

More information

Alpha College of Engineering and Technology. Question Bank

Alpha College of Engineering and Technology. Question Bank Alpha College of Engineering and Technology Department of Information Technology and Computer Engineering Chapter 1 WEB Technology (2160708) Question Bank 1. Give the full name of the following acronyms.

More information

Adobe Dreamweaver CS6 Digital Classroom

Adobe Dreamweaver CS6 Digital Classroom Adobe Dreamweaver CS6 Digital Classroom Osborn, J ISBN-13: 9781118124093 Table of Contents Starting Up About Dreamweaver Digital Classroom 1 Prerequisites 1 System requirements 1 Starting Adobe Dreamweaver

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES

A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES Journal of Web Engineering, Vol. 15, No. 3&4 (2016) 277 309 c Rinton Press A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES KORAWIT PRUTSACHAINIMMIT, TAKEHIRO TOKUDA

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

Mobile MOUSe WEB SITE DESIGN ONLINE COURSE OUTLINE

Mobile MOUSe WEB SITE DESIGN ONLINE COURSE OUTLINE Mobile MOUSe WEB SITE DESIGN ONLINE COURSE OUTLINE COURSE TITLE WEB SITE DESIGN COURSE DURATION 19 Hours of Interactive Training COURSE OVERVIEW In this 7 session course Debbie will take you through the

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

Context-Aware Adaptation for Mobile Devices

Context-Aware Adaptation for Mobile Devices Context-Aware Adaptation for Mobile Devices Tayeb Lemlouma and Nabil Layaïda WAM Project, INRIA, Zirst 655 Avenue de l Europe 38330, Montbonnot, Saint Martin, France {Tayeb.Lemlouma, Nabil.Layaida}@inrialpes.fr

More information

Dreamweaver CS4. Introduction. References :

Dreamweaver CS4. Introduction. References : Dreamweaver CS4 Introduction References : http://help.adobe.com 1 What s new in Dreamweaver CS4 Live view Dreamweaver CS4 lets you design your web pages under realworld browser conditions with new Live

More information

XML-based production of Eurostat publications

XML-based production of Eurostat publications Doc. Eurostat/ITDG/October 2007/2.3.1 IT Directors Group 15 and 16 October 2007 BECH Building, 5, rue Alphonse Weicker, Luxembourg-Kirchberg Room QUETELET 9.30 a.m. - 5.30 p.m. 9.00 a.m 1.00 p.m. XML-based

More information

Adobe Experience Manager 6.0 Voluntary Product Accessibility Template

Adobe Experience Manager 6.0 Voluntary Product Accessibility Template Adobe Experience Manager 6.0 Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments

More information

An Approach to VoiceXML Application Modeling

An Approach to VoiceXML Application Modeling An Approach to Application Modeling Xin Ni 1 Meng Ye 2 Lianhong Cai 3 1,3 Tsinghua University, Beijing, China 2 IBM China Research Lab nx01@mails.tsinghua.edu.cn, yemeng@cn.ibm.com, clh-dcs@tsinghua.edu.cn

More information

Universal Communication Component on Symbian Series60 Platform

Universal Communication Component on Symbian Series60 Platform Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and

More information

Content Adaptation and Generation Principles for Heterogeneous Clients

Content Adaptation and Generation Principles for Heterogeneous Clients Content Adaptation and Generation Principles for Heterogeneous Clients Tayeb Lemlouma and Nabil Layaïda OPERA Project, INRIA Rhône Alpes E-Mail: Tayeb.Lemlouma@inrialpes.fr, Nabil.Layaida@inrialpes.fr

More information

A Scalable Presentation Format for Multichannel Publishing Based on MPEG-21 Digital Items

A Scalable Presentation Format for Multichannel Publishing Based on MPEG-21 Digital Items A Scalable Presentation Format for Multichannel Publishing Based on MPEG-21 Digital Items Davy Van Deursen 1, Frederik De Keukelaere 1, Lode Nachtergaele 2, Johan Feyaerts 3, and Rik Van de Walle 1 1 ELIS,

More information

Adobe LiveCycle Mobile Forms ES4 Voluntary Product Accessibility Template

Adobe LiveCycle Mobile Forms ES4 Voluntary Product Accessibility Template Adobe LiveCycle Mobile Forms ES4 Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments

More information

Adaptive Multimedia Messaging based on MPEG-7 The M 3 -Box

Adaptive Multimedia Messaging based on MPEG-7 The M 3 -Box Adaptive Multimedia Messaging based on MPEG-7 The M 3 -Box Abstract Jörg Heuer José Luis Casas André Kaup {Joerg.Heuer, Jose.Casas, Andre.Kaup}@mchp.siemens.de Siemens Corporate Technology, Information

More information

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far XML Tutorial Yanan Zhang Department of Electrical and Computer Engineering University of Calgary

More information

YuJa Enterprise Video Platform Voluntary Product Accessibility Template (VPAT)

YuJa Enterprise Video Platform Voluntary Product Accessibility Template (VPAT) Platform Accessibility YuJa Enterprise Video Platform Voluntary Product Accessibility Template (VPAT) Updated: April 18, 2018 Introduction YuJa Corporation strives to create an equal and consistent media

More information

Models, Tools and Transformations for Design and Evaluation of Interactive Applications

Models, Tools and Transformations for Design and Evaluation of Interactive Applications Models, Tools and Transformations for Design and Evaluation of Interactive Applications Fabio Paternò, Laila Paganelli, Carmen Santoro CNUCE-C.N.R. Via G.Moruzzi, 1 Pisa, Italy fabio.paterno@cnuce.cnr.it

More information

Internet Application Developer

Internet Application Developer Internet Application Developer SUN-Java Programmer Certification Building a Web Presence with XHTML & XML 5 days or 12 evenings $2,199 CBIT 081 J A V A P R O G R A M M E R Fundamentals of Java and Object

More information

Developing ASP.NET MVC 5 Web Applications. Course Outline

Developing ASP.NET MVC 5 Web Applications. Course Outline Developing ASP.NET MVC 5 Web Applications Course Outline Module 1: Exploring ASP.NET MVC 5 The goal of this module is to outline to the students the components of the Microsoft Web Technologies stack,

More information

Layered UI and Adaptation Policies for Ubiquitous Web Applications

Layered UI and Adaptation Policies for Ubiquitous Web Applications Layered UI and Adaptation Policies for Ubiquitous Web Applications Centering ideas for upcoming standards 25 October 2007 José M. Cantera.- Telefónica I+D jmcf@tid.es Introduction Introduction Developing

More information

Design and Implementation of a Service Discovery Architecture in Pervasive Systems

Design and Implementation of a Service Discovery Architecture in Pervasive Systems Design and Implementation of a Service Discovery Architecture in Pervasive Systems Vincenzo Suraci 1, Tiziano Inzerilli 2, Silvano Mignanti 3, University of Rome La Sapienza, D.I.S. 1 vincenzo.suraci@dis.uniroma1.it

More information

Adobe RoboHelp 9 Voluntary Product Accessibility Template

Adobe RoboHelp 9 Voluntary Product Accessibility Template Adobe RoboHelp 9 Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments regarding

More information

Hospital System Lowers IT Costs After Epic Migration Flatirons Digital Innovations, Inc. All rights reserved.

Hospital System Lowers IT Costs After Epic Migration Flatirons Digital Innovations, Inc. All rights reserved. Hospital System Lowers IT Costs After Epic Migration 2018 Flatirons Digital Innovations, Inc. All rights reserved. A large hospital system was migrating to the EPIC software product suite and as part of

More information

Human Interaction Container Paradigm

Human Interaction Container Paradigm Human Interaction Container Paradigm HIT Lab. Sébastien PRAUD July 20th, 2004 THALES Research & Technology Motivations Human Machine Interfaces (HMI) were designed to render applications or systems tracktable

More information

Eclipse as a Web 2.0 Application Position Paper

Eclipse as a Web 2.0 Application Position Paper Eclipse Summit Europe Server-side Eclipse 11 12 October 2006 Eclipse as a Web 2.0 Application Position Paper Automatic Web 2.0 - enabling of any RCP-application with Xplosion Introduction If todays Web

More information

Voluntary Product Accessibility Template Version 2.1 January 2016

Voluntary Product Accessibility Template Version 2.1 January 2016 Voluntary Product Accessibility Template Version 2.1 January 2016 For additional questions on this VPAT form, please contact support@yuja.com Overview YuJa is firmly committed to the belief that our Enterprise

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies Database Systems: Design, Implementation, and Management Tenth Edition Chapter 14 Database Connectivity and Web Technologies Database Connectivity Mechanisms by which application programs connect and communicate

More information

Acknowledgments Introduction p. 1 The Wireless Internet Revolution p. 1 Why Java Technology for Wireless Devices? p. 2 A Bit of History p.

Acknowledgments Introduction p. 1 The Wireless Internet Revolution p. 1 Why Java Technology for Wireless Devices? p. 2 A Bit of History p. Figures p. xiii Foreword p. xv Preface p. xvii Acknowledgments p. xxi Introduction p. 1 The Wireless Internet Revolution p. 1 Why Java Technology for Wireless Devices? p. 2 A Bit of History p. 3 J2ME Standardization

More information

X-S Framework Leveraging XML on Servlet Technology

X-S Framework Leveraging XML on Servlet Technology X-S Framework Leveraging XML on Servlet Technology Rajesh Kumar R Abstract This paper talks about a XML based web application framework that is based on Java Servlet Technology. This framework leverages

More information

Teamcenter Voluntary Product Accessibility Template. Summary Table Voluntary Product Accessibility Template

Teamcenter Voluntary Product Accessibility Template. Summary Table Voluntary Product Accessibility Template Date: 26-Jun-2015 Name of Product and Release: Teamcenter 11.2.x Contact for more Information: Kiran Hegde [kiran.hegde@siemens.com] Section 508 VPAT Template Version: Version 1.6 This document is for

More information

Oracle FLEXCUBE Direct Banking

Oracle FLEXCUBE Direct Banking Oracle FLEXCUBE Direct Banking Mobile J2ME Client Developer Guide Release 12.0.3.0.0 Part No. E52543-01 April 2014 Mobile J2ME Client Developer Guide April 2014 Oracle Financial Services Software Limited

More information

Adobe Business Catalyst Voluntary Product Accessibility Template

Adobe Business Catalyst Voluntary Product Accessibility Template Adobe Business Catalyst Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments

More information

Developing corporate mobile applications. An alternative approach to native development

Developing corporate mobile applications. An alternative approach to native development Developing corporate mobile applications An alternative approach to native development SUN J2ME Code Camp Paris, November 5th, 2001 Franck Lefèvre Franck.lefevre@DigitalAirways.com 2 The problem with developing

More information

KEYWORDS. Mobile commerce, E-commerce, mobile agent, SMA, Aglet. 1 INTRODUCTION

KEYWORDS. Mobile commerce, E-commerce, mobile agent, SMA, Aglet. 1 INTRODUCTION Mobile commerce approach based on mobile Oussama Zerdoumi, Department of Mathematics and Computer Science, University of Kasdi Merbah Ouargla, 30000 Algeria Okba Kazar, Saber Benharzallah Department of

More information

For a detailed description of the parent features and benefits, please refer to the following URL:

For a detailed description of the parent features and benefits, please refer to the following URL: 05/13/2016 05:00:38 EDT CSU Fullerton VPAT for IBM Watson Content Analytics 3.5 VPAT comments: For a detailed description of the parent features and benefits, please refer to the following URL: http://www-03.ibm.com/software/products/en/watson-content-analytics

More information

RADX - Rapid development of web applications in XML

RADX - Rapid development of web applications in XML RADX - Rapid development of web applications in XML José Paulo Leal and Jorge Braz Gonçalves DCC-FC, University of Porto R. Campo Alegre, 823 4150 180 Porto, Portugal zp@dcc.fc.up.pt, jgoncalves@ipg.pt

More information

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML Chapter 7 XML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML

More information

AN EMBEDDED TREE DATA MODEL FOR WEB CONTENT ADAPTATION

AN EMBEDDED TREE DATA MODEL FOR WEB CONTENT ADAPTATION AN EMBEDDED TREE DATA MODEL FOR WEB CONTENT ADAPTATION by YANMING WANG B. Eng., Beijing Institute of Technology, 1997 A THESIS SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER

More information

Developing Wireless Applications for Multiple Geographies. Christopher Koppe Speedware Corporation

Developing Wireless Applications for Multiple Geographies. Christopher Koppe Speedware Corporation Developing Wireless Applications for Multiple Geographies Christopher Koppe Speedware Corporation The Wireless World of Internet-Enabled Devices Mobile Phones Microbrowser-enabled Smart Phones The Wireless

More information

Delivery Context in MPEG-21

Delivery Context in MPEG-21 Delivery Context in MPEG-21 Sylvain Devillers Philips Research France Anthony Vetro Mitsubishi Electric Research Laboratories Philips Research France Presentation Plan MPEG achievements MPEG-21: Multimedia

More information

Agenda. Summary of Previous Session. XML for Java Developers G Session 7 - Main Theme XML Information Rendering (Part II)

Agenda. Summary of Previous Session. XML for Java Developers G Session 7 - Main Theme XML Information Rendering (Part II) XML for Java Developers G22.3033-002 Session 7 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical

More information

A Model-Controller Interface for Struts-Based Web Applications

A Model-Controller Interface for Struts-Based Web Applications A Model-Controller Interface for Struts-Based Web Applications A Writing Project Presented to The Faculty of the Department of Computer Science San José State University In Partial Fulfillment of the Requirements

More information

Oracle Mobile Application Framework

Oracle Mobile Application Framework Oracle Mobile Application Framework Oracle Mobile Application Framework (Oracle MAF) is a hybrid-mobile development framework that enables development teams to rapidly develop single-source applications

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology An Overview of Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology August 23, 2011 1. Design Principles 2. Architectural Patterns 3. Building for Degradation

More information

Adobe LiveCycle Forms Manager ES4 Voluntary Product Accessibility Template

Adobe LiveCycle Forms Manager ES4 Voluntary Product Accessibility Template Adobe LiveCycle Forms Manager ES4 Voluntary Product Accessibility Template The purpose of the Voluntary Product Accessibility Template is to assist Federal contracting officials in making preliminary assessments

More information

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML is a markup language,

More information

EBS goes social - The triumvirate Liferay, Application Express and EBS

EBS goes social - The triumvirate Liferay, Application Express and EBS EBS goes social - The triumvirate Liferay, Application Express and EBS Keywords: EBS, Portals, Application Express, Integration Overview Michael Pergande PROMATIS software GmbH Ettlingen As part of Oracle

More information

Call: SharePoint 2013 Course Content:35-40hours Course Outline

Call: SharePoint 2013 Course Content:35-40hours Course Outline SharePoint 2013 Course Content:35-40hours Course Outline Exploring SharePoint Designer 2013 Understanding SharePoint Designer 2013 Using SharePoint Designer to Carry Out Common Tasks Understanding What's

More information

Evaluation of Electronic Guidebook Mobile Web Resources

Evaluation of Electronic Guidebook Mobile Web Resources Evaluation of Electronic Guidebook Mobile Web Resources Executive Summary The Electronic Guidebook research project began in 1998 at The Exploratorium, an interactive science museum in San Francisco, in

More information

eclipse rich ajax platform (rap)

eclipse rich ajax platform (rap) eclipse rich ajax platform (rap) winner Jochen Krause CEO Innoopract Member of the Board of Directors Eclipse Foundation jkrause@innoopract.com GmbH outline rich ajax platform project status and background

More information

What You See Is What You Sign Trustworthy Display of XML Documents for Signing and Verification

What You See Is What You Sign Trustworthy Display of XML Documents for Signing and Verification What You See Is What You Sign Trustworthy Display of XML Documents for Signing and Verification Karl Scheibelhofer Institute for Applied Information Processing and Communications /nffeldgasse 16a, A-8010

More information

ACTA UNIVERSITATIS APULENSIS No 12/2006 DESIGNING MIDDLEWARE FOR PERVASIVE COMPUTING. Lucian Burja and Mihai Tanase

ACTA UNIVERSITATIS APULENSIS No 12/2006 DESIGNING MIDDLEWARE FOR PERVASIVE COMPUTING. Lucian Burja and Mihai Tanase ACTA UNIVERSITATIS APULENSIS No 12/2006 DESIGNING MIDDLEWARE FOR PERVASIVE COMPUTING Lucian Burja and Mihai Tanase Abstract.Intelligent cell phones, palmtops, PDAs and other mobile devices are fast becoming

More information

Graphics Software Architecture for High- End Interactive Television Receivers

Graphics Software Architecture for High- End Interactive Television Receivers Graphics Software Architecture for High- End Interactive Television Receivers Pablo Cesar Helsinki University of Technology Finland pcesar@tml.hut.fi http://www.tml.hut.fi/~pcesar Introduction Device Chaos

More information