User Agent Profile

User Agent Profile (UAprof) ist eine im Rahmen der WAP-2.0-Spezifikation durch das WAP-Forum definierte (und von der Open Mobile Alliance (OMA) weiterentwickelte) Beschreibung der Gerätefähigkeiten, speziell für Mobiltelefone.

Entstehung

Auslöser war die immer steigende Anzahl unterstützter Formate und Dienste der Mobilgeräte, womit das "Accept"-Feld im HTTP-Header immer größer und größer wurde. Dank UAprof muss ein Mobiltelefon im HTTP-Header nur noch einen URL mitschicken, und ein interessierter Server kann dort eine XML-Datei anfordern, in der alle Fähigkeiten des Gerätes, bzw. einzelner Clients (Enabler) beschrieben sind. Das Accept-Feld kann somit auf ein Minimum reduziert werden.

Aufbau

Eine genaue Beschreibung findet man im Anhang A der Spezifikation ab Seite 53. Hier folgt lediglich eine grobe Beschreibung, um einen groben Überblick zu bekommen.

Bei einer UAProf-Datei handelt es sich um eine XML-Datei, die nach dem CC/PP Schema (eine vokabulare Erweiterung des RDF zum Beschreiben von Fähigkeiten eines User-Agents) aufgebaut ist. Wie bei XML üblich, beginnt auch eine UAProf Datei mit dem Link auf das Schema, das benutzt wird:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:prf="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#"
xmlns:pss6="http://www.3gpp.org/profiles/PSS/ccppschema-PSS6#">

Später entstandene Schemata wie MMS und PSS6 werden angehängt.

Dann folgen die einzelnen Komponenten: HardwarePlatform, SoftwarePlatform, NetworkCharacteristics, BrowserUA, WapCharacteristics, PushCharacteristics, MmsCharacteristics, PssCommon, Streaming, ThreeGPFileFormat, PssMile usw. Der Aufbau ist immer gleich:

<?xml version="1.0"?>
<prf:component>
  <rdf:Description rdf:ID="NameDerKomponente">
    <rdf:type rdf:resource="http://www.standardisierungsgremium.org/link/auf/das/ccppschema-20001112#NameDerKomponente" />
    <prf:UnterstützteOptionen>
      <rdf:Bag>
        <rdf:li>Option1</rdf:li>
        <rdf:li>Option2</rdf:li>
      </rdf:Bag>
    </prf:UnterstützteOptionen>
    <prf:IrgendeinWert>a</prf:IrgendeinWert>
    <prf:Version>2.0</prf:Version>
    <prf:NochEinWert>65536</prf:NochEinWert>
    <prf:NochEineListe>
      <rdf:Bag>
        <rdf:li>Wert1</rdf:li>
        <rdf:li>Wert2</rdf:li>
        <rdf:li>Wert3</rdf:li>
      </rdf:Bag>
    </prf:NochEineListe>
  </rdf:Description>
</prf:component>

Beispiel

(Nokia N73)

Der HTTP-Header (Auszug):

Accept: text/javascript, text/ecmascript, application/x-javascript, text/html, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/css, multipart/mixed, text/vnd.wap.wml,
application/vnd.wap.wmlc, application/vnd.wap.wmlscriptc, application/java-archive, application/java, application/x-java-archive, text/vnd.sun.j2me.app-descriptor,
application/vnd.oma.drm.message, application/vnd.oma.drm.content, application/vnd.wap.mms-message, application/vnd.wap.sic, text/x-co-desc, application/vnd.oma.dd+xml,
* /*,text/x-hdml,image/mng,image/x-mng,video/mng,video/x-mng,image/bmp,text/html,text/vnd.wap.wmlscript,text/vnd.wap.wml
Accept-Charset: iso-8859-1, utf-8, iso-10646-ucs-2; q=0.6,*
Accept-Encoding: deflate, gzip
Accept-Language: de;q=1.0, en;q=0.5, fr;q=0.5, tr;q=0.5, it;q=0.5, nl;q=0.5
Host: de.wikipedia.org/wiki/UAprof
User-Agent: NokiaN73-1/2.0626.0.0.2 S60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0
X-Wap-Profile: "http://nds.nokia.com/uaprof/NN73-1r100.xml"

Übrigens: UAProf darf nicht mit dem User-Agent (vorletzte Zeile) verwechselt werden (was viele tun). User-Agent sagt lediglich aus, um welches Gerät es sich handelt, nicht aber was es kann.

<?xml version="1.0"?>
<!--                                                       -->
<!--    Dies ist eine Beispieldatei für die Wikipedia      -->
<!--       Ein Gerät dieser Art existiert nicht.           -->
<!--                                                       -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:prf="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#">
   <rdf:Description rdf:ID="Profile">
      <prf:component>
         <rdf:Description rdf:ID="HardwarePlatform">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#HardwarePlatform"/>
            <prf:BluetoothProfile>
               <rdf:Bag>
                  <rdf:li>Headset Profile</rdf:li>
                  <rdf:li>Handsfree Profile</rdf:li>
                  <rdf:li>Object Push Profile</rdf:li>
               </rdf:Bag>
            </prf:BluetoothProfile>
            <prf:BitsPerPixel>16</prf:BitsPerPixel>
            <prf:ColorCapable>Yes</prf:ColorCapable>
            <prf:CPU>Wacek</prf:CPU>
            <prf:ImageCapable>Yes</prf:ImageCapable>
            <prf:InputCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:InputCharSet>
            <prf:Keyboard>PhoneKeyPad</prf:Keyboard>
            <prf:Model>WikiPhone-1</prf:Model>
            <prf:NumberOfSoftKeys>2</prf:NumberOfSoftKeys>
            <prf:OutputCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:OutputCharSet>
            <prf:PixelAspectRatio>1x1</prf:PixelAspectRatio>
            <prf:PointingResolution>Pixel</prf:PointingResolution>
            <prf:ScreenSize>640x480</prf:ScreenSize>
            <prf:ScreenSizeChar>80x24</prf:ScreenSizeChar>
            <prf:StandardFontProportional>Yes</prf:StandardFontProportional>
            <prf:SoundOutputCapable>Yes</prf:SoundOutputCapable>
            <prf:TextInputCapable>Yes</prf:TextInputCapable>
            <prf:Vendor>Fantasy</prf:Vendor>
            <prf:VoiceInputCapable>Yes</prf:VoiceInputCapable>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="SoftwarePlatform">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#SoftwarePlatform"/>
            <prf:AcceptDownloadableSoftware>Yes</prf:AcceptDownloadableSoftware>
            <prf:CcppAccept>
               <rdf:Bag>
                  <rdf:li>application/java</rdf:li>
                  <rdf:li>application/vnd.wap.mms-message</rdf:li>
                  <rdf:li>application/vnd.wap.wbxml</rdf:li>
                  <rdf:li>application/vnd.wap.wmlc</rdf:li>
                  <rdf:li>application/vnd.wap.wmlscriptc</rdf:li>
                  <rdf:li>application/vnd.wap.xhtml+xml</rdf:li>
                  <rdf:li>application/xhtml+xml</rdf:li>
                  <rdf:li>audio/midi</rdf:li>
                  <rdf:li>image/gif</rdf:li>
                  <rdf:li>image/jpeg</rdf:li>
                  <rdf:li>image/jpg</rdf:li>
                  <rdf:li>image/vnd.wap.wbmp</rdf:li>
                  <rdf:li>multipart/mixed</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept>
            <prf:CcppAccept-Charset>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept-Charset>
            <prf:CcppAccept-Encoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </prf:CcppAccept-Encoding>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="NetworkCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#NetworkCharacteristics"/>
            <prf:SupportedBluetoothVersion>1.2</prf:SupportedBluetoothVersion>
            <prf:CurrentBearerService>TwoWayPacket</prf:CurrentBearerService>
            <prf:SecuritySupport>
               <rdf:Bag>
                  <rdf:li>SSL</rdf:li>
                  <rdf:li>TLS</rdf:li>
               </rdf:Bag>
            </prf:SecuritySupport>
            <prf:SupportedBearers>
               <rdf:Bag>
                  <rdf:li>GPRS</rdf:li>
               </rdf:Bag>
            </prf:SupportedBearers>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="BrowserUA">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#BrowserUA"/>
            <prf:BrowserName>WikiBrowser</prf:BrowserName>
            <prf:BrowserVersion>1.0</prf:BrowserVersion>
            <prf:FramesCapable>Yes</prf:FramesCapable>
            <prf:HtmlVersion>4.1</prf:HtmlVersion>
            <prf:TablesCapable>Yes</prf:TablesCapable>
            <prf:XhtmlVersion>2.0</prf:XhtmlVersion>
            <prf:XhtmlModules>
               <rdf:Bag>
                  <rdf:li>XHTML1-struct</rdf:li>
                  <rdf:li>xhtml-basic10</rdf:li>
               </rdf:Bag>
            </prf:XhtmlModules>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="WapCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#WapCharacteristics"/>
            <prf:WapDeviceClass>C</prf:WapDeviceClass>
            <prf:WapVersion>2.0</prf:WapVersion>
            <prf:WmlDeckSize>65535</prf:WmlDeckSize>
            <prf:WmlScriptLibraries>
               <rdf:Bag>
                  <rdf:li>Lang</rdf:li>
                  <rdf:li>Float</rdf:li>
                  <rdf:li>String</rdf:li>
                  <rdf:li>URL</rdf:li>
                  <rdf:li>WMLBrowser</rdf:li>
                  <rdf:li>Dialogs</rdf:li>
               </rdf:Bag>
            </prf:WmlScriptLibraries>
            <prf:WmlScriptVersion>
               <rdf:Bag>
                  <rdf:li>1.2</rdf:li>
               </rdf:Bag>
            </prf:WmlScriptVersion>
            <prf:WmlVersion>
               <rdf:Bag>
                  <rdf:li>1.3</rdf:li>
               </rdf:Bag>
            </prf:WmlVersion>
            <prf:WtaiLibraries>
               <rdf:Bag>
                  <rdf:li>WTA.Public.makeCall</rdf:li>
                  <rdf:li>WTA.Public.sendDTMF</rdf:li>
                  <rdf:li>WTA.Public.addPBEntry</rdf:li>
               </rdf:Bag>
            </prf:WtaiLibraries>
            <prf:WtaVersion>1.1</prf:WtaVersion>
            <prf:DrmClass>
               <rdf:Bag>
                  <rdf:li>ForwardLock</rdf:li>
               </rdf:Bag>
            </prf:DrmClass>
            <prf:OmaDownload>Yes</prf:OmaDownload>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="PushCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#PushCharacteristics"/>
            <prf:Push-Accept>
               <rdf:Bag>
                  <rdf:li>application/vnd.wap.wmlc</rdf:li>
                  <rdf:li>application/vnd.wap.xhtml+xml</rdf:li>
                  <rdf:li>multipart/mixed</rdf:li>
                  <rdf:li>text/html</rdf:li>
                  <rdf:li>text/plain</rdf:li>
                  <rdf:li>text/vnd.wap.si</rdf:li>
                  <rdf:li>text/vnd.wap.sl</rdf:li>
                  <rdf:li>text/vnd.wap.wml</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept>
            <prf:Push-Accept-Charset>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-Charset>
            <prf:Push-Accept-Encoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-Encoding>
            <prf:Push-Accept-Language>
               <rdf:Seq>
                  <rdf:li>de-DE</rdf:li>
               </rdf:Seq>
            </prf:Push-Accept-Language>
            <prf:Push-Accept-AppID>
               <rdf:Bag>
                  <rdf:li>x-wap-application:wml.ua</rdf:li>
                  <rdf:li>*</rdf:li>
               </rdf:Bag>
            </prf:Push-Accept-AppID>
            <prf:Push-MsgSize>30000</prf:Push-MsgSize>
            <prf:Push-MaxPushReq>5</prf:Push-MaxPushReq>
         </rdf:Description>
      </prf:component>
      <prf:component>
         <rdf:Description rdf:ID="MmsCharacteristics">
            <rdf:type rdf:resource="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#MmsCharacteristics"/>
            <mms:MmsMaxMessageSize>102400</mms:MmsMaxMessageSize>
            <mms:MmsMaxImageResolution>640x480</mms:MmsMaxImageResolution>
            <mms:MmsCcppAccept>
               <rdf:Bag>
                  <rdf:li>application/java-archive</rdf:li>
                  <rdf:li>application/sdp</rdf:li>
                  <rdf:li>application/smil</rdf:li>
                  <rdf:li>audio/mid</rdf:li>
                  <rdf:li>audio/midi</rdf:li>
                  <rdf:li>image/gif</rdf:li>
                  <rdf:li>image/jpeg</rdf:li>
                  <rdf:li>image/jpg</rdf:li>
                  <rdf:li>image/vnd.wap.wbmp</rdf:li>
                  <rdf:li>text/plain</rdf:li>
                  <rdf:li>text/vnd.sun.j2me.app-descriptor</rdf:li>
                  <rdf:li>text/vnd.wap.wml</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAccept>
            <mms:MmsCcppAcceptCharSet>
               <rdf:Bag>
                  <rdf:li>ISO-8859-1</rdf:li>
                  <rdf:li>UTF-8</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptCharSet>
            <mms:MmsCcppAcceptLanguage>
               <rdf:Bag>
                  <rdf:li>de-DE</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptLanguage>
            <mms:MmsCcppAcceptEncoding>
               <rdf:Bag>
                  <rdf:li>base64</rdf:li>
                  <rdf:li>quoted-printable</rdf:li>
               </rdf:Bag>
            </mms:MmsCcppAcceptEncoding>
            <mms:MmsVersion>
               <rdf:Bag>
                  <rdf:li>1.0</rdf:li>
               </rdf:Bag>
            </mms:MmsVersion>
         </rdf:Description>
      </prf:component>
   </rdf:Description>
</rdf:RDF>

Die Sektion "HardwarePlatform" beschreibt u. a. die Display-Auflösung, unterstützte Bluetooth-Profile, unterstützte Zeichen-Kodierungen u. v. m. Im Bereich "SoftwarePlatform" werden dann u. a. alle vom Gerät unterstützten MIME-Types aufgelistet. Für die einzelnen Clients wie Browser, MMS-Client, Streaming-Client oder Dienste wie WAP-Push oder DRM gibt es eigene Sektion.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.