Resources
Transcoding Technology uses four types of resources to process documents. Below is a description of each resource and how Transcoding Technology uses it.
Preference profiles
Transcoding Technology uses preference profiles to represent the characteristics of devices and users, as well as a default user profile to represent organizational policies. Each profile tells Transcoding Technology how to treat documents that will be delivered to that device or for that user.
A preference profile can represent a particular type of device, such as an IBM WorkPad or a particular user or group of users. For example, on a device with a small screen, you might want to convert tables to lists to reduce horizontal scrolling. For a particular user, you might want to eliminate images altogether.
When Transcoding Technology processes a document, it selects a device profile and a user profile to apply to the document.
If the X-IBM-PVC-Device-Type field is present in the HTTP header, Transcoding Technology uses the device profile whose file name matches the value specified for that field. Otherwise Transcoding Technology uses the device profile whose user-agent value matches the value of the user-agent field in the HTTP header. If no matching profile is found, Transcoding Technology uses the default device profile.
User resources are not maintained through Transcoding Technology. However, other programs can pass information to Transcoding Technology specifying the use of a user profile. A user profile is selected for a request following these steps:
- If a value is specified for userAndSessionExtractor in etc/localConfig.prop, Transcoding Technology tries to execute the referenced implementation of the UserAndSessionExtractor interface to obtain user and session names and select the user profile that matches the user name.
- You can specify a field in the HTTP header to be used to select a user profile by setting the httpUserIdField value in etc/localConfig.prop. For example, if you specify httpUserIdField=X-UserField then Transcoding Technology would find the value of the X-UserField keyword in the HTTP header and select the user profile that matches that value.
- If the X-IBM-PVC-User field is present in the HTTP header, Transcoding Technology uses the user profile that matches the value specified for that field.
If none of these checks identifies a user profile, then Transcoding Technology does not use a specific user profile. If one of these methods is used to specify a user profile and the specified file is not found, Transcoding Technology does not try the other methods; it does not use a specific user profile. For example, if you specify httpUserIdField=myUserField but myUserField is not specified in the HTTP header, Transcoding Technology would not look for the X-IBM-PVC-User field.
If more than one device preference profile matches the incoming request, it is impossible to predict which of the matching profiles would be selected. For example, if you create two device profiles with expressions that could match the same user-agent value, either one could be selected for a request that specifies that user-agent value. Be sure to specify unique values for any new profiles you create.
Each profile contains values for the preferences that are important to the device that the profile represents. If a preference is not important to the device, it can be omitted so that a value can be chosen from a different profile. For most preferences, Transcoding Technology will check profiles for a value in this order:
- Specific user
- Specific device
- Default user
- Default device
If a value is not specified for a preference in one profile, Transcoding Technology will work down the list until it finds a value. The transcoding plugins that will be applied to the document are selected based on the combined profiles.
Transcoding Technology provides profiles for several common pervasive devices. There are default profiles to be used if none of the existing profiles matches the device being used.
In addition to determining which transcoding plugins will be used, a profile can be used to select a stylesheet or annotator. You can also specify parameters to be used by stylesheets that accept parameters.
XML stylesheets
When Transcoding Technology processes documents composed in Extensible Markup Language (XML), it uses XSL stylesheets to convert these documents. XML documents can be converted to any markup language, including:
- A different dialect of XML, as defined by an output DTD (document type definition)
- HTML, for display on a Web browser
- WML (wireless markup language), for display on devices using WAP (wireless access protocol).
Each stylesheet is represented by a stylesheet selector, which contains conditions for the selection of the stylesheet for use by Transcoding Technology.
A stylesheet is selected to process a document based on the values of one or more fields in the HTTP header, including the URL, and on the name or URL of the input DTD. A stylesheet can also be selected based on criteria that match a preference profile.
Some stylesheets accept parameters that affect how they operate on documents. A stylesheet that accepts parameters can retrieve values for the parameters from:
- The HTTP Header of the request
- Values specified on the Stylesheet parameters dialog
- Values specified in a preference profile
Stylesheets that support internationalization can use a translation file to retrieve strings to be substituted for words in a document.
For more details about stylesheets, visit the World Wide Web Consortium page about XSL stylesheets.
Stylesheets can also be specified by a portlet.
Annotators
You might want to present only the subset of a Web page that is most pertinent for your mobile users. For example, there might be one key piece of information, such as a stock price or weather forecast, that you want to present without all the graphics and other information on the page. Use an annotator to specify which portions of a Web page to include or discard when the page is transcoded.
Each annotator is based on knowledge of the structure of HTML or other tags used in a Web page. An annotator typically is applied to one Web page or a group of pages with similar tagging.
Each annotator is represented by an annotator selector, which contains conditions for the selection of the annotator for use by Transcoding Technology.
An annotator is selected to process a document based on the values of one or more fields in the HTTP header, including the URL. An annotator can also be selected based on criteria that match a preference profile.
You can modify the selector if you wish to change the conditions under which the annotator will be used by Transcoding Technology. These conditions can include the requested URL and the device type.
Annotators can also be specified by a portlet.
Transcoding plugins
A transcoding plugin is a program that modifies the content of a document. Transcoding plugins are selected to process a document based on conditions specified when the transcoding plugin is created.
The transcoding plugins included with Transcoding Technology can be divided into two types:
- Text editors, which translate text from one tagging language to another or modify the tagging within a language. Text editors make changes such as changing tables to lists and changing paragraph tags to line breaks.
- Image editors, which change images from one type to another (JPEG to GIF or WBMP) or change the screen size, file size, or other characteristics of images contained within the document being processed. The image engine transcodes common image formats JPEG and GIF to perform:
- format conversion
- scaling
- conversion to grayscale
- quality reduction or color depth reduction
Several transcoding plugins are provided with Transcoding Technology, and you can obtain or develop others.
Transcoding plugin Function Image transcoding plugin Modifies size and quality of GIF, JPEG, WBMP, and PNG images Text transcoder Modifies HTML or XML documents Fragmentation transcoding plugin Fragments documents into pieces that can be accepted by the receiving device HTML DOM Generator transcoding plugin Creates a Document Object Model (DOM) from HTML documents. This enables you to apply clippers to the DOM to select portions of a document for presentation to users. This transcoding plugin is not registered; register it using XML Configuration if you want to apply clippers to documents that are transcoded into HTML.
See also