and - tags.
Other table rows are defined inside the element. The pattern defines the XML elements in the data sources, which are repeated to form the table.
The designates a sortable column. Listing 10 shows an example of RPX Table definition. This generates the table dynamically according to the XML structure. The column names are gotten from XML element /Table/Recordset/Record/Field@name and the row contents from XML element /Table/Recordset/Record/@value. The iterated element is marked with [$$]. As a form definition language this example uses HTML. Listing 10. A RPX Table definition file.
RPX Table component has an internal application-wide cache, which at first request loads the whole table in memory and all subsequent requests use the preloaded table data.
FRAMEWORK FOR DEVELOPING WAP AND WWW APPLICATIONS
4.7.4
60
Caching
On-demand XSL transformations are quite laborious for the server. Therefore caching is very important in applications using them. Caching on WSRP is possible in different stages. The choice of caching strategy depends on the situation. Cache container can be the main memory of the server or the file system, depending on the situation. Main memory cache in RPX application is usually implemented in a application-wide container object RPXApplication. Target document caching If the master documents or data is seldom changed and most of the views to it are static, then it is most efficient to cache the result documents, whether in WML or HTML. This way the XSL transformation is done only when either the master document or the transformation definitions change. Thus the first request to a document will be slower, but the subsequent requests will be as fast as fetching a static document. This type of caching can be implemented using the filesystem as the cache container. When a request arrives, the system checks for the timestamps of the result document and the dependent documents. If the version in the cache is outdated, the transformation is executed and its result replaces the older version in the cache. Master document caching In master document caching, XML files are parsed beforehand and stored in the main memory as XML objects. As a result, XML files don’t need to be parsed on every request. Master document caching is plausible even if the views to the data are often changed and the first approach cannot be used. Such a situation is usual in applications, where the user makes queries to the data or the user’s view to the data is customized. Master document caching is not as effective as target document caching. If a database is used as the master document, it is already considered cached. Still, in some occasions, it may be useful the cache the XML objects. XSL caching As XSL files are XML documents as well, they can be cached as well. This is almost always possible. The target documents still need to be transformed on-demand. 4.7.5
Generating content through templates
WSRP applications can generate content with the help of content templates. Templates are regular content files (HTML or WML) with special tags for variables, which can be substituted by application’s java code, either before the transfer or during the transfer, using callback functions.
61
FRAMEWORK FOR DEVELOPING WAP AND WWW APPLICATIONS
4.8
Evaluation with respect to the requirements
We now validate the practical work presented in this chapter to see which of the requirements introduced above were met. Table 6 presents briefly these requirements and states which part of the work addressed each item. Table 6. Requirements and related work in this thesis. Requirement
Related work in this thesis
Chapter
Req. 1. The same application must facilitate access with both WAP and WWW clients.
The whole chapter addresses this core requirement.
4
Req. 2. The content authoring must take place only once and the content must be convertible to other medias.
The work addresses this by using XML as the master content format.
4.7
Req. 3. The application logic and content must be separated from the user interface.
The framework has a modular architecture, which separates the content from the user interface.
4.3.1
Req. 4. The framework must include a system for handling link parameters in a single place in order to facilitate easier maintenance.
This requirement is addressed by the URL link map.
4.6.3
Req. 5. Error messages must be customizable and viewable on all client devices.
The framework presents customizable error messages according to the browser type.
4.6.4
Req. 6. Forms filled by users must be handled similarly independent of the client device.
RPX Forms system addresses this requirement.
4.7.2
Req. 7. The framework must facilitate fragmenting the table content according to the client device.
RPX Table, based on RPX Form addresses this requirement.
4.7.3
Req. 8. The application must have full control over the user interfaces.
The application defines its user interfaces in a way described in the thesis and therefore has full control over the user interfaces.
4.7
Req. 9. The applications using the framework must be efficient.
Caching is possible on several levels in the framework. Also content can be stored in a database for more efficient querying and retrieval.
4.7.4
Req. 10. The applications must be able to use both WWW and WAP server as the application host
We have shown the practical work done to add WAP support to RPX Platform and to use Nokia WAP server as the application host for RPX Platform. Therefore this requirement is met.
4.4 and 4.6
PROTOTYPE APPLICATIONS
62
5 Prototype Applications This section describes the prototype applications, which were developed using the framework presented in previous section. The prototype applications include a contact database and a service manual. Contact database enabled us to try out the ideas when developing the framework while service manual was a customer case, which put almost all the features in the framework in use.
5.1
Contact database
Contact database is a simple user interface to database consisting of people and their contact information, such as email addresses and phone numbers. Contact database is designed to be used internally in Remtec’s organization. Being able to browse contact database both with a WAP-enabled mobile phone and a Web browser gives substantial benefit to Remtec’s employees. 5.1.1
WWW user interface
Fig. 28 shows the main page of the contacts database HTML user interface. The main page lists all the contacts in a HTML table. On the top of the page is a page size selection. When page size is smaller than the number of rows in the table then the table is split into several pages. The inter-page navigation links are located below the table. The table can be sorted by any column by clicking the corresponding column header. The columns can be moved to left and right by clicking the arrows in the column headers. Contacts can be modified by clicking the edit link located in the end of each row. Fig. 29 shows the edit window.
Fig. 28. Contact database HTML main page.
PROTOTYPE APPLICATIONS
63
Fig. 29. Contact database user modification form. 5.1.2
WAP user interface
The WML user interface is optimized for small WAP devices such as the Nokia 7110. Fig. 30 shows the screenshots of the WML user interface. The main page shows a list of contacts as links. Following a link leads to full details of a contact. At the bottom of the details page is a link named “MODIFY” which leads to a form, where contact information can be modified and then saved.
Scroll down
Fig. 30. Contact database WML navigation.
Scroll down
PROTOTYPE APPLICATIONS
5.1.3
64
Contact database architecture
The contact database uses Microsoft XML parser and RPX’s XMLBase to read and modify the XML data. The main page uses RPX Table component to form the HTML presentation. WML UI is generated with XSLT transformations. The modify page uses RPX Forms mechanism to create the HTML and WML form and updating the results into XML data. Listing 11 shows example data used by the application. Listing 11. XML data of the contact database example Mikko Honkala Mikko.Honkala@remtec.fi 5259 24 52 52 050 570 4102 Pertti Laiho Pertti.Laiho@remtec.fi 555 - 1235
5.1.4
Analysis of contact database
In contact database application it was possible to test how the RPX Forms architecture works in WAP environment. As it turned out, RPX Forms was usable with minor changes in WAP environment as well as in Web. Both versions of the contact modification forms were created with RPX Forms with different Form definition files. The user edited form is handled by the RPX Forms mechanism. In this prototype version, RPX Table component was used only in the HTML version.
65
PROTOTYPE APPLICATIONS
5.2
KEWAP Service manual
5.2.1
Overview
KEWAP Service Manual system (in future referred as 'KEWAP') was developed for KONE Oyj as a part of this thesis. It enables elevator servicemen to access maintenance documentation and spare part catalogue with a WAP enabled mobile phone or a standard Web browser in a laptop computer. Fig. 31 illustrates the documentation creation, production, and delivery processes at KONE Oyj. KEWAP is located in the production and delivery processes. The documentation is either created or translated to a predefined XML format (cf. chapter 5.2.6). KEWAP produces on-demand both WML and HTML views of the XML data and offers some search ability on the data. Details and numbers in the examples in this section have been altered to protect the data security of KONE Oyj. Documentation CREATION
Documentation PRODUCTION
Ms Word
Conversion MS Word --> XML
XML fragments (on-demand)
L XM L XM
Epic
XML Documentation 1
2
WML Cards (on-demand)
XM L Example: Documentor
3
HTML (On-demand)
Example: FrameMaker+SGML
Documentation DELIVERY
WAP Proxy WAP device
Web Server + RPX Platfrom
WEB browser
Fig. 31. Documentation creation, production, and delivery processes.
PROTOTYPE APPLICATIONS
66
The system consist of three types of service documents: • Spare part catalogue, which can be searched and browsed. • Site reference cards, each describing a specific elevator product. Cards can be browsed and there is a limited search function also. • ASG manuals, describing service procedures in a more general level. All documents are can be browsed both with a WAP device or a regular HTML browser. 5.2.2
WWW user interface
The Web user interface allows showing large documents in a single scrollable document window. The navigation is based on three frames as shown in the screenshot in Fig. 32. The leftmost frame shows the product selection, the topmost frame shows the available document types, and the main frame shows either a document selection or the document itself.
Fig. 32. KEWAP Web user interface.
PROTOTYPE APPLICATIONS
5.2.3
67
WAP user interface
The WML user interface is optimized for small WAP devices such as the Nokia 7110. The requirement for WAP user interface in KEWAP system was to facilitate WAP access to any part of the data. The UI is created on-demand and it is completely dynamical following the structure and the contents of the data. Because of display size limitations in WAP devices (cf. Fig. 33), the data was fragmented into very small pieces.
Fig. 33. WAP user interface. The user navigates deeper and deeper in the hierarchy until he reaches the piece of information he is looking for. The other option is to use the search features. Search features are described in 5.2.9. Fig. 34 describes the navigation in the spare part catalogue. Every box in the figure corresponds to a WAP screen (i.e., a WML card). The whole user interface navigation is presented in detail in Appendix C.
68
PROTOTYPE APPLICATIONS
SPARE PART CATALOGUE C
Browse parts Search part information
BROWSE PARTS
DRIVE SYSTEMS
SELECT PART GROUP:
SELECT SUB-GROUP:
Doors and facings Machine Room Equipment Shaft Equipment Car Equipment ...
Thyristors Transistors Other drive system parts Drive system PC-boards
SYSTEM BOARDS ABC200/300 (ABC123) YYY333 ZZZ444
Name: BOARD Product code: ABC200/300 Other identification: ABC123 Number for SC use: 12345 Net weight (kg): 1 Part information: ABC200 Material no: 1234567
SEARCH PART INFORMATION: Give material no: [ABC12345] Submit
INFORMATION FOR MATERIAL NO: ABC12345 Name: BOARD Product code: ABD123/123 Other identification: ABC-111 Number for SC use: 123456 Net weight (kg): 1 Part information: ABC222
Fig. 34. WAP UI Navigation : Spare part catalogue. 5.2.4
KEWAP architecture
Most KEWAP UI pages are generated on-demand with XSLT transformations. There are few static pages, which are written in target markup language (WML or HTML). Fig. 35 describes the KEWAP control flow in the transformation case: 1. Web or WAP browser initiates the transaction with a HTTP request to a KEWAP URL. 2. RPX Application first authenticates the request using HTTP basic authentication. 3. RPX servlet “show” is invoked. Show uses the URL link map system to select the servlet it will forward the request. Other parameters, such as XSL file name are added to the forwarded request, on basis of the information in the link map definition. 4. RPX servlet “trans” is invoked with state data, XML content, and XSL file name as parameters. 5. Class XSLTransform executes the XSLT Transform with the given XML content and XSL file.
69
PROTOTYPE APPLICATIONS
RPX Application 'kewap'
HTTP Request with instance data
RPX Servlet 'show'
Link Map Handler
Forward request to servlet
Authenticate
Select servlet
Cache XML / XSL files
WML / HTML Browser
Select XSL RPX Servlet 'trans'
WML / HTML page
Generate or select data
Link Map XML Data
XSLTransform Transform Data
XML Data (spare parts / service manual) XSL XSL KEWAP XSL Style Sheets
Kewap user interface definitions for WML and HTML browsers
Fig. 35. KEWAP system architecture. KEWAP uses the URL link map system defined in chapter 4.6.3. Link map allows the use of named links in the user interface definition files. The link map definition file is shown in Appendix D. The file consists of two maps, one for HTML UI and one for WML UI. 5.2.5
KEWAP URLs
The HTTP request carries the instance data so the server side of the application is stateless. Because HTTP session is optional in WAP, it is not implemented in all phones and gateways. Therefore one should avoid using HTTP session header. There are some other benefits of having the server-side of the application stateless: pages can be bookmarked and cached more easily in different stages. A typical KEWAP URL with instance data is shown in Fig. 36. Table 7 explains in detail the fields in the KEWAP URL. host + port
app + ext
servlet
operation
element id
data id
http://localhost:2245/kewap.wml/show?op=Table&id=fault_log&data=data\siteref\eline.xml Protocol
Fig. 36. A KEWAP URL with instance data.
URL Query String
70
PROTOTYPE APPLICATIONS
Table 7. Fields in KEWAP URL. Field
Explanation
Possible values
Host + port
Specifies the host and port of the KEWAP server
Localhost:2245
App
Application name
KEWAP
Ext
Application extension
“wml”, “html”
Servlet
Servlet name
“show”, “trans”, “file”, etc.
Operation
Operation to perform
“table”, etc.
Element id
Id of the target element
Value of ID attribute in the XML data
Data id
Id to the data unit, e.g. a file
A file name or another type of ID.
5.2.6
XML content
All content in KEWAP system is stored in XML master documents, from which it is transformed to presentation languages. In order to fragment the data successfully to differently sized terminals, the structure of the data must be carefully designed. The first observation in the service manual paper documents was the amount of different structures. Documents contained tables of every size and purpose, appearing at many levels in the documents. What was needed, was a general purpose DTD, which would allow quite a bit flexibility. The DTD constructed for KEWAP is shown in Listing 12. Two levels of headings ( and ) were used for all the document types. For the actual data content three main data structures were used: tables (), ordered lists () and paragraphs (). Fig. 37 displays an example of the XML data as shown in Microsoft XML Notepad. XML Notepad shows the document structure in a more graphical style. Many elements have a required parameter id. The requirement for the id is that it is unambiguous within an XML document. This requirement is expressed by the ID – keyword in the DTD.
PROTOTYPE APPLICATIONS
Listing 12. KEWAP Master DTD.
71
PROTOTYPE APPLICATIONS
72
Fig. 37. An example of ASG XML data in KEWAP. 5.2.7
XSLT transformations in KEWAP
KEWAP uses Oracle XSLT, which is XSLT 1.0 compatible, to transform XML data into user interface pages. The user interface for each device type is defined in XSL stylesheets.
73
PROTOTYPE APPLICATIONS
The XSL stylesheets used by KEWAP are summarized in Table 8. There are two groupings of the stylesheets. Those outputting HTML in contrast to WML are shown on a darker background. The other grouping is based on the document type (ASG, Spare parts) that they apply to. There are only 4 document type specific stylesheets, while all the others are generic. Table 8. XSL stylesheets in KEWAP. XSL stylesheet
Explanation
Output
Divisions_wml.xsl
Main view
WML
Search_wml.xsl
Search results
WML
General_wml.xsl
General rules used by many of WML XSLs
WML
Table_wml.xsl
Table view
WML
Document_html.xsl
Document view, shows the whole XML document on one page
HTML
Fraction_html.xsl
Fraction view. Shows an element of specific id on a page.
HTML
General_html.xsl
General rules used by many of HTML XSLs.
HTML
Search_html.xsl
Search results
HTML
modules_wml.xsl
Shows the main ASG modules
WML
Manuals_wml.xsl
Shows manuals inside an ASG module
WML
modules_html.xsl
Shows all ASG modules and manuals
Asg\
Asg\
HTML
Sparecat\ groups_html.xsl
HTML Shows spare parts catalogue groups
The XSLT stylesheets in KEWAP use mostly data-driven Push mode (cf. 4.7.1). This is because most of the structures in the input documents can occur at any heading level. An example of such structure is , which can appear after or . Multiple s can exist under the same parent. Another example of such element is , which can exist on even more levels. Listing 13 demonstrates the rules used in transforming tables to HTML.
PROTOTYPE APPLICATIONS
74
Listing 13. Example of push type of template rules used in KEWAP. (From general_html.xsl) | |
5.2.8
Navigating in the XML data
The WAP UI user interface in KEWAP requires navigating into the data because of screen size limitations. The content is fragmented much in the manner of Section header outlining described in chapter 2.8.2. The contents of each section is elided from the document and the section header is converted into a hypertext link which, when selected, loads the elided content into the browser. We have used the to-level outlining approach, where all content in the current level is shown, but content below this level is elided from the page and hyperlinks to the subsections are added. Current state of the navigation is handled by data and id – URL parameters in every link. This is sufficient information, because of the requirement that id’s are unambiguous within a data object. The parameters are parsed from the URL and transmitted to the XSL style sheets with XSL’s method of passing parameters to style sheets. The method is described in chapter 4.7.1.
PROTOTYPE APPLICATIONS
75
For example, the KEWAP query identified by the URL: http://localhost:2245/KEWAP.wml/show?op=Table&id=fault_log&data=data \siteref\eline.xml
generates the WML source by using a XSLT transformation identified by “Table”, using data identified by “data\siteref\eline.xml“ and element with the id “fault_log”. The generated WML code is shown in Listing 14, which is viewed in a WAP browser as shown in Fig. 38. This page is actually an index to a table with 2 rows. From the table, only those columns marked with index attribute, are shown in the user interface as links to the row entry. The links are otherwise identical to the one shown above, but they include parameter row to identify the row number. Listing 14. KEWAP page WML source. 1 Fault history 2 Clear fault history ------ Home
Fig. 38. A KEWAP page in WAP browser. 5.2.9
Searching
Few search features were build into KEWAP. These were: • Searching for spare parts
PROTOTYPE APPLICATIONS
76
• Searching for parameters in Site Reference cards • Searching for fault codes in Site Reference cards At closer inspection, all three searches concentrate on finding and displaying the right rows in certain tables in the XML data. Simple keyword search was implemented to both user interfaces. It searches for table rows which contain the search string as a substring of an entry. The screenshots for Web search are shown in Fig. 39 and Fig. 40 while the WAP counterpart is presented in Fig. 41.
Fig. 39. Searching and browsing spare parts in Web UI.
Fig. 40. Displaying the search results in Web UI.
PROTOTYPE APPLICATIONS
77
Fig. 41. Searching spare parts in WAP UI. Searches were implemented in XSL files search_wml.xsl and search_html.xsl by using XPath function contains [68] to find elements containing the search substring and whose parent element has a certain id:
These rows with corresponding table headers are then displayed by using transformation rules in general_wml.xsl and general_html.xsl. 5.2.10 Analysis of KEWAP service manual KEWAP service manual was a real-life test of the WSRP framework. It proved that quite complex applications can be built with only little java programming. Another lesson learned was that the current WAP devices are too small, both in memory and screen sizes, to be used in a professional information delivery application. But one has to remember that they are the first generation products. Service manual uses on-demand XSL transformations on the server, which are quite laborious. Since KEWAP was a prototype system, efficiency was not a great concern. Upgraded to a production system, with possible hundreds of simultaneous users, KEWAP would profit of the cache schemes presented in 4.7.4. As most of the content presented to the user is static, caching would be efficient and easy to implement.
CONCLUSIONS
78
6 CONCLUSIONS Of the research problem We are witnessing a growing number of new devices capable of retrieving information from the Internet. Wireless Application Protocol-capable GSM mobile phones are already on the market. There is also an intense activity regarding the integration of Web technology with digital television. Compared to current Web browsers, these devices possess different characteristics in terms of what technologies they support and the types of content they are able to present to the user. Content providers and application developers are facing new challenges as they opt for publishing for as many device platforms as possible. Simultaneously the focus of Internet publishing is shifting from content delivery to two-way content manipulation. The content provider operates on content objects and users’ selections affect what is presented to the user. The objective of this thesis was therefore to design a model for developing interactive applications targeted at multiple platforms for use with a browser. Special focus was placed on Wireless Application Protocol (WAP) and the World Wide Web (WWW). The work was based on Remtec Systems’ RPX Platform. The first part of the thesis concentrated on an evaluation of current standards in Internet publishing and programming. Requirements for a framework were derived and the framework was implemented in the thesis. The common framework makes the creation of new applications easier and faster. Using Extensible Markup Language (XML) as the master document language and transforming it to presentation languages makes it easier to maintain and update data. XML also facilitates database-like data access without a connection to a database. Searches and the creation of presentational pages with constraints are easy with the XML/XSL combination. We have presented schemes for the caching of XML and XSL data in different stages. Without a cache, ondemand transformations can be too laborious on the content server. The thesis identifies the possibilities for a WAP application infrastructure. We have demonstrated how the application host can be the WAP server in practice. On the other hand a WWW server can act as the application host while the WAP server is used as a proxy. While XSL has met some criticism, it proved to be very useful as a transformation language in multi-terminal applications. Declarative languages such as CSS are not powerful enough for real-life transformations and on many occasions programming the DOM is too time consuming. Although XSL is a half-declarative language, enabling it to be written by non-programmers, it nevertheless possesses very powerful features.
CONCLUSIONS
79
Of the prototype applications Two prototype applications were developed using the framework developed in the thesis. Both applications allowed access with WAP and Web clients and presented their content accordingly. The results show that it is possible to develop interactive multidevice applications using the framework. It is also apparent that the framework offers a substantially high level of modularity, facilitating the maintenance of application and the content. When compared to programming a similar application from scratch, the use of the framework results in a much smaller amount of code. A great deal of programming effort can be avoided using the form, table, and transformation facilities offered by the framework. This shifts the focus from program-driven to data-driven application development. The presentation is consequently, to a certain extent, separated from application logic and data access. Of WAP standards The WAP Forum’s approach is a specific wireless Web that would co-exist side by side with the current Web. This is partly the result of financial pressure from the telephone operators who would prefer to see WAP as a closed system administered by them, and partly due to the current mobile clients’limitations. The power of the Web, as it exists today, is that it is an open system. Anyone can publish content and the viewer decides what is relevant and what is not. If I publish relevant information on the Web, people will, in the end, find and read it, perhaps adding links at their own relevant sites. In that way, the Web is Darwinian: the more relevant information your site has, the more it gets linked to. Portals and search engines can help viewers to locate content, but no one is limited to a certain portal. Presently the WAP and Web worlds are incompatible. Authors cannot be realistically expected to publish information in more than one format. WAP may only be a shortterm solution capable of specific tasks and tailored solutions, not a widespread success such as the Web. It is my belief that XHTML- or XML-enabled mobile browsers, capable of displaying most of the Web’s content, will prove to be the killer application of mobile data communication. There will however still be a need for tailoring special-purpose software for different devices according to their capabilities.
6.1
Future development
There remain many possibilities for future work. An interesting question, not yet answered: Can we dynamically adjust the content to device display size and other characteristics. Even if CC/PP or a similar system is standardized and all Web clients are using it, there still remains the problem of adapting the content optimally for each device. The URL link map presented in this thesis is a system for describing and using metadata about resources or links to resources. Alternatively, W3C’s RDF could be used as the metadata description scheme. As more RDF tools are developed, this could help in management of the URL link map.
CONCLUSIONS
80
If performance is an issue, then on-demand XSL transformations can be too laborious if performed by the server. In many applications, caching cannot be used very effectively because of dynamic content. Consequently, most of the load could be taken away from the server by introducing special transformation proxies. These proxies could be multiplied, resulting in a very scalable solution. Adapting richer multimedia content, such as images and video, did not fall within the scope of this thesis, and presents another difficult problem. Reducing resolution and color-depth of pictures according to the browser type could be implemented in RPX Platform.
81
REFERENCES
REFERENCES The URLs included in the references were checked for validity on March 1th, 2000. [1]
Smith, M. and King, M., “GSM Hits G-Force@Geneva,”GSMWorld Press Release, 10 October 1999. http://www.gsmworld.com/news/press_releases_19.html
[2]
[3]
The Economist, “The future of computing; After the PC,”The Economist, 12 September 1998. WAP Forum, “WAP White Paper,” June 1999. http://www.wapforum.org/what/whitepapers.htm
[4]
Jones, M., et al., “Improving Web interaction on small displays,”Computer Networks, Vol. 31, 1999, pp.1129-1137. http://www8.org/w8-papers/1b-multimedia/ improving/improving.html
[5]
McGrath, S., XML By Example, Upper Saddle River, NJ, Prentice Hall, 1998.
[6]
Connolly, D., Khare, R., and Rifkin, A., “The Evolution of Web Documents: The Ascent of XML,”World Wide Web Journal Special Issue on XML, Vol. 2, Num. 4, Fall 1997, pp 119-128. http://www.cs.caltech.edu/~adam/papers/xml/ascent-of-xml.html
[7]
Lie, H., Saarela, J., “Multipurpose Web Publishing Using HTML, XML and CSS,”Communications of the ACM, Vol. 42, Num 10, October 1999, pp. 95101.
[8]
Raggett, D., et al., “HTML 4.0 Specification,”W3C Recommendation, April 1998. http://www.w3.org/TR/REC-html40/
[9]
Pemberton, S., et al., “XHTML™ 1.0: The Extensible HyperText Markup Language, A Reformulation of HTML 4.0 in XML 1.0,”W3C Recommendation, January 2000. http://www.w3.org/TR/xhtml1
[10]
Richmond, A., “Introduction to HTML.” http://stars.com/Authoring/HTML/Intro/
[11]
Bos, B., et al., “Cascading Style Sheets, level 2 CSS2 Specification,”W3C Recommendation, May 1998. http://www.w3.org/TR/REC-CSS2/
[12]
Korpela, J., “Lurching Toward Babel: HTML, CSS, and XML,”Computer, July 1998. ftp://ftp.intraware.com/pub/cybrary/web_tech/lurching.pdf
[13]
Bosak, J., “XML, Java, and the future of the Web,”Sun Microsystems, October 1997. http://metalab.unc.edu/pub/sun-info/standards/xml/why/xmlapps.html
82
REFERENCES
[14]
Leventhal, M., Lewis, D., and Fuchs, M., Designing XML Internet Applications, Upper Saddle River, NJ, Prentice Hall, 1998, 582 pp.
[15]
Bray, T., et al., “Extensible Markup Language (XML) 1.0,”W3C Recommendation, February 1998. http://www.w3.org/TR/1998/REC-xml-19980210
[16]
Walsh, N., “A Technical Introduction to XML, Revision 1.1,”February 1998. http://www.nwalsh.com/docs/articles/xml/index.html
[17]
Wood, L., “Document Object Model (DOM),”W3C Activity Statement, October 1999. http://www.w3.org/DOM/Activity
[18]
Adler, S., et al., "Extensible Stylesheet Language (XSL) Version 1.0 ," W3C Working Draft, January 2000. http://www.w3.org/TR/xsl
[19]
Harold, E.R., XML Bible, IDG Books Worldwide, July 1999, Chapter 14. http://metalab.unc.edu/xml/books/bible/updates/14.html
[20]
Leventhal, M., “XSL Considered Harmful,”May 1999. http://www.xml.com/xml/pub/1999/05/xsl/xslconsidered_1.html
[21]
Clark, J., “XSL Transformations (XSLT) Version 1.0,”W3C Recommendation, 16 November 1999. http://www.w3.org/TR/xslt
[22]
Adler, S., “Extensible Stylesheet Language (XSL) Version 1.0,”W3C Working Draft, 12 January 2000. http://www.w3.org/TR/xsl/
[23]
Saarela, J, “The Role of Metadata in Electronic Publishing, “ Acta Polytechnica Scandinavica, Mathematics and Computing series No. 102., 1999.
[24]
Bos, B., “CSS and XSL: which should I use?,”November 1999. http://www.w3.org/Style/CSS-vs-XSL
[25]
Lie, H.W., “Formatting Objects considered harmful,”April 1999, http://www.operasoftware.com/people/howcome/1999/foch.html
[26]
Clark, J. and DeRose, S., “XML Path Language (XPath) Version 1.0,”W3C Recommendation,16 November 1999. http://www.w3.org/TR/xpath
[27]
WAP Forum, “Wireless Markup Language Specification Version 1.1,”16 June 1999. http://www.wapforum.org/what/technical.htm
[28]
Berners-Lee, T., et al., “Uniform Resource Identifiers (URI): Generic Syntax,” RFC 2396, August 1998. http://www.ics.uci.edu/pub/ietf/uri/rfc2396.txt
83
REFERENCES
[29]
Nokia, “WML Reference Version 1.1,”WAP SDK Documentation, September 1999. http://www.forum.nokia.com
[30]
WAP Forum, “Wireless Application Environment Overview Version 1.1,”16 June 1999. http://www.wapforum.org/what/technical.htm
[31]
nd
ECMA, “ECMAScript Language Specification 2 edition,”ECMA Standard 262, August 1998. ftp://ftp.ecma.ch/ECMA-ST/E262-PDF.PDF
[32]
WAP Forum, “WMLScript Language Specification Version 1.1,”November 1999. http://www.wapforum.org/what/technical.htm
[33]
King, P. and Hyland, T., “Handheld Device Markup Language Specification,” W3C Note, May 1997. http://www.w3.org/TR/NOTE-Submission-HDML-spec.html
[34]
Unwired Planet, “Unwired Planet Position Paper for W3C Workshop on Mobile Access,”1998. http://sh.w3.mag.keio.ac.jp/Mobile/1998/Workshop/Papers/UP
[35]
Khare, R., “W* Effect Considered Harmful,”IEEE Internet Computing, Vol.3, No. 4, July/August 1999, pp. 89-91. http://www.ics.uci.edu/~rohit/IEEE-L7-WAP.html
[36]
Altheim, M., et al., “Modularization of XHTML,”W3C Working draft, 5 January 2000. http://www.w3.org/TR/xhtml-modularization/
[37]
Richmond, R., “Introduction to XHTML, with eXamples,”EncycloZine, 1999. http://www.encyclozine.com/WD/XHTML
[38]
W3C, “World Wide Web Consortium and Wireless Application Protocol Forum Establish Formal Liaison Relationship,”8 December 1999. http://www.w3.org/1999/12/W3C-WAP-CG-pr.html.en
[39]
Ishikawa, M., et al., “XHTML™ Basic,”W3C Working Draft, 10 February 1999. http://www.w3.org/TR/xhtml-basic
[40]
Honkala, M, Personalisation Through Observations of Browsing Behaviour, master's thesis, Helsinki University of Technology, 1997. http://www.hut.fi/~joutsen/di.ps
[41]
Mohan, R., et al., “Adapting Content to Client Resource in the Internet,” IEEE, 1999.
[42]
Fox, A. and Brewer, E.A., “Reducing WWW latency and bandwidth th requirements by real-time distillation,”Proc. Of the 5 International WWW Conference, 1996.
84
REFERENCES
[43]
Fox, A., et al., “Adapting to network and client variation using active proxies: lessons and perspectives,”IEEE Personal Communications.
[44]
Bickmore, T. W. and Schilit, B. N., “Digestor: Device-independent Access to th the World Wide Web,”Proc. of 6 International World Wide Web Conference, April 1997. http://decweb.ethz.ch/WWW6/Technical/Paper177/Paper177.html
[45]
Spyglass, “Prism Version 3.0.” http://www.spyglass.com/
[46]
AvantGo, “AvantGo Version 3.0.” http://avantgo.com/
[47]
Hori, M., et al., “Annotation of Web Content for Transcoding,”W3C Note, July 1999. http://www.w3.org/TR/annot/
[48]
Mohan, R., et al., ”Adapting Content to Client Resources in the Internet,” Proc. of IEEE International Conference on Multimedia Computing and Systems, June 1999. http://dlib.computer.org/conferen/icmcs/0253/pdf/02539302.pdf
[49]
Bosak, J., “Media-Independent Publishing: Four Myths about XML,”IEEE Computer, Vol. 31, No. 10, October 1998, pp. 120-122. http://metalab.unc.edu/pub/sun-info/standards/ xml/why/4myths.htm
[50]
Universal Interface Technologies, User Interface Markup Language (UIML) Language Version 2.0 Draft Specification, August 1999. http://www.uiml.org/specs/UIML2/
[51]
Abrams, M., et al., “UIML: an appliance-independent XML user interface language,”Computer Networks,Vol.31, No.11-16, 1999, pp. 1695-1708.
[52]
Fielding, R., et al., “Hypertext Transfer Protocol -- HTTP/1.1,”IETF RFC 2068. http://andrew2.andrew.cmu.edu/rfc/rfc2068.html
[53]
Berners-Lee, T., “Universal Resource Identifiers in WWW,”IETF RFC 1630, June 1994. http://www.ics.uci.edu/pub/ietf/uri/rfc1630.txt
[54]
Berners-Lee, T., et al., “Uniform Resource Locators (URL),”IETF RFC 1738. http://www.ics.uci.edu/pub/ietf/uri/rfc1738.txt
[55]
Fielding, R. and Irvine U.C., “Relative Uniform Resource Locators,”IETF RFC 1808. http://www.ics.uci.edu/pub/ietf/uri/rfc1808.txt
[56]
Davidson, J. D. and Coward, D., “Servlet Specification Version 2.2,”Sun Microsystems, December 1999. http://java.sun.com/products/servlet/2.2/
85
REFERENCES
[57]
Brabrand, C., et al., “A Runtime System for Interactive Web Services,”March 1999. http://www8.org/w8-papers/3b-web-doc/runtime/runtime.html
[58]
Reynolds, F., et al., “Composite Capability/Preference Profiles (CC/PP),” W3C Note, July 1999. http://www.w3.org/TR/NOTE-CCPP/
[59]
Lassila, O. and Swick, R., “Resource Description Framework (RDF) Model and Syntax Specification,”W3C Recommendation, 22 February 1999. http://www.w3.org/TR/REC-rdf-syntax
[60]
WAPForum, “User Agent Profile Specification,”November 1999. http://www.wapforum.org/what/technical.htm
[61]
Nokia, “Programmers Guide, Nokia WAP Server API 1.0,”November 1999. http://www.nokia.com/
[62]
Fielding R.,et al. “Hypertext Transfer Protocol -- HTTP/1.1,”IETF RFC 2068, January 1997. http://andrew2.andrew.cmu.edu/rfc/rfc2068.htm
[63]
Boyer, J. Bray, T., and Gordon, M., “Extensible Forms Description Language (XFDL) 4.0,”W3C Note, September 1998. http://www.w3.org/TR/NOTE-XFDL
[64]
McKenzie, K. F., “XFA-Template Version 1.0,”W3C Submission, April 1999. http://www.w3.org/1999/05/XFA/xfa-template.html
[65]
Anderson,M., “Browser Support for Signing and Submitting XML Forms,”. http://www.w3.org/DSig/signed-XML99/pp/FSTC-XMLSigning.html
[66]
W3C, “Document Object Model (DOM) Level 2 Specification Version 1.0,” W3C Candidate Recommendation, 10 December 1999. http://www.w3.org/TR/DOM-Level-2/
[67]
[68]
Kostiainen, K., “Building WWW-applications with XML Forms,”XML Finland Conference Proc., 23 September 1999. Miloslav, N., “XPath Tutorial,”Zvon http://zvon.vscht.cz/HTMLonly/XPathTutorial/General/examples.html
APPENDIX A. EXAMPLES OF RESOLVING RELATIVE URLS
APPENDICES Appendix A. Examples of resolving relative URLs Table 9. Resolving relative URLs with base URL: http://a/b/c/d;p?q#f. [55] Relative URL
Resolved alsolute URL
g:h
g
./g
g/
/g
//g
?y
g?y
g?y/./x
#s
g#s
g#s/./x
g?y#s
;x
g;x
g;x?y#s
.
./
..
../
../g
../..
../../
../../g
86
APPENDIX B. RPX CORE INTERFACES
Appendix B. RPX core interfaces Table 10. Package remtec.rpx.base Interface Summary
RPX
The base interface of all RPX server objects. The RPXBase, RPXData and RPXFile classes provide convenient implementations of this interface.
RPXAuthorization
Interface to get client authentication information. Usually the information (username and password) is provided as BASE64 encoded cleartext. This interface may be implemented on the RPXRequest object.
RPXCertificates
Interface to get client and server certificates. This interface may be implemented on the RPXRequest object.
RPXHeaders
Interface to set header fields of the response. This interface may be implemented on the RPXResponse object.
RPXRequest
The request interface. This interface is used to get request data from the client.
RPXResponse
The response interface. This interface is used to send response data to the client.
RPXSessionFactory
Optional interface for RPX server objects. If the server object implements this interface then when a new session is initiated this interface is used to construct the session container hashtable.
RPXVolatile
Implement this interface on the RPX server object to mark the content volatile.
Class Summary RPXConnect
Part of the internal implementation. This module implements the connection to the server.
Version
Exception Summary
RPXError
A exception wrapper class. Use this Exception class to re-throw exceptions of other types. The purpose is to catch exceptions at lower levels and raise exceptions of higher type to upper levels.
RPXErrorNotFound
A requested resource was not found.
87
APPENDIX B. RPX CORE INTERFACES
Exception Summary
RPXErrorUnauthori zed
The current access privileges do not allow access to a requested resource. This error message is used to indicate to the client that it needs to send access credentials with the next request. The error message contains may specify the name of the resource or "realm".
RPXException
Send a error message to the client. Optionally the error message may specify a HTTP status code.
88
89
APPENDIX C. KEWAP WAP UI NAVIGATION
Appendix C. KEWAP WAP UI navigation This appendix describes the navigational model of the UI. The navigation starts by selecting a product. Product selection is valid for the whole session. The boxes in the figures in this appendix correspond to a WML cards. The letters A-D in Fig. 42 indicate the available branches and are discussed below. E-LINE Site Reference Card SELECT SITE REFERENCE CARD E-LINE V3F-20 ....
SELECT PRODUCT PRODUCT A PRODUCT B ...
Buttons Switches Parameters Fault Codes LEDs on PC boards LEDs on drive boards User interface LEDs
A
B
SELECT DOCUMENT SPARE PART CATALOGUE
Site Reference Cards Spare Part Catalogue ASG Manuals LCE
Browse parts Search part information
C
ASG MANUALS SELECT SERVICE MODULE Control Panel Engine Room Shaft General maintenance
D
Fig. 42. WAP UI Navigation : Main. Fig. 43 and Fig. 44 describe the navigation in the “A” and “B” branches, which are Site Reference Cards. A
Button: Menu Action: Push Menu button to select the menu. Note: d is for drive faults.
BUTTONS
E-LINE Site Reference Card
Menu Select/Accept Arrow buttons Car call Up call down call ...
Buttons Switches Parameters Fault Codes LEDs on PC boards LEDs on drive boards User interface LEDs
SWITCHES Switch: OSG test Inhibit door opening Inhibit landing calls OSG test Buffer test
Action: used when OSG has remote control
LEDS ON PC BOARDS SELECT PC BOARD: ABC001 ABC002 ABC003 ...
Fig. 43. WAP UI Navigation : A, Site reference.
SELECT LED ON ABC001: LED "SERVICE (red)": SERVICE (red) OK (green)
ON: The board is broken OFF: The board is OK. Notes: -
90
APPENDIX C. KEWAP WAP UI NAVIGATION
FAULT CODE 0001
SELECT FAULT CODE:
Description: Drive time supervision elapsed
0001 0004 0007 0008 ...
Possible reason: The car position information...
SEARCH FOR FAULT CODE:
FAULT CODES Search List fault codes
[0012]
Fault code: 0012 Description: Start failed. Possible reason: The elevator has not...
Submit
E-LINE Site Reference Card
B
Main floor (101) Default: 1 Min: ** Max: ** Values: Floor number Description: Select the main entrance...
Buttons Switches Parameters Fault Codes LEDs on PC boards LEDs on drive boards User interface LEDs
Parameter 102 SEARCH FOR PARAMETER:
Parameter group: Commencing (1) Func: Adjustment (02) Default: ** Min: ** Max: ** Values: % of capacity Description: Displays...
Main code: [1] Sub code: [02]
SELECT PARAMETER GROUP: PARAMETERS Search List parameters
Submit
E - Fault Log d - Drive faults 1 - Elevator parameters 2 - Drive parameters ...
SELECT PARAMETER SUBGROUP FOR Elevator parameters: Compulsory Door Parking Calls Group Fire ....
Compulsory parameters functions: 1. Main floor 2. Control mode
Fig. 44. WAP UI Navigation : B, Site reference. The “C” branch, Spare Part Cataloque, is shown in Fig. 45. Fig. 46 describes the “D” branch, ASG Manuals navigation.
SPARE PART CATALOGUE C
Browse parts Search part information
BROWSE PARTS
DRIVE SYSTEMS
SELECT PART GROUP:
SELECT SUB-GROUP:
Doors and facings Machine Room Equipment Shaft Equipment Car Equipment ...
Thyristors Transistors Other drive system parts Drive system PC-boards
SEARCH PART INFORMATION: Give material no: [ABC12345] Submit
INFORMATION FOR MATERIAL NO: ABC12345 Name: BOARD Product code: ABD123/123 Other identification: ABC-111 Number for SC use: 123456 Net weight (kg): 1 Part information: ABC222
Fig. 45. WAP UI Navigation : C, Spare part catalogue.
SYSTEM BOARDS ABC200/300 (ABC123) YYY333 ZZZ444
Name: BOARD Product code: ABC200/300 Other identification: ABC123 Number for SC use: 12345 Net weight (kg): 1 Part information: ABC200 Material no: 1234567
91
APPENDIX C. KEWAP WAP UI NAVIGATION
ASG MANUALS SELECT SERVICE MODULE: D Control Panel Engine Room Shaft General maintenance
ASG-1.2.3: Drive Units SELECT ASG MANUAL: ASG-1.2.3: Drive Units ASG-n.n: ABC34 Controllers ...
Safety Maintenance Guidelines References ...
SELECT AREA: General functioning Wiring terminals Contactors Tachometer
WIRING TERMINALS 1. Check: Check that the electric... Action: Tighten 2. Check: Check that...
Fig. 46. WAP UI Navigation : D, ASG Manuals.
SAFETY Follow all safety rules...
REFERENCES ASW 1.2.4 - Fitting Instructions AR 10 20 001 - Spare parts
APPENDIX D. URL LINK MAP DEFINITION IN KEWAP
Appendix D. URL link map definition in KEWAP - - -
92
APPENDIX D. URL LINK MAP DEFINITION IN KEWAP
- - -
93
|