DE10048940A1 - Erzeugen von Dokumenteninhalten durch Transcodierung mit Hilfe von Java Server Pages - Google Patents

Erzeugen von Dokumenteninhalten durch Transcodierung mit Hilfe von Java Server Pages

Info

Publication number
DE10048940A1
DE10048940A1 DE10048940A DE10048940A DE10048940A1 DE 10048940 A1 DE10048940 A1 DE 10048940A1 DE 10048940 A DE10048940 A DE 10048940A DE 10048940 A DE10048940 A DE 10048940A DE 10048940 A1 DE10048940 A1 DE 10048940A1
Authority
DE
Germany
Prior art keywords
transcoding
keyword
context
document
value pairs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10048940A
Other languages
English (en)
Inventor
John Raithel Hind
David B Lindquist
Ajamu A Wesley
Brad B Topol
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10048940A1 publication Critical patent/DE10048940A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein Verfahren, ein System und ein Computerprogramm, die es ermöglichen, mit Hilfe von Java Server Pages den Inhalt eines von einem Client angeforderten Dokuments zu transcodieren, um das Ausgabedokument gemäß der anwendungsspezifischen Merkmale anzupassen. Die vorliegende Erfindung ermöglicht dem JSP-Autor insbesondere, Merkmale der Eingabequellenanforderung zu überschreiben und Transcodierungshinweise anzugeben, die von einem Transcodierungsfilter zur Auswahl der geeigneten Formatvorlage verwendet werden.

Description

HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
Die vorliegende Erfindung bezieht sich auf ein Computersystem und befasst sich insbesondere mit einem Verfahren, einem System und einem Computerprogramm für die Verwendung von Java Server Pages zum Erzeugen von anwendungsspezifischen Dokumenteninhalten. Die dargelegte Technik ermöglicht dem Autor von JSP-Anwendungen mehr Möglichkeiten bei der Gestaltung des Inhalts eines von einem Client angeforderten Dokuments, das durch die Anwendung des Autors erzeugt wurde.
Beschreibung des technischen Hintergrunds
Das "Transcodieren" ist eine auf diesem Gebiet bekannte Technik. Im Allgemeinen übersetzt oder transformiert dabei ein Transcoder den Inhalt eines Dokuments oder einer Datei so, dass ein anderes Dokument bzw. eine andere Datei erzeugt wird. In Internet- und WWW-basierten Umgebungen gibt es für das Transcodieren zahlreiche Verwendungsmöglichkeiten. Durch Transcodierung kann beispielsweise eine in ein Web-Dokument eingebettete farbige Grafik zur Verringerung der Größe des Informationsinhalts in eine Graustufengrafik umgewandelt werden, bevor die Grafik von einem Server an einen Client übertragen wird, der das Dokument angefordert hat. Ein weiteres Beispiel stellt die Übersetzung eines HTML-Dokuments (HyperText Markup Language) in ein XML-Dokument (Extensible Markup Language) dar, bevor dieses an einen Client übertragen wird. ("XML" ist ein Warenzeichen des Massachusetts Institute of Technology.) Dem Fachmann erschließen sich für das Transcodieren viele weitere Verwendungsmöglichkeiten.
Servlets haben sich bei der Erzeugung von dynamischen Web- Inhalten als ein besonders leistungsstarkes Tool erwiesen. Ein Servlet ist ein typischerweise in der objektorientierten Programmiersprache Java geschriebenes Programm. (Java ist ein Warenzeichen von Sun Microsystems, Inc., im Folgenden als "Sun" bezeichnet.) Ein Servlet wird so erzeugt, dass es problemlos dem bereits auf einem Server installierten Code hinzugefügt werden kann, und es dient der Erweiterung der vom Server gebotenen Funktionalität. Ein Servlet implementiert typischerweise einen Code zur Ausführung einer bestimmten Aufgabe, wie beispielsweise das Abfragen von Informationen aus einer bestimmten Datenbankart, das Ausführen von Funktionen einer geschäftlich genutzten Anwendung oder das Durchführen einer bestimmten Transcodierungsoperation. Ein für die Transcodierung verwendetes Servlet kann ein statisches Dokument (d. h. ein Dokument mit vordefiniertem Inhalt) bearbeiten, um den Inhalt dieses Dokuments wie weiter oben beschrieben (d. h., durch das Bearbeiten von Bildern, das Übersetzen von einer Syntax in eine andere usw.) in eine andere Form zu bringen. Servlets können außerdem zur dynamischen Erzeugung des Inhalts oder Teilen des Inhalts einer angeforderten Web-Seite verwendet werden. Durch das Ausführen eines Servlets können Laufzeitinformationen wie die Identifizierung des Clients, der das Dokument anfordert, abgerufen werden. Diese dynamisch abgerufenen Informationen lassen sich anschließend beim Erzeugen des an den Client zu übertragenden Ausgabedokuments verwenden (beispielsweise kann eine client-spezifische Anrede in das Dokument eingebunden werden; das Dokumentformat kann auf die für den Client gespeicherten Einstellungen zugeschnitten werden; usw.).
Sun hat vor kurzem eine serverseitige Prozedursprache definiert, die unter dem Namen "Java Server Pages" oder "JSP" bekannt ist. Diese JSP-Sprache ermöglicht den Zugriff auf die Servlet-API (Application Programming Interface), die Schnittstelle des Servlets zur Programmierung von Anwendungsprogrammen, die Java-API und die JavaBeans-API. Das JSP-Modell vereinfacht die Entwicklung von Servlets, indem gewährleistet wird, dass der Servlet-Code ein Prozedurparadigma verwendet, sodass Softwareentwickler in die Lage versetzt werden, auf einfachere Weise Anwendungen zu erstellen, die Web-Inhalte dynamisch erzeugen. Der Einsatz von Servlets wird zudem vereinfacht, da zur Verwendung von JSP lediglich ein Web-Dokument (beispielsweise eine HTML-Seite oder ein XML-Dokument) aufgerufen werden muss, in das der JSP- Code eingebettet ist. Während der Verarbeitung des Web- Dokuments wird der Servlet-Code, auf den verwiesen wird, automatisch von der JSP-Engine aufgerufen. (Fachleuten ist bekannt, dass das Aufrufen einer Web-Seite durch die Übertragung eines HTTP-Protokolls (HyperText Transfer Protocol) von einem Client zu einem Web-Server erfolgt, wobei durch diese GET-Anforderung der einheitliche Ressourcen- Lokalisierer (Uniform Resource Locator, URL) festgelegt wird, der zur Lokalisierung der gewünschten Seite verwendet wird.) Java Server Pages integrieren das Prinzip "Write Once, Run Anywhere" der Programmiersprache Java und ermöglichen die Definition von Servlets durch Prozeduren, auf die Web- Anwendungsserver problemlos zugreifen können. Ein weiterer Vorteil von Java Server Pages liegt darin, dass der von Server zu Server unterschiedlich ablaufende Servlet- Registrierungsprozess nicht länger erforderlich ist. ("JavaServerPages", "Java Beans" und "Write Once, Run Anywhere" sind Warenzeichen von Sun.)
In dem hier dargestellten Datenverarbeitungsmodell, bei dem die Transcodierung mit Hilfe von Servlets erfolgt, ist die Transcodierungs-Engine ein Filter im Ausgabedatenstrom des Anwendungsservers (oder Web-Servers). Diese Transcodierungs- Engine hat typischerweise Zugriff auf Merkmale der Eingabeanforderungsquelle. (Diese Merkmale werden in dem vorliegenden Dokument auch als "Zielkontext" eines angeforderten Dokuments bezeichnet, da der Anforderer typischerweise auch den Empfänger des Ausgabedokuments darstellt.) Beispiele für die Merkmale der Eingabequelle sind: der User Agent (z. B. ein Browser), durch den ein Dokument angefordert wurde; die Vorrichtung, auf der der User Agent operiert; die Netzwerkverbindung, über die die anfordernde Vorrichtung verbunden ist, usw. Einige Aspekte dieser Informationen zu Merkmalen der Eingabequelle können einem Servlet zur Verfügung stehen, das auf dem Web-Server operiert, von dem ein angefordertes Dokument versandt wird. Andere Aspekte dieser Informationen sind im Netzwerk möglicherweise nur an Vermittlungspunkte (beispielsweise an einem Gateway- Computer zu einem drahtlosen oder verkabelten Netzwerk, zu Proxy-Servern für die Transcodierung oder zu Transcodierungsservern) in einer komplexen Lieferkette zwischen dem versendenden Web-Server und dem anfordernden Client verfügbar. Die Transcodierungs-Engine kann diese Merkmale der Eingabeanforderungsquelle für die Auswahl des Transformationsvorgangs verwenden, den sie am Ausgabedokument durchführen wird, um den angeforderten Inhalt in eine Form umzuwandeln, die speziell an die Zielumgebung angepasst ist, in der der Inhalt für den anfordernden Benutzer ausgegeben wird. Wie bereits erwähnt, kann der Filter an einer beliebigen Position des kompletten Netzwerkpfads für die Ausgabe an die anfordernde Vorrichtung angeordnet sein. Idealerweise befindet sich der Filter jedoch im Anwendungsserver selbst. Ein auf dem Anwendungsserver installierter Filter kann an die für die Erzeugung des Ausgabedokuments zuständige Anwendung gekoppelt werden und dadurch eine effiziente und besonders schnelle Abwicklung des Transcodierungsvorgangs gewährleisten.
Wie bereits erwähnt, sind Transcodierungsvorgänge in verschiedenen Ausführungen möglich. Auf dem Markt für die Verarbeitung von Geschäftsdaten hat sich eine Ausführung als besonders bedeutsam herausgestellt, die mit Hilfe eines XSL- Prozessors (Extensible Stylesheet Language, XSL) erstellt wird, der unter Verwendung einer XSL-Formatvorlage XML- Dokumente einschließlich neuer XML-Dokumente in nahezu jedes Zielformat umwandeln kann. Das U.S.-Patent "Retrieval of Style Sheets from Directories Based Upon Partial Characteristic Matching (Seriennummer 09/287,988, vom 8. April 1999) (im Folgenden als "die Referenzerfindung" bezeichnet) legt eine Technik offen, bei der eine geeignete XSL-Formatvorlage für die Verwendung durch eine XSL-Transcodierungs-Engine dynamisch ausgewählt und abgerufen werden kann, um ein Ausgabedokument zu erzeugen, das auf die Merkmale der Eingabeanforderungsquelle zugeschnitten ist. (Die Web-Seiten "Extensible Stylesheet Language (XSL), W3C Working Draft 21 April 1999" und "XSL Transformations (XSLT), Version 1.0, W3C Working Draft 9 July 1999", die im Internet unter http://www.w3.org/TR/WD-xsl bzw. http://www.w3.org/TR/WD-xslt verfügbar sind, enthalten weitere Informationen über die Verwendung von XSL zum Formatieren und Transformieren von Dokumenten.)
Einer der einschränkenden Faktoren dieses Transcodierungsmodells besteht bis heute darin, dass nur die Merkmale der Eingabeanforderungsquelle für die Auswahl der Formatvorlage verwendet werden und sich auf den Inhalt des Ausgabedokuments auswirken, und dass nur sehr geringe Informationen über die das Ausgabedokument erzeugende Anwendung verfügbar sind. Genau genommen steht für die Verarbeitung durch den Transcodierungsfilter nur die Dokumentartdefinition (Document Type Definition, DTD) des gerade transformierten XML-Dokuments als Anwendungsmerkmal zur Verfügung. Typischerweise teilt sich eine gesamte Familie verschiedener Anwendungen eine einzelne gemeinsame DTD. Die von dem Transcodierungsfilter durchzuführende Transformierung sollte jedoch idealerweise anhand von anwendungsspezifischen Merkmalen modifiziert werden. Ein Bankenkonsortium könnte beispielsweise eine einzelne DTD für alle Bankprodukte festlegen. Zu diesen Produkten können zählen: Auszüge für Sparkonten, Girokonten, Kredite oder Einlagenzertifikate, monatliche Kontoauszüge, Kreditanträge, Kontostandabfragen usw. Infolgedessen bietet die DTD lediglich ein komplexes generisches Mittel zur Einflussnahme auf den Inhalt des Ausgabedokuments. Es ist offensichtlich, dass die von der Anwendung für die Erstellung eines Kreditantragsformulars vorzugsweise erzeugten Informationen ganz anderer Natur sind als die Informationen, die für monatliche Kontoauszüge erzeugt würden. Ein weiteres Beispiel für die Vorteilhaftigkeit der Verwendung anwendungsspezifischer Merkmale zum Transcodieren eines Dokuments stellt das Szenario dar, in dem ein Transcodierungsfilter ein HTML-Dokument verarbeitet. Dabei wird die Eingabeseite in einem generischen Transcodierungsprozess von HTML zu XML in ein XML-Dokument konvertiert, während das XML-Dokument anschließend verarbeitet wird, indem in einer XSL-Engine XSL-Formatvorlagen auf das Dokument angewendet werden. In diesem Szenario stellt eine einzelne DTD das einzige für den Transcodierungsprozess verfügbare Anwendungsmerkmal dar. Daher würden an allen HTML- basierten Web-Anwendungen, für die dieses Szenario gilt, dieselben generischen Transformationen vorgenommen werden (die Web-Anwendungen erhielten darüber hinaus die Fähigkeit, einen bestimmten Satz von Eingabeanforderungsmerkmalen zu verwenden, um die Ausgabe noch weiter gemäß dem Zielkontext zu transformieren).
Angesichts der oben erwähnten vorteilhaften Aspekte der Verwendung von Java Server Pages, wäre die Einbindung von Java Server Pages in Transcodierungsumgebungen wünschenswert. Zum gegenwärtigen Zeitpunkt ist keine Technik bekannt, die diese Anforderungen erfüllt. Folglich wird eine Technik benötigt, mit deren Hilfe ein JSP-Autor die in einem Transcodierungsprozess zu verwendenden anwendungsspezifischen Merkmale festlegen kann, und die es ermöglicht, dass die Transcodierungs-Engine eine Ausgabe erzeugt, die genauer auf den anfordernden Benutzer zugeschnitten ist.
ÜBERBLICK ÜBER DIE ERFINDUNG
Ein Ziel der vorliegenden Erfindung ist die Bereitstellung einer Technik zum Einbinden anwendungsspezifischer Merkmale in den Transcodierungsprozess.
Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung dieser Technik in der Art und Weise, dass der JSP-Autor die von seiner Anwendung erzeugte Ausgabe genauer auf die Anforderung eines bestimmten Client abstimmen kann.
Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung dieser Technik in der Art und Weise, dass der JSP-Autor Informationen der Eingabeanforderungsquelle überschreiben kann.
Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung dieser Technik in der Art und Weise, dass der JSP-Autor die Möglichkeit hat, zusätzliche anwendungsspezifische Merkmale in ein zu transcodierendes Dokument einzufügen.
Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung dieser Technik in der Art und Weise, dass die geänderten Kontext- und/oder die eingefügten Merkmalsinformationen zur Auswahl einer geeigneten Formatvorlage für den Transcodierungsprozess verwendet werden können.
Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung dieser Technik in abwärtskompatibler Form, sodass bereits vorhandene Formatvorlagen weiterhin korrekt funktionieren.
Weitere Ziele und Vorteile der vorliegenden Erfindung sind zu einem Teil nachfolgend in der Beschreibung und in den Figuren dargelegt. Zu einem anderen Teil lassen sich diese Ziele und Vorteile aus der Beschreibung erschließen oder bei der praktischen Anwendung der Erfindung nachvollziehen.
Zum Erreichen der genannten Ziele und in Übereinstimmung mit dem bisher ausführlich beschriebenen Zweck der Erfindung, umfasst die vorliegende Erfindung ein Verfahren, ein System und ein Computerprogramm zur Verwendung in einer Datenverarbeitungsumgebung zum Erzeugen von anwendungsspezifischen Dokumentinhalten in der Transcodierungsumgebung mit Hilfe von Java Server Pages. Diese Technik beinhaltet weiterhin folgende Schritte: Abfragen eines JSP-Eingabedokuments, das eine Antwort auf eine Benutzeranforderung darstellt, wobei das Eingabedokument eine oder mehrere Transcodierungsdirektiven festlegt, und Ausführen einer JSP-Engine zum Abarbeiten der Transcodierungsdirektiven. Das Ausführen der JSP-Engine umfasst vorzugsweise folgende Schritte: Lokalisieren der Transcodierungsdirektiven im Eingabedokument, wobei jede der lokalisierten Transcodierungsdirektiven ein oder mehrere überschreibende Schlüsselwort/Wert-Paare enthält; Festlegen eines Zielkontexts für die Benutzeranforderung, wobei der Zielkontext ein oder mehrere überschreibende Schlüsselwort/Wert-Paare enthält; Vergleichen jedes überschreibenden Schlüsselwort/Wert-Paares mit den entsprechenden Schlüsselwort/Wert-Paaren des Kontexts; und Ersetzen eines Kontextwertes aus einem der ausgewählten Schlüsselwort/Wert-Paare des Kontexts durch einen überschreibenden Wert aus einem der ausgewählten überschreibenden Schlüsselwort/Wert-Paare, wenn das ausgewählte Kontextpaar und das ausgewählte überschreibende Paar einen übereinstimmenden Schlüsselwortwert aufweisen. Nach dem Ausführen der JSP-Engine werden die geänderten Schlüsselwort/Wert-Paare des Kontexts zum Erzeugen einer angepassten Ausgabeversion des Eingabedokuments verwendet.
Die Verwendung der Schlüsselwort/Wert-Paare des Kontexts kann außerdem das Ausführen eines Transcodierungsfilters einschließen. Das Eingabedokument kann weiterhin einen oder mehr Transcodierungshinweise enthalten, und die Technik kann zudem beinhalten, dass diese Hinweise zur weiteren Verfeinerung der auf den Client zugeschnittenen Ausgabeversion eingesetzt werden. Der Einsatz der Transcodierungshinweise kann außerdem folgende Schritte umfassen: Verwenden der Transcodierungshinweise zum Auswählen einer oder mehrerer geeigneter Formatvorlagen, und Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet. Der Einsatz der Transcodierungshinweise kann außerdem noch folgende Schritte umfassen: Verwenden der Transcodierungshinweise und der durch das Überschreiben geänderten Schlüsselwort/Wert-Paare des Kontexts, um eine oder mehrere geeignete Formatvorlagen auszuwählen, und Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet. Die Formatvorlagen können in Form einer XSL-Notation definiert werden.
Die vorliegende Erfindung wird nun anhand der folgenden Figuren beschrieben, deren Elemente im Folgenden stets gleich durchnummeriert sind.
KURZBESCHREIBUNG DER FIGUREN
Fig. 1 stellt in Form eines Blockdiagramms eine Arbeitsplatzrechnerumgebung dar, in der die vorliegende Erfindung eingesetzt werden kann.
Fig. 2 ist eine schematische Darstellung einer Netzwerkumgebung, in der die vorliegende Erfindung eingesetzt werden kann.
Fig. 3 veranschaulicht in Form eines Ablaufdiagramms die Logik, mit der eine JSP-Engine gemäß der bevorzugten Ausführung der vorliegenden Erfindung erweitert werden kann.
Fig. 4 veranschaulicht in Form eines Ablaufdiagramm die Logik, mit der eine Transcodierungs-Engine die anwendungsspezifischen Merkmale verwendet, durch die gemäß der bevorzugten Ausführung der vorliegenden Erfindung die Auswahl der Formatvorlagen erfolgt.
Fig. 5 stellt ein einfaches, durch die Ausführung einer JSP erzeugtes Ausgabedokument dar, wobei dieses Ausgabedokument Anwendungsmerkmale enthält, die gemäß der vorliegenden Erfindung eingefügt wurden.
Fig. 6 stellt ein Beispiel für ein Ausgabedokument dar, das gemäß der vorliegenden Erfindung durch einen Transcodierungsfilter unter Verwendung der anwendungsspezifischen Merkmalsinformationen erzeugt wurde und an dem eine detailliertere anwendungsspezifische Transformation vorgenommen wurde als dies nach dem bisherigen Stand der Technik möglich war.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNG
Fig. 1 zeigt eine repräsentative Hardwareumgebung eines Arbeitsplatzrechners, in der die vorliegende Erfindung eingesetzt werden kann. Die in Fig. 1 dargestellte Umgebung umfasst einen einzelnen Arbeitsplatzrechner 10, beispielsweise einen PC, und an diese angeschlossene Peripheriegeräte. Zum Arbeitsplatzrechner 10 gehören ein Mikroprozessor 12 und ein Bus 14, der mit Hilfe bekannter Techniken die Kommunikation zwischen dem Mikroprozessor 12 und den Komponenten des Arbeitsplatzrechners 10 aufbaut und aktiviert. Der Arbeitsplatzrechner 10 umfasst typischerweise einen Benutzerschnittstellenadapter 16, der den Mikroprozessor 12 über den Bus 14 mit einem oder mehreren Schnittstellengeräten, wie einer Tastatur 18, einer Maus 20 und/oder weiteren Schnittstellengeräten 22 verbindet, bei denen es sich um beliebige Benutzerschnittstellengeräte, wie einen Tastbildschirm, ein Digitalisierungseingabebrett usw. handelt. Über einen Bildschirmadapter 26 verbindet der Bus 14 außerdem ein Anzeigegerät 24, beispielsweise einen LCD-Bildschirm, mit dem Mikroprozessor 12. Der Bus 14 verbindet darüber hinaus den Mikroprozessor 12 mit dem Speicher 28 und dem Langzeitspeicher 30, bei dem es sich beispielsweise um ein Festplatten-, ein Disketten- oder ein Bandlaufwerk handeln kann.
Der Arbeitsplatzrechner 10 kann beispielsweise über einen Kommunikationskanal oder Modem 32 mit anderen Computern oder Computernetzwerken kommunizieren. Stattdessen kann der Arbeitsplatzrechner 10 diese Kommunikation auch über eine drahtlose Schnittstelle 32 wie eine CDPD-Karte (Cellular Digital Packet Data, CDPD) aufbauen. Der Arbeitsplatzrechner 10 kann mit anderen Computern in einem lokalen Netzwerk (Local Area Network, LAN) oder in einem Weitverkehrsnetzwerk (Wide Area Network, WAN) verbunden werden oder in einer Client/Server-Konfiguration mit einem anderen Computer als Client fungieren usw. Alle genannten Konfigurationen sowie die geeignete Kommunikationshardware sowie -software entsprechen dem aktuellen Stand der Technik.
Fig. 2 stellt ein Netzwerk zur Datenverarbeitung 40 dar, in dem die vorliegende Erfindung eingesetzt werden kann. Das Netzwerk zur Datenverarbeitung 40 kann aus einer Vielzahl einzelner Netzwerke wie dem drahtlosen Netzwerk 42 und dem Netzwerk 44 bestehen, an die jeweils wiederum eine Reihe von Arbeitsplatzrechnern 10 angeschlossen sein können. Fachleute wissen zu schätzen, dass zusätzlich noch ein oder mehrere LAN (nicht in der Figur enthalten) in das Netzwerk integriert werden kann, wobei ein LAN sich aus einer Vielzahl intelligenter Arbeitsplatzrechner zusammensetzen kann, die an einen Host-Prozessor gekoppelt sind.
Die in Fig. 2 dargestellten Netzwerke 42 und 44 können zudem noch Großrechner oder Server wie einen Gateway-Computer 46 oder einen Anwendungsserver 47 umfassen (die auf ein Daten- Repository 48 zugreifen können). Ein Gateway-Computer 46 dient als Verbindungspunkt zu den einzelnen Netzwerken 44. Über eine Kommunikationsverbindung 50a kann der Gateway-Computer 46 vorzugsweise an ein anderes Netzwerk gekoppelt werden. Der Gateway-Computer 46 kann über eine Kommunikationsverbindung wie 50b oder 50c außerdem direkt mit einem oder mehreren Arbeitsplatzrechnern 10 verbunden werden. Der Gateway- Computer 46 kann als Enterprise Systems Architecture/370 der International Business Machines Corporation (IBM), als Enterprise Systems Architecture/390 usw. implementiert werden. Je nach Applikation kann als Gateway ein Computer der mittleren Kategorie wie ein Application System/400 (auch als AS/4000 bekannt) eingesetzt werden. ("Enterprise Systems Architecture/370" ist ein Warenzeichen von IBM; "Enterprise Systems Architecture/390", "Application System/400" und "AS/400" sind eingetragene Warenzeichen von IBM.)
Der Gateway-Computer 46 kann auch mit einem Speichergerät (beispielsweise mit einem Daten-Repository 48) verbunden 49 werden. Darüber hinaus kann der Gateway-Computer 46 direkt oder indirekt mit einem oder mehreren Arbeitsplatzrechnern 10 verbunden werden.
Fachleute werden zu schätzen wissen, das der Gateway- Computer 46 eine große geographische Distanz zum Netzwerk 42 aufweisen kann, und dass in ähnlicher Weise die Arbeitsplatzrechner 10 ihren Standort in beträchtlicher Entfernung zu den Netzwerken 42 und 44 haben können. Der Standort des Netzwerks 42 kann beispielsweise in Kalifornien sein, während der Gateway-Computer 46 in Texas steht und einer oder mehrere der Arbeitsplatzrechner 10 sich in New York befinden. Die Arbeitsplatzrechner 10 können beispielsweise durch das Netzwerkprotokoll TCP/IP (Transmission Control Protocol/Internet Protocol) durch eine Reihe alternativer Verbindungsmedien wie z. B. Mobiltelefonen, Hochfrequenz- Netzwerken oder Satellitennetzwerke mit dem drahtlosen Netzwerk 42 verbunden werden. Das drahtlose Netzwerk 42 ist vorzugsweise durch eine Netzwerkverbindung 50a wie TCP oder das Anwender-Daten-Protokoll UDP (User Datagram Protocol) und durch die Datenübertragung beispielsweise per IP, X.25, Frame Relay, ISDN (Integrated Services Digital Network) oder PSTN (Public Switched Telephone Network) an den Gateway-Computer 46 gekoppelt. Die Arbeitsplatzrechner 10 können stattdessen durch Wählverbindungen wie 50b oder 50c direkt mit dem Gateway- Computer 46 verbunden werden. Darüber hinaus können das drahtlose Netzwerk 42 und das Netzwerk 44 auf die in Fig. 2 dargestellte Weise an ein oder mehrere weitere Netzwerke (nicht dargestellt) angebunden werden.
Der im Mittelpunkt der vorliegenden Erfindung stehende Softwareprogrammierungscode ist auf Langzeitspeichergeräten wie einem CD-ROM-Laufwerk oder einem Festplattenlaufwerk gespeichert, auf die typischerweise von dem Mikroprozessor 12 eines Servers wie Server 47 oder eines Vermittlungspunkts wie dem Gateway-Computer 46 (im Folgenden vereinfachend als Vermittler bezeichnet) zugegriffen wird. Der Softwareprogrammierungscode kann auf einem beliebigen bekannten Datenträger enthalten sein, der für die Verwendung in einem Datenverarbeitungssystem vorgesehen ist. Dabei kann es sich beispielsweise um eine Diskette, eine Festplatte oder eine CD-ROM handeln. Der Code kann über diese Datenträger übertragen oder von dem Speicher eines Computersystems über ein Netzwerk den Benutzern anderer Netzwerke zur Verfügung gestellt werden. Der Programmierungscode kann als Alternative auch im Speicher 28 enthalten sein, sodass der Zugriff auf den Code durch den Mikroprozessor 12 über den Bus 14 erfolgt. Die Techniken und Verfahren, um Softwareprogrammierungscodes in einem Speicher abzulegen, über physikalische Medien zu transportieren und/oder über Netzwerke zu übertragen, sind allgemein bekannt und werden im Folgenden nicht weiter behandelt.
Ein Anwender der vorliegenden Erfindung kann seinen Computer über eine Kabelverbindung oder über eine drahtlose Verbindung an einen Server anschließen. Kabelverbindungen bestehen aus physikalischen Medien wie Kabel und Telefonleitungen, während drahtlose Verbindungen Medien wie Satellitenverbindungen, Hochfrequenzwellen und Infrarotstrahlen nutzen. Diese verschiedenen Medien ermöglichen den Einsatz einer Vielzahl von Verbindungstechniken. Hierzu zählen die Verwendung eines Modems zum Aufbau einer Verbindung über eine Telefonleitung, die Verwendung einer LAN-Karte wie Token Ring oder Ethernet, die Verwendung eines Modems für das Mobilfunknetz zum Aufbau einer drahtlosen Verbindung usw. Bei dem Computer des Anwenders kann es sich um einen beliebigen Rechner handeln, der über Datenverarbeitungs- und Kommunikationsfunktionen (optional) verfügt. Dazu zählen beispielsweise Laptops, Handheld-PCs oder mobile Computer sowie Bordcomputer, Desktop- PCs, Großrechner usw. Als Fernserver und Vermittler können ebenfalls verschiedene Computertypen eingesetzt werden, die über Datenverarbeitungs- und Kommunikationsfunktionen verfügen. Die genannten Verbindungstechniken sind allgemein bekannt, und die zu ihrer Nutzung erforderliche Hardware und Software ist verfügbar. Im Folgenden wird der Computer des Benutzers gleichbedeutend als "Arbeitsplatzrechner", "Gerät" oder "Computer" bezeichnet, und die Verwendung eines dieser Begriffe oder des Begriffs "Server" bezieht sich auf alle der oben genannten Rechnertypen.
In der bevorzugten Ausführung wird die vorliegende Erfindung in Form eines oder mehrerer Softwareprogramme implementiert. Die Software kann entweder gänzlich auf einem Anwendungsserver installiert sein oder zu einem Teil auf einem Anwendungsserver und zum anderen Teil auf einem Vermittler in einem Netzwerk in Form eines oder mehrerer Module (so genannte Subroutinen oder "Objekte" in der objektorientierten Programmierung) zum Einsatz kommen, die auf Anforderung aufgerufen werden. Zur Vereinfachung der Benennung wird mit dem Begriff "Server" im Folgenden jedes der beiden genannten Geräte als dasjenige bezeichnet werden, auf dem vor dem Verschicken eines Dokuments an einen Client der Transcodierungsvorgang durchgeführt wird. Der Anwendungsserver und der Vermittler können Dienste in einer Internetumgebung, in einem firmeneigenen Intra- oder Extranet sowie in beliebigen anderen Netzwerkumgebungen bereitstellen.
Die vorliegende Erfindung definiert eine neuartige Technik, die einem Autor von JSP-basierten Anwendungen die Festlegung anwendungsspezifischer Merkmale ermöglicht, die gewährleisten, dass ein Transcoder ein Ausgabedokument genauer auf den jeweiligen Empfänger zuschneiden kann. Der Transcodierungsprozess kann auf einem Anwendungsserver ablaufen, der das angeforderte Dokument verarbeitet, oder auf einem Vermittler in der Lieferkette zwischen dem gespeicherte Daten anfordernden Client und der Serveranwendung, die die angeforderten Informationen abgerufen hat. Vermittler führen anhand der Merkmale der Eingabeanforderungsquelle üblicherweise verschiedene Übersetzungs- und/oder Transformationsvorgänge durch. XML ist beispielsweise ein weithin anerkannter Industriestandard für das Publizieren und Austauschen von Daten mit Hilfe von Netzwerken wie dem Internet. Bei der Übertragung von Daten in Form eines XML- Dokuments muss dieses durch einen herkömmlichen Übersetzungsvorgang in eine andere Markierungssprache umformatiert werden, wobei die Zielmarkierungssprache besser auf den Zielkontext abgestimmt ist. Für den Fall, dass der anfordernde Benutzer von seinem Mobiltelefon Daten über eine drahtlose Verbindung angefordert hat, umfasst der Zielkontext die Identifizierung des Benutzers, sein in der Funktionalität eingeschränktes Gerät, die drahtlose Netzwerkverbindung sowie den Browser oder die entsprechende Anwendungssoftware, über die der Benutzer seine Anforderung getätigt hat. Für dieses Beispiel kann festgelegt werden, dass der Browser des Benutzers nicht XML sondern WML ("Wireless Markup Language") unterstützt. Bei WML handelt es sich um eine für Benutzer von drahtlosen Rechnern entwickelte XML-Version zur Präsentation von Dokumenten. Infolgedessen führt der Vermittler eine Übersetzung von XML in WML durch und sendet das so entstandene WML-Dokument an den anfordernden Benutzer. Ein typisches Verfahren zur Ausführung dieser Übersetzung sowie einer Vielzahl weiterer Übersetzungs- und Transformationsvorgänge besteht im Anwenden einer Formatvorlage auf das Eingabedokument.
In der Referenzerfindung wurde eine Technik beschrieben, mit der ein Dokumentinhalt auf seinen Zielkontext zugeschnitten werden kann. Dies geschieht durch den Einsatz einer oder mehrerer besonderer Formatvorlagen, durch die an einem bestimmten Satz von Merkmalen der Eingabeanforderungsquelle ein geeigneter Transformationsvorgang durchgeführt wird. Die Referenzerfindung enthält die Definition einer Technik zum Verknüpfen von Merkmalen mit Formatvorlagen. Dies geschieht durch das Deklarieren eines Satzes von Schlüsselwort/Wert- Paaren, das Einspeisen dieser Paare in eine Suchmaschine und das Abfragen einer geeigneten Formatvorlage durch Festlegung eines Musters, das eines oder mehrere der Merkmale enthält. Die in der Referenzerfindung dargestellte Technik ist in dem vorliegenden Dokument als Referenz enthalten und wird vorzugsweise mit der vorliegenden Erfindung eingesetzt. Indem diese Handhabung der Merkmale der Eingabeanforderungsquelle (wie in der Referenzerfindung definiert) auf anwendungsspezifische Merkmale (wie in der vorliegenden Erfindung definiert) übertragen wird, können dieselben, in der Referenzerfindung definierten Mechanismen von der Transcodierungs-Engine verwendet werden, um sowohl anhand der Merkmale der Eingabeanforderung als auch anhand der vom JSP- Autor festgelegten anwendungsspezifischen Merkmale einen Transformationsvorgang auszuwählen.
In dem vorliegenden Dokument werden zwei neuartige Techniken vorgestellt, die dem JSP-Autor die Festlegung von anwendungsspezifischen Informationen ermöglichen, durch die er die Erzeugung der Ausgabeseiten durch seine Anwendung genauer steuern kann. Die erste Technik wird in dem vorliegenden Dokument als "Transcodierungsdirektive" bezeichnet. Die JSP- Sprache ist durch mehrere Direktiven definiert. Dazu zählen eine "Einschlussdirektive" und eine "Seitendirektive". Der Gebrauch der Bezeichnung "Direktive" impliziert, das die JSP- Verarbeitungs-Engine angewiesen wird, eine bestimmte Aufgabe auszuführen. Durch die Transcodierungsdirektive der vorliegenden Erfindung wird diese Liste vordefinierter Direktiven erweitert. Über die Transcodierungsdirektive wird die JSP-Engine angewiesen, die verknüpfte Eingabe für die spätere Verwendung durch einen Transcodierungsfilter zu bearbeiten. Dies wird ausführlich in den nachfolgenden Erläuterungen zu Fig. 3 beschrieben. Die zweite Technik wird in dem vorliegenden Dokument entsprechend als "anwendungsspezifische Markierung" oder als "Transcodierungshinweise" bezeichnet. Ein Transcodierungshinweis besteht aus Informationen, die durch das Ausführen einer JSP in ein Dokument eingefügt werden, wo sie nachfolgend von einem Transcodierungsfilter abgearbeitet werden. Die Art und Weise wie ein Transcoder gemäß der vorliegenden Erfindung Transcodierungshinweise abarbeitet, wird weiter unten in den Erläuterungen zu Fig. 4 erklärt.
Die bevorzugte Ausführung der Syntax für eine Transcodierungsdirektive entspricht der Syntax für bereits vorhandene Direktiven in der JSP-Sprache. Bei der Verwendung von HTML muss dabei dem Namen der Direktive die Syntax "<%@" vorangestellt werden, und der Parameterliste der Direktive muss die Syntax "%<" nachgestellt werden. Bei der Verwendung von XML muss dem Namen der Direktive die Syntax "<jsp:directive." vorangestellt werden und das abschließende Begrenzungssteuerzeichen "/<" muss nachgestellt werden. Die in einer HTML-Seite codierte Syntax einer Transcodierungsdirektive lautete somit wie folgt:
<%@transcode [transcoding directive parameter list]%<
Die Parameterliste wird vorzugsweise als Schlüsselwort/Wert- Paar definiert. Dabei ist jedes Schlüsselwort von dem ihm zugeordneten Wert durch ein Gleichheitszeichen ("=") getrennt, der Wert ist in doppelte Anführungszeichen eingeschlossen, und die einzelnen Paare sind durch Leerschritte als Begrenzungszeichen voneinander getrennt. Die in einer XML- Seite codierte Syntax einer Transcodierungsdirektive lautete wie folgt:
<jsp:directive.transcode [transcoding directive parameter list] /<
Es ist zu beachten, dass im Sinne der vorliegenden Erfindung diese Syntax durch die JSP-Engine (siehe Fig. 3) bearbeitet werden muss.
Die Transcodierungsdirektive hat die Funktion, dem JSP-Autor das Ändern eines oder mehrerer der Merkmale der Eingabequellenanforderung zu ermöglichen. Die Merkmale der Eingabequelle sind typischerweise den Kopffeldern der HTTP- Anforderung zu entnehmen, mit der die Seite angefordert wurde. Der JSP-Autor möchte eventuell einen oder mehrere dieser Werte an die Bedingungen seiner Anwendung anpassen und verwendet dazu Werte, die er mit Blick auf die von seiner Anwendung ausgeführten Verarbeitungsprozesse selbst auswählt. Als Beispiel für das Ändern eines Merkmals der Eingabeanforderungsquelle, kann die Syntax
<%@transcode user = "guest@www.ibm.com"%<
von dem JSP-Autor in eine JSP-Seite codiert werden, um darauf hinzuweisen, dass die Benutzeridentität zwingend in "guest@www.ibm.com" (an Stelle der von der Eingabeanforderung abgeleiteten Identität) geändert werden muss, wenn das von der JSP-Anwendung erzeugte HTML-Dokument einen Transcodierungsfilter durchläuft. Die entsprechende Syntax für eine XML-Seite lautete wie folgt:
<jsp:directive.transcode user = "guest@www.ibm.com"/<
Diese Überschreibtechnik kann auf alle Merkmale der Eingabeanforderungsquelle angewendet werden.
Die bevorzugte Ausführung der Syntax für einen Transcodierungshinweis umfasst zudem eine Syntax für HTML und eine weitere für XML, um auf die jeweilige Syntax der Sprachen abgestimmt zu sein. Für die Abarbeitung der Transcodierungshinweise ist ein Transcodierungsfilter vorgesehen. Wie bereits erwähnt, kann der Transcodierungsfilter in der JSP-Engine enthalten oder Teil eines Vermittlers im Netzwerk sein, der das von der JSP-Engine erzeugte Dokument empfängt und anschließend transcodiert. In Anbetracht dieser möglichen Anordnung des Transcoders im Netzwerk, muss die Syntax der Transcodierungshinweise in der Lage sein, andere Vermittler im Netzwerkpfad als gültige Dokumentmarkierung zu passieren. (D. h., dass die Syntax von den Vermittlern im Pfad als gültig erkannt werden muss, bevor sie den Transcodierungsfilter erreicht - nach der Verarbeitung durch den Filter sind die Markierungen für die Transcodierungshinweise gelöscht.) Infolgedessen besteht die bevorzugte Ausführung zum Einfügen eines Transcodierungshinweises in ein HTML-Dokument in der Überladung der Kommentarsyntax, sodass die Transcodierungshinweise folgende Form aufweisen:
<!--@ transcode [application characteristic list] --<
Wie die Parameterliste der Transcodierungsdirektiven wird auch die Parameterliste der Transcodierungshinweise vorzugsweise als Schlüsselwort/Wert-Paare festgelegt. Dabei ist jedes Schlüsselwort von dem ihm zugeordneten Wert durch ein Gleichheitszeichen ("=") getrennt, der Wert ist in doppelte Anführungszeichen eingeschlossen, und die einzelnen Paare sind durch Leerschritte als Begrenzungszeichen voneinander getrennt. Die bevorzugte Ausführung der Syntax zum Codieren eines Transcodierungshinweises in einer XML-Seite lautet wie folgt:
<suggestion:transcode [transcoding directive parameter list] /<
Die Funktion eines Transcodierungshinweises besteht nicht darin, ein Eingabemerkmal zu überschreiben, sondern vielmehr darin, Anwendungsmerkmale anzubieten, die neben Eingabemerkmalen bei der Auswahl einer geeigneten Formatvorlage für den Transcodierungsprozess verwendet werden können. Anhand der Bedingungen jeder einzelnen Anwendung wird wie im Falle der Transcodierungsdirektive festgelegt, welche Transcodierungshinweise in einem zu transcodierenden Dokument geeignet sind. Folglich kann der JSP-Autor je nach seiner Kenntnis des gerade erzeugten Dokuments Hinweise festlegen und definieren, wie eine Formatvorlage das Ausgabedokument optimal auf den Client zuschneiden kann. Zum Festlegen eines Transcodierungshinweises könnte der JSP-Autor beispielsweise einen Code schreiben, um in das durch seine Anwendung erzeugte HTML-Dokument die folgende Syntax einzufügen:
<!--@ transcode reportstyle = "catalog"--<
Dies weist darauf hin, dass der Transcoder dieses Dokument am besten durch den Einsatz einer XSL-Formatvorlage wiedergibt, die über das gleiche Merkmalsattribut reportstyle = "catalog" verfügt. Die entsprechende Syntax für eine XML-Seite lautete wie folgt:
<suggestion:transcode reportstyle = "catalog" /<
Anhand der Fig. 3 bis 6 wird die bevorzugte Ausführung der vorliegenden Erfindung im Folgenden näher erläutert. An einem einfachen Beispiel werden die Vorteile und die Implementierung der vorliegenden Erfindung veranschaulicht.
Fig. 3 veranschaulicht die Logik, mit der eine JSP-Engine erweitert werden kann, um Transcodierungsdirektiven gemäß der bevorzugten Ausführung zu verarbeiten. Wie in der Technik bekannt ist, wird der von der JSP-Engine ausgeführte Verarbeitungsvorgang gestartet, nachdem ein Client ein bestimmtes Web-Dokument angefordert hat, und wenn sich das angeforderte Dokument (bei dem es sich um eine Java Server Page handelt) auf dem Webserver befindet, der die Anforderung des Clients beantwortet. Fig. 3 beschreibt nicht die vorhandene Logik der JSP-Engine, sondern vielmehr die Erweiterungen, die vorzugsweise für die vorliegende Erfindung verwendet werden. Für Fachleute ist es offensichtlich, wie diese neuartigen Erweiterungen in den logischen Fluss einer vorhandenen JSP-Engine integriert werden können. Der Prozess setzt bei Block 300 ein, wo die JSP-Engine eine Anweisung von der Java Server Page liest. Block 305 fragt, ob durch diese Anweisung eine Verarbeitungsdirektive festgelegt wird. Ist dies der Fall, fragt Block 310, ob es sich um eine Transcodierungsdirektive der vorliegenden Erfindung handelt. Wenn es sich bei der Anweisung weder um eine Verarbeitungsdirektive ("Nein" bei Block 305) noch um eine Transcodierungsdirektive ("Nein" bei Block 310) handelt, geht die Steuerung des Vorgangs auf Block 320 über, und die Anweisung wird nach dem bisherigen Stand der Technik abgearbeitet.
Handelt es sich bei der Anweisung um eine Transcodierungsdirektive, wird diese durch Block 315 verarbeitet. Block 315 lokalisiert vorzugsweise das Schlüsselwort aus der Transcodierungsdirektive und ermittelt dann, ob in den Merkmalen der Eingabequelle ein passendes Schlüsselwort enthalten ist. Wird ein solches Schlüsselwort in der Eingabequelle gefunden, wird der aus der Eingabequelle stammende Wert durch den vom JSP-Autor für die Transcodierungsdirektive festgelegten Wert überschrieben. Wird das Schlüsselwort durch die von Block 315 ausgeführten Verarbeitungsprozesse nicht gefunden, können das Schlüsselwort und der zugehörige Wert aus der Transcodierungsdirektive einfach in einer Liste überschreibender Wertepaare gespeichert werden, wobei der tatsächliche der eigentliche Überschreibungsvorgang (d. h., das Lokalisieren des Schlüsselwortes in den Merkmalen der Eingabequelle und das Ersetzen des zugehörigen Wertes) erst zu einem späteren Zeitpunkt des Verarbeitungsablaufes stattfindet, wenn die Frage in Block 325 mit "Ja" beantwortet wird.
Nach der Abarbeitung der von Block 300 gelesenen Eingabeanweisung wird Block 325 im Ablauf erreicht. Block 325 prüft nun, ob es sich bei der Anweisung um die letzte Anweisung in der JSP gehandelt hat. Ist dies nicht der Fall, geht die Steuerung des Ablaufs wieder auf Block 300 über, damit der Verarbeitungsprozess für die nächste Anweisung wiederholt werden kann. Andernfalls hat Block 325 bei Erreichen des Eingabedateiendes ein positives Ergebnis ermittelt, und der Verarbeitungsprozess wird bei Block 330 fortgesetzt.
Bei Erreichen von Block 330 im Ablauf wurde das Ausgabedokument bereits durch die JSP-Engine erzeugt. Sämtliche Transcodierungsdirektiven der Java Server Page wurden lokalisiert und abgearbeitet. Alle vom JSP-Autor festgelegten Transcodierungshinweise wurden in das erzeugte Ausgabedokument eingefügt. (Es ist zu beachten, dass an der JSP-Engine keine Änderungen vorgenommen werden müssen, um das Schreiben der Transcodierungshinweise in das Dokument zu ermöglichen. Zu diesem Zweck können bereits vorhandene "Schreiboperationen" verwendet werden.) Die JSP-Engine prüft in Block 330, ob ein geeigneter Transcodierungsfilter lokal verfügbar ist. (Mit Hilfe der Verfahren auf dem bisherigen Stand der Technik können Transcodierungs- und andere Ausgabefilter zusammen mit der Serversoftware registriert werden. Folglich kann Block 330 implementiert werden, indem geprüft wird, ob ein solcher Filter vorhanden ist.) Ist dies der Fall, wird der Transcoder in Block 335 aufgerufen, um die Zielkontextinformationen (mit den bei der Verarbeitung durch Block 315 überschriebenen Werten) und das von der JSP erzeugte Dokument weiterzuleiten. Die Ausgabe der lokalen Transcodierungsoperation (hierbei handelt es sich um ein Dokument, das keine Transcodierungshinweise mehr enthält, da diese vom lokalen Transcoder verarbeitet und gelöscht wurden) wird anschließend zum Netzwerk weitergeleitet, um an den anfordernden Client in Block 340 übermittelt zu werden. (Eine Beschreibung der Transcodierungsoperation enthält Fig. 4.) Steht kein lokaler Transcodierungsfilter zur Verfügung, kann Block 345 das von der JSP erzeugte Dokument (das möglicherweise Transcodierungshinweise enthält) an das Netzwerk weitergeleitet werden, um dort durch einen netzwerkeigenen Filter (siehe Fig. 4) bearbeitet zu werden. Stattdessen kann Block 345 die Überschreibungsinformationen für den Zieltext (in Form der durch Block 315 verarbeiteten Markierungen "<%@ transcode" bzw. "jsp:directive.transcode") auch einfach in das erzeugte Dokument (das ebenfalls Transcodierungshinweise enthalten kann) einfügen, bevor das resultierende Dokument in das Netzwerk gesandt wird. Der in Fig. 3 dargestellte Verarbeitungsablauf ist zu Ende, wenn die Verarbeitungsvorgänge von Block 340 bzw. von Block 345 abgeschlossen sind.
Fig. 4 veranschaulicht die Logik, mit der ein Transcodierungsfilter (entweder bei einem Vermittler in einem Netzwerk oder bei der JSP-Engine) die überschriebenen Kontextinformationen und Transcodierungshinweise der vorliegenden Erfindung zum Erzeugen eines Dokuments nutzt, an dem eine detailliertere anwendungsspezifische Transformation vorgenommen wurde als dies nach dem bisherigen Stand der Technik möglich war. Der Prozess setzt bei Block 400 ein. An dieser Stelle wird die mit dem gerade transcodierten Eingabedokument (d. h., das durch die JSP-Engine erzeugte Dokument einschließlich aller Änderungen, die sich nach dem Ablauf des in Fig. 3 dargestellten logischen Prozesses ergeben haben) verknüpfte Dokumentartdefinition (DTD) auf die auf dem bisherigen Stand der Technik üblichen Weise abgefragt. Block 405 durchsucht anschließend das Eingabedokument nach Transcodierungshinweisen. Wenn der Transcodierungsfilter in einem Netzwerk angeordnet ist, umfasst dieser Prozess zudem das Durchsuchen des Eingabedokuments nach Markierungen zum Überschreiben des Zielkontexts (die möglicherweise während des von Block 345 durchgeführten Verarbeitungsprozesses in das Dokument eingefügt wurden). Die bei diesem Durchsuchungsvorgang lokalisierten Schlüsselwörter und Werte werden anschließend in Block 410 den als Eingabe empfangenen Zielkontextinformationen hinzugefügt. Alle von einem in das Netzwerk integrierten Transcodierungsfilter in Block 405 erkannten Überschreibungsmarkierungen werden zudem an diesem Punkt zum Überschreiben der entsprechenden Zielkontextwerte verwendet (wie weiter oben in den Erläuterungen zu Block 315 beschrieben). In Block 415 wird aus dem Verarbeitungsergebnis von Block 410 eine Suchzeichenfolge für die Suche nach einem Repository gespeicherter Formatvorlagenmerkmalen erzeugt. Dazu wird vorzugsweise der in der Referenzerfindung definierte Ansatz verwendet. Die abgefragten Formatvorlagen werden daraufhin gemäß dem bisherigen Stand der Technik von einer XSL-Engine angewendet. Der in Fig. 4 dargestellte Verarbeitungsprozess ist damit abgeschlossen, und das anhand der von dem JSP-Autor festgelegten anwendungsspezifischen Merkmale zugeschnittene Dokument wird auf dem Lieferpfad an den anfordernden Client geschickt.
Die Fig. 5 und 6 enthalten Beispieldokumente, die der weiteren Veranschaulichung der in der bevorzugten Ausführung der vorliegenden Erfindung ablaufenden Verarbeitungsprozesse dienen. Fig. 5 stellt die Ausgabe einer JSP dar, durch die HTML-Syntax erzeugt wird. Da die Transcodierungsdirektiven gemäß den in Fig. 3 geschilderten Verarbeitungsvorgängen gelöscht wurden, sind in diesem JSP-Ausgabedokument lediglich die enthaltenen Transcodierungshinweise dargestellt. Das Beispieldokument 500 ging aus einer von Banken genutzten Anwendung hervor, bei der die Kontodaten eines Bankkunden abgerufen und für die Anzeige durch einen Browser formatiert wurden. In diesem Beispiel hat die JSP ein Dokument erzeugt, das neben den Kontoständen des Kunden und anderen Informationen (als Element 530 dargestellt) ein Formular 520 für die Auswahl der Zahlungsweise enthält. Der Transcodierungshinweis 510 verwendet die bereits zuvor beschriebene kommentarartige Markierung für HTML-Dokumente. In diesem Transcodierungshinweis 510 hat das Schlüsselwort "contour" 511 den Wert "h2+body" 512. In diesem hypothetischen Beispiel entspräche dies einem Schlüsselwort/Wert-Paar, das mit einer Formatvorlage verknüpft ist, die ein Dokument so partitioniert, dass jede Überschrift der zweiten Ebene als eine abgeschlossene Informationseinheit behandelt wird. Weiterhin ist in dem Transcodierungshinweis 510 dem Schlüsselwort "transaction" 513 der Wert "hasform" 514 zugeordnet, damit eine geeignete Formatvorlage für die Bearbeitung von Dokumentseiten ausgewählt werden kann, die Anforderungen für Benutzereingaben enthalten (d. h., das auf dieser HTML-Seite im Bereich 520 definierte Formular).
Die Fig. 6 enthält ein Beispielausgabedokument 600, das erzeugt werden kann, nachdem der auf das Dokument 500 angewendete Transcodierungsfilter (bzw. die auf das Dokument 500 angewendeten Transcodierungsfilter) die HTML- Syntax in eine WML-Syntax konvertiert hat (beispielsweise nachdem über den Zielkontext festgestellt wurde, dass der anfordernde Benutzer einen Pager oder ein Bildschirmtelefongerät verwendet und an ein drahtloses Netzwerk angeschlossen ist) und zudem die Hinweise "contour" und "hasform" zur Formatierung des an den Kunden zu übermittelnden Dokuments verwendet wurden. Das Eingabeformular 520 wurde durch die Formatvorlage in die WML- Syntax konvertiert, damit es Benutzereingaben (Element 610) annehmen kann, und jede Überschrift der zweiten Ebene (540, 541, 542, 543, 544) des HTML-Dokuments wurde in dem WML- Kartensatz 600 in eine getrennte Karte (620, 621, 622, 623 bzw. 624) konvertiert.
Wie bisher demonstriert wurde, bietet die vorliegende Erfindung Techniken, die für einen JSP-Autor den Vorteil haben, dass er das von seiner Anwendung erzeugte Ausgabedokument anhand anwendungsspezifischer Merkmale genauer auf den jeweiligen Empfänger zuschneiden kann. Die vorliegende Erfindung ermöglicht dem JSP-Autor insbesondere, die Merkmale der Eingabequellenanforderung zu überschreiben und Transcodierungshinweise festzulegen, die von einem Transcodierungsfilter für die Auswahl einer geeigneten Formatvorlage verwendet werden. Die Transcodierungshinweise, die möglicherweise Vermittler im Netzwerk passieren müssen, sind in einer abwärtskompatiblen Syntax erstellt, sodass vorhandene Dokumentprozessoren die Hinweise einfach ignorieren.
Obgleich in der Beschreibung der bevorzugten Ausführung der Einsatz von XSL-Formatvorlagen vorgesehen ist, können auch Formatvorlagen in anderen Notationen als XSL verwendet werden (beispielsweise die sogenannte DSSL - Document Style Semantics and Specification Language - die dem Internationalen Standard ISO/IEC 10179: 1996 entspricht), ohne dass dadurch von den Konzepten der vorliegenden Erfindung abgewichen wird. Gleiches gilt für die in dem vorliegenden Dokument zur Anwendung auf HTML- und XML-Dokumente definierte Syntax für Transcodierungsdirektiven und anwendungsspezifische Markierungen, da diese Syntax ebenfalls auf Dokumente angewendet werden kann, die in anderen Notationen codiert wurden, die eine ähnliche Semantik aufweisen.
Fachleuten, die das Grundkonzept der in diesem Dokument beschriebenen bevorzugten Ausführung der vorliegenden Erfindung erfasst haben, können sich möglicherweise zusätzliche Variations- und Änderungsmöglichkeiten der Ausführung erschließen. Aus diesem Grund sind die im Anhang aufgeführten Ansprüche absichtlich so formuliert, dass diese sowohl die bevorzugte Ausführung als auch die im Sinne und im Rahmen der Erfindung möglichen Variationen und Änderungen beinhalten.

Claims (18)

1. Computerprogramm, das auf einem computerlesbaren Datenträger gespeichert und in einer Datenverarbeitungsumgebung von einem Computersystem lesbar ist, zum Erzeugen eines anwendungsspezifischen Dokumentinhalts mit Hilfe von Java Server Pages, das umfasst:
computerlesbaren Programmcode zum Abrufen eines auf Java Server Pages (JSP) basierenden Eingabedokuments, das eine Antwort auf eine Benutzeranforderung darstellt, wobei das Eingabedokument eine oder mehrere Transcodierungsdirektiven festlegt;
computerlesbaren Programmcode für die Ausführung einer JSP-Engine zum Abarbeiten einer oder mehrerer Transcodierungsdirektiven, wobei die JSP-Engine zudem umfasst:
computerlesbaren Programmcode zum Lokalisieren einer oder mehrerer Transcodierungsdirektiven in dem Eingabedokument, wobei jede der lokalisierten Transcodierungsdirektiven ein oder mehrere überschreibende Schlüsselwort/Wert-Paare enthält;
computerlesbaren Programmcode zum Festlegen eines Zielkontexts der Benutzeranforderung, wobei der Zielkontext ein oder mehrere Schlüsselwort/Wert-Paare enthält;
computerlesbaren Programmcode zum Vergleichen jedes einzelnen überschreibenden Schlüsselwort/Wert-Paars mit den Schlüsselwort/Wert-Paaren des Kontexts; und
computerlesbaren Programmcode zum Ersetzen eines Kontextwertes aus einem ausgewählten Paar der Schlüsselwort/Wert-Paare des Kontexts durch einen überschreibenden Wert aus einem ausgewählten Paar der überschreibenden Schlüsselwort/Wert-Paare, wenn das ausgewählte Kontextpaar und das ausgewählte überschreibende Paar einen übereinstimmenden Schlüsselwortwert aufweisen; und
computerlesbaren Programmcode, um die durch den computerlesbaren Programmcode für den Ersetzungsvorgang geänderten Schlüsselwort/Wert-Paare zum Erzeugen einer angepassten Ausgabeversion des Eingabedokuments zu verwenden.
2. Computerprogramm gemäß Anspruch 1, wobei der computerlesbare Programmcode zum Verwenden der Schlüsselwort/Wert-Paare des Kontexts zudem einen computerlesbaren Programmcode zum Ausführen eines Transcodierungsfilters enthält.
3. Computerprogramm gemäß Anspruch 1, wobei das Eingabedokument zudem einen oder mehrere Transcodierungshinweise enthält, und wobei das Computerprogramm zudem einen computerlesbaren Programmcode enthält, um die Transcodierungshinweise für eine weitere Verfeinerung der angepassten Ausgabeversion zu verwenden.
4. Computerprogramm gemäß Anspruch 3, wobei der computerlesbare Programmcode zum Anwenden der Transcodierungshinweise zudem umfasst:
computerlesbaren Programmcode, um über die Transcodierungshinweise eine oder mehrere geeignete Formatvorlagen auszuwählen; und
computerlesbaren Programmcode zum Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
5. Computerprogramm gemäß Anspruch 3, wobei der computerlesbare Programmcode zum Anwenden der Transcodierungshinweise zudem umfasst:
computerlesbaren Programmcode, um die Transcodierungshinweise und die von dem computerlesbaren Programmcode für den Ersetzungsvorgang geänderten Schlüsselwort/Wert-Paare des Kontexts zum Auswählen einer oder mehrerer geeigneter Formatvorlagen zu verwenden; und
computerlesbaren Programmcode zum Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
6. Computerprogramm gemäß Anspruch 4 oder Anspruch 5, wobei die Formatvorlagen in einer XSL-Notation (Extensible Stylesheet Language, XSL) definiert werden.
7. System zum Erzeugen eines anwendungsspezifischen Dokumentinhalts in einer Datenverarbeitungsumgebung mit Hilfe von Java Server Pages, das umfasst:
Mittel zum Abrufen eines JSP-Eingabedokuments, das eine Antwort auf eine Benutzeranforderung darstellt, wobei das Eingabedokument eine oder mehrere Transcodierungsdirektiven festlegt;
Mittel zum Ausführen einer JSP-Engine, die zum Abarbeiten einer oder mehrerer Transcodierungsdirektiven vorgesehen ist, wobei die JSP-Engine zudem umfasst:
Mittel zum Lokalisieren einer oder mehrerer Transcodierungsdirektiven im Eingabedokument, wobei jede der Transcodierungsdirektiven ein oder mehrere ersetzende Schlüsselwort/Wert-Paare enthält;
Mittel zum Festlegen eines Zielkontexts der Benutzeranforderung, wobei der Zielkontext ein oder mehrere Schlüsselwort/Wert-Paare des Kontexts enthält;
Mittel zum Vergleichen jedes einzelnen überschreibenden Schlüsselwort/Wert-Paars mit den Schlüsselwort/Wert-Paaren des Kontexts; und
Mittel zum Ersetzen eines Kontextwertes aus einem ausgewählten Paar der Schlüsselwort/Wert-Paare des Kontexts durch einen überschreibenden Wert aus einem ausgewählten Paar der überschreibenden Schlüsselwort/Wert-Paare, wenn das ausgewählte Kontextpaar und das ausgewählte überschreibende Paar einen übereinstimmenden Schlüsselwortwert aufweisen; und
Mittel, um die durch die Ersetzungseinrichtung geänderten Schlüsselwort/Wert-Paare des Kontexts zum Erzeugen einer angepassten Ausgabeversion des Eingabedokuments zu verwenden.
8. System gemäß Anspruch 7, wobei die Mittel zum Verwenden der Schlüsselwort/Wert-Paare des Kontexts zudem Mittel zum Ausführen eines Transcodierungsfilters umfassen.
9. System gemäß Anspruch 7, wobei das Eingabedokument zudem einen oder mehrere Transcodierungshinweise enthält, und wobei das System zudem Mittel umfasst, um die Transcodierungshinweise für eine weitere Verfeinerung der angepassten Ausgabeversion zu verwenden.
10. System gemäß Anspruch 9, wobei die Mittel zum Anwenden der Transcodierungshinweise zudem umfassen:
Mittel, um mit Hilfe der Transcodierungshinweise eine oder mehrere geeignete Formatvorlagen auszuwählen; und
Mittel zum Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
11. System gemäß Anspruch 9, wobei die Mittel zum Anwenden der Transcodierungshinweise zudem umfassen:
Mittel, um mit Hilfe der Transcodierungshinweise und der durch die Ersetzungsmittel geänderten Schlüsselwort/Wert- Paare des Kontexts eine oder mehrere geeignete Formatvorlagen auszuwählen; und
Mittel zum Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
12. System gemäß Anspruch 10 oder Anspruch 11, wobei die Formatvorlagen in einer XSL-Notation (Extensible Stylesheet Language, XSL) definiert werden.
13. Verfahren zum Erzeugen eines anwendungsspezifischen Dokumentinhalts in einer Datenverarbeitungsumgebung mit Hilfe von Java Server Pages, das folgende Schritte umfasst:
Abfragen eines JSP-Eingabedokuments, das eine Antwort auf eine Benutzeranforderung darstellt, wobei das Eingabedokument eine oder mehrere Transcodierungsdirektiven festlegt;
Ausführen einer JSP-Engine, die zum Abarbeiten einer oder mehrerer Transcodierungsdirektiven vorgesehen ist, wobei dieser Schritt folgende weitere Schritte einschließt:
Lokalisieren einer oder mehrerer Transcodierungsdirektiven im Eingabedokument, wobei jede der lokalisierten Transcodierungsdirektiven ein oder mehrere überschreibende Schlüsselwort/Wert-Paare enthält;
Festlegen eines Zielkontexts der Benutzeranforderung, wobei der Zielkontext ein oder mehrere Schlüsselwort/Wert-Paare des Kontexts enthält;
Vergleichen jedes einzelnen überschreibenden Schlüsselwort/Wert-Paars mit den Schlüsselwort/Wert- Paaren des Kontexts; und
Ersetzen eines Kontextwertes aus einem ausgewählten Paar der Schlüsselwort/Wert-Paare des Kontexts durch einen überschreibenden Wert aus einem ausgewählten Paar der überschreibenden Schlüsselwort/Wert-Paare, wenn das ausgewählte Kontextpaar und das ausgewählte überschreibende Paar einen übereinstimmenden Schlüsselwortwert aufweisen; und
Verwenden der in dem Ersetzungsschritt geänderten Schlüsselwort/Wert-Paare des Kontexts, um eine angepasste Ausgabeversion des Eingabedokuments zu erzeugen.
14. Verfahren gemäß Anspruch 13, wobei der Schritt zum Verwenden der Schlüsselwort/Wert-Paare des Kontexts zudem den Schritt zum Ausführen eines Transcodierungsfilters einschließt.
15. Verfahren gemäß Anspruch 13, wobei das Eingabedokument zudem einen oder mehrere Transcodierungshinweise enthält, und wobei das Verfahren zudem den Schritt einschließt, die Transcodierungshinweise für eine weitere Verfeinerung der angepassten Ausgabeversion zu verwenden.
16. Verfahren gemäß Anspruch 15, wobei der Schritt zum Anwenden der Transcodierungshinweise zudem folgende Schritte einschließt:
Verwenden der Transcodierungshinweise, um eine oder mehrere geeignete Formatvorlagen auszuwählen; und
Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
17. Verfahren gemäß Anspruch 15, wobei der Schritt zum Anwenden der Transcodierungshinweise zudem folgende Schritte einschließt:
Verwenden der Transcodierungshinweise und der durch den Ersetzungsschritt geänderten Schlüsselwort/Wert-Paare des Kontexts, um eine oder mehrere geeignete Formatvorlagen auszuwählen; und
Ausführen eines Transcodierungsfilters, der die ausgewählten Formatvorlagen auf das Eingabedokument anwendet.
18. Verfahren gemäß Anspruch 16 oder Anspruch 17, wobei die Formatvorlagen in Form einer XSL-Notation (Extensible Stylesheet Language, XSL) definiert werden.
DE10048940A 1999-10-13 2000-10-04 Erzeugen von Dokumenteninhalten durch Transcodierung mit Hilfe von Java Server Pages Ceased DE10048940A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/417,880 US6715129B1 (en) 1999-10-13 1999-10-13 Achieving application-specific document content by transcoding using Java Server Pages

Publications (1)

Publication Number Publication Date
DE10048940A1 true DE10048940A1 (de) 2001-04-26

Family

ID=23655742

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10048940A Ceased DE10048940A1 (de) 1999-10-13 2000-10-04 Erzeugen von Dokumenteninhalten durch Transcodierung mit Hilfe von Java Server Pages

Country Status (3)

Country Link
US (1) US6715129B1 (de)
CA (1) CA2317072C (de)
DE (1) DE10048940A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003088611A1 (de) 2002-04-12 2003-10-23 Siemens Aktiengesellschaft Repräsentation bool'scher ausdrücke zur spezifikation von filtern mittels xml

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
WO2001031885A2 (en) * 1999-10-22 2001-05-03 Nomadix, Inc. Gateway device having an xml interface and associated method
US6415887B1 (en) * 1999-11-26 2002-07-09 Cr Patents, Inc. Refractive wave muffler
EP1109124A3 (de) * 1999-12-17 2005-01-19 Matsushita Electric Industrial Co., Ltd. Verfahren und Gerät zur Bilddatenverarbeitung und darin verwendetem Computerprogrammerzeugnis
US20020087915A1 (en) * 1999-12-23 2002-07-04 Jesse Perla Error handler method and system for internet-based applications
US7293230B2 (en) * 2000-01-27 2007-11-06 American Express Travel Related Services Company, Inc. Information architecture for the interactive environment
US6704798B1 (en) * 2000-02-08 2004-03-09 Hewlett-Packard Development Company, L.P. Explicit server control of transcoding representation conversion at a proxy or client location
US20010047517A1 (en) * 2000-02-10 2001-11-29 Charilaos Christopoulos Method and apparatus for intelligent transcoding of multimedia data
US20020004803A1 (en) * 2000-04-07 2002-01-10 Oleg Serebrennikov Method and apparatus for the dynamic modification of relational information in electronic documents such as HTML pages and the like
US7111076B2 (en) * 2000-04-13 2006-09-19 Intel Corporation System using transform template and XML document type definition for transforming message and its reply
JP2001331416A (ja) * 2000-05-19 2001-11-30 Sharp Corp 電子メール送信装置、電子メール作成方法および電子メール作成プログラムを記録したコンピュータ読取可能な記録媒体
US7134073B1 (en) * 2000-06-15 2006-11-07 International Business Machines Corporation Apparatus and method for enabling composite style sheet application to multi-part electronic documents
US7076534B1 (en) * 2000-06-30 2006-07-11 Microsoft Corporation Server-side scripting that enables creation of customized documents for clients
US7003584B1 (en) * 2000-07-06 2006-02-21 International Business Machines Corporation Apparatus and method for accessing request header information using a transcoding filter servlet
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
JP2002062889A (ja) * 2000-08-14 2002-02-28 Pioneer Electronic Corp 音声合成方法
FR2813416B1 (fr) * 2000-08-31 2003-10-17 Canon Kk Procede et dispositif d'adaptation du contenu de documents sur un serveur d'informations
US20020138617A1 (en) * 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US7210100B2 (en) * 2000-09-27 2007-04-24 Eizel Technologies, Inc. Configurable transformation of electronic documents
US7613810B2 (en) * 2000-09-27 2009-11-03 Nokia Inc. Segmenting electronic documents for use on a device of limited capability
US6965947B1 (en) * 2000-10-06 2005-11-15 International Business Machines Corporation Method and apparatus for automated transcoder selection
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
CA2327197A1 (en) * 2000-11-30 2002-05-30 Ibm Canada Limited-Ibm Canada Limitee Protocol-independent jsp invocation
US7152205B2 (en) * 2000-12-18 2006-12-19 Siemens Corporate Research, Inc. System for multimedia document and file processing and format conversion
US20020078103A1 (en) * 2000-12-20 2002-06-20 Gorman William Phillip Wizard development kit
US7415669B1 (en) * 2001-02-27 2008-08-19 Open Invention Network Method and apparatus for viewing electronic commerce-related documents
US7036072B1 (en) 2001-12-18 2006-04-25 Jgr Acquisition, Inc. Method and apparatus for declarative updating of self-describing, structured documents
US7533187B1 (en) * 2001-04-05 2009-05-12 Marcellino Tanumihardja Wireless device detection
US20060095357A1 (en) * 2001-04-05 2006-05-04 Remote Sales LLC, a limited liability corporation of the State of Nevada Wireless payment processing
US7386589B1 (en) 2001-04-05 2008-06-10 Remote Sales, Llc Managed messaging platform with message response aggregation
CA2344074A1 (en) * 2001-04-17 2002-10-17 George Wesley Bradley Method and system for cross-platform form creation and deployment
US7565605B2 (en) * 2001-05-08 2009-07-21 Nokia, Inc. Reorganizing content of an electronic document
US7458016B1 (en) * 2001-05-18 2008-11-25 Oracle International Corporation Framework for declarative customization of web presentation formats
US7146560B2 (en) * 2001-05-18 2006-12-05 Xerox Corporation Systems and methods for managing identity information
US20040015832A1 (en) * 2001-05-25 2004-01-22 Michael Stapp Method and apparatus for generating source code
US20030004984A1 (en) * 2001-07-02 2003-01-02 Iscreen Corporation Methods for transcoding webpage and creating personal profile
US20030093565A1 (en) * 2001-07-03 2003-05-15 Berger Adam L. System and method for converting an attachment in an e-mail for delivery to a device of limited rendering capability
CN101060538B (zh) * 2001-07-12 2012-08-08 捷讯研究有限公司 用于为移动通信设备提供远程数据访问的系统和方法
US20030018661A1 (en) * 2001-07-19 2003-01-23 Darugar Parand Tony XML smart mapping system and method
US20030018668A1 (en) * 2001-07-20 2003-01-23 International Business Machines Corporation Enhanced transcoding of structured documents through use of annotation techniques
US7020683B2 (en) * 2001-07-26 2006-03-28 Hewlett-Packard Development Company, L.P. Method, server and system for dynamic server application adjustment
US7908628B2 (en) * 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
JP3937778B2 (ja) * 2001-09-14 2007-06-27 キヤノン株式会社 情報処理装置及び方法
US20030126554A1 (en) * 2001-10-19 2003-07-03 Behzadi Azad E. Document exchange among business-to-business (B2B) partners using meaningful extensible mark-up language (XML)
EP1451719B1 (de) * 2001-11-23 2009-05-13 Research In Motion Limited System und verfahren zum verarbeiten von dokumenten in erweitbarer markierungssprache (xml)
US20030145325A1 (en) * 2002-01-31 2003-07-31 Paul Finster Method and system for presentation of pre-generated programming information
US20030149981A1 (en) * 2002-01-31 2003-08-07 Paul Finster System and method for generating customized EPG data and EPG application programs
US6978316B2 (en) * 2002-03-27 2005-12-20 International Business Machines Corporation Messaging system and method with transcoder filtering of baseline message representations
US7447991B2 (en) * 2002-04-01 2008-11-04 Hewlett-Packard Development Company, L.P. Document agents
US7213200B2 (en) * 2002-04-23 2007-05-01 International Business Machines Corporation Selectable methods for generating robust XPath expressions
US7197699B2 (en) 2002-05-02 2007-03-27 International Business Machines Corporation Dynamic server page engines
US7406658B2 (en) * 2002-05-13 2008-07-29 International Business Machines Corporation Deriving menu-based voice markup from visual markup
US7162687B2 (en) * 2002-05-31 2007-01-09 Sun Microsystems, Inc. JSP tag libraries and web services
US7228496B2 (en) * 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
US20040012627A1 (en) * 2002-07-17 2004-01-22 Sany Zakharia Configurable browser for adapting content to diverse display types
US7716632B2 (en) * 2002-11-01 2010-05-11 Vertafore, Inc. Automated software robot generator
US7316003B1 (en) * 2002-12-18 2008-01-01 Oracle International Corp. System and method for developing a dynamic web page
US7219350B2 (en) 2003-03-19 2007-05-15 International Business Machines Corporation Dynamic server page meta-engines with data sharing for dynamic content and non-JSP segments rendered through other engines
US7386783B2 (en) * 2003-04-28 2008-06-10 International Business Machines Corporation Method, system and program product for controlling web content usage
US20040225749A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik Transformation of web site summary via taglibs
US20050108641A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Inline representation of steps in a multi-stepped process
JP2005332146A (ja) * 2004-05-19 2005-12-02 Internatl Business Mach Corp <Ibm> 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
US8307336B1 (en) * 2005-03-30 2012-11-06 Oracle America, Inc. Mechanism for enabling a set of output from a functional component to be presented on different types of clients
US8054496B1 (en) * 2005-07-13 2011-11-08 Adobe Systems Incorporated Previewing a compound document
US7861232B2 (en) * 2005-09-26 2010-12-28 Travelocity.Com Lp Systems, methods and computer program products for retrieving and parsing data at runtime
WO2007040642A1 (en) * 2005-09-27 2007-04-12 Teamon Systems, Inc. System for obtaining image using xslt extension and related method
US20070083599A1 (en) * 2005-09-27 2007-04-12 Teamon Systems, Inc. System for transforming application data using xslt extensions to render templates from cache and related methods
US20080059504A1 (en) * 2005-11-30 2008-03-06 Jackie Barbetta Method and system for rendering graphical user interface
US7987454B2 (en) * 2005-12-20 2011-07-26 International Business Machines Corporation System and method for emulating the processing of java server pages
US8316293B2 (en) * 2006-03-27 2012-11-20 Research In Motion Limited System and method for rendering presentation pages based on locality
US7818665B1 (en) * 2006-06-22 2010-10-19 Advanced Micro Devices, Inc. Method and system for schema version transform verification
US20080178075A1 (en) * 2007-01-22 2008-07-24 Fmr Corp. Configuration Data Store for Overriding a Web Application Configuration Involving Multiple Customers
US20080215966A1 (en) * 2007-03-01 2008-09-04 Microsoft Corporation Adaptive server-based layout of web documents
US20080288459A1 (en) * 2007-05-17 2008-11-20 Sang-Heun Kim Web page transcoding method and system applying queries to plain text
US8521754B2 (en) * 2009-10-28 2013-08-27 Yahoo! Inc. System and methods for web data transformation sourcing
WO2012061297A1 (en) * 2010-11-02 2012-05-10 Google Inc. Realtime synchronized document editing by multiple users for blogging
US8484218B2 (en) * 2011-04-21 2013-07-09 Google Inc. Translating keywords from a source language to a target language
CN110008480B (zh) * 2018-12-05 2020-12-11 中国科学院自动化研究所 基于原型记忆的小数据词表示学习方法与系统及相关设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787450A (en) * 1996-05-29 1998-07-28 International Business Machines Corporation Apparatus and method for constructing a non-linear data object from a common gateway interface
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US5970475A (en) 1997-10-10 1999-10-19 Intelisys Electronic Commerce, Llc Electronic procurement system and method for trading partners
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6138156A (en) * 1998-10-05 2000-10-24 International Business Machines Corporation Selecting and applying content-reducing filters based on dynamic environmental factors
US6457030B1 (en) * 1999-01-29 2002-09-24 International Business Machines Corporation Systems, methods and computer program products for modifying web content for display via pervasive computing devices
US6470349B1 (en) * 1999-03-11 2002-10-22 Browz, Inc. Server-side scripting language and programming tool
US6589291B1 (en) * 1999-04-08 2003-07-08 International Business Machines Corporation Dynamically determining the most appropriate location for style sheet application
US6519617B1 (en) * 1999-04-08 2003-02-11 International Business Machines Corporation Automated creation of an XML dialect and dynamic generation of a corresponding DTD
US6463440B1 (en) * 1999-04-08 2002-10-08 International Business Machines Corporation Retrieval of style sheets from directories based upon partial characteristic matching

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003088611A1 (de) 2002-04-12 2003-10-23 Siemens Aktiengesellschaft Repräsentation bool'scher ausdrücke zur spezifikation von filtern mittels xml
US8959231B2 (en) 2002-04-12 2015-02-17 Siemens Aktiengesellschaft Representation of Boolean expressions for specifying filters using XML

Also Published As

Publication number Publication date
US6715129B1 (en) 2004-03-30
CA2317072A1 (en) 2001-04-13
CA2317072C (en) 2005-04-26

Similar Documents

Publication Publication Date Title
DE10048940A1 (de) Erzeugen von Dokumenteninhalten durch Transcodierung mit Hilfe von Java Server Pages
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE60111376T2 (de) System und verfahren zur dokumentverarbeitung
DE10042601B4 (de) Sprache für XML-Server-Seiten
DE602004011952T2 (de) Verfahren und System zum Verbessern der Präsentation von HTML-Seiten in einem Internet-Zugriffsgerät
DE60112188T2 (de) Methode und system zur erzeugung strukturierter dokumente für verschiedene darstellungsweisen
DE60030181T2 (de) System, Verfahren und hergestellter Gegenstand zum Zugriff auf und Verarbeitung von Chipkartendaten
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE60116343T2 (de) Webserver
DE10236188B4 (de) Verfahren, System und Programmprodukt zum Bereitstellen eines Inhalts einer Quellwebsite an eine Verbraucherwebsite durch einen Bildumwandlungsdienst
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE60127247T2 (de) Netzwerkeinrichtung zur dokumentengültigkeitserklärung
DE19962192A1 (de) Verfahren und System zur Inhaltskonvertierung von elektronischen Daten für drahtlose Vorrichtungen
EP1258812A1 (de) Virtuelle Datenbank heterogener Datenstrukturen
DE19936314A1 (de) Verfahren und System zur Inhaltskonvertierung von elektronischen Daten unter Verwendung von Konvertierungspräferenzen
DE10236190A1 (de) Variables Datendrucken mit web-basierter Bilderzeugung
DE60017488T2 (de) Verfahren zum Steuern des Abrufs von Information mit einer vom Datentyp abhängigen Strategie um die Antwortzeit für die Verbraucher zu verringern
DE10236189A1 (de) Verfahren zum Zugreifen auf Bilderzeugungsinformationen auf einer Bedarfsbasis unter Verwendung einer Web-basierten Bilderzeugung
DE10115586A1 (de) Verfahren zur Erzeugung von Internetinformationen
WO2004046907A1 (de) System und verfahren zur automatisierten erzeugung von druckbaren dateien aus daten
DE10236182A1 (de) Webbasiertes Bilderzeugungssystem, das eine Einrichtung zum individuellen Zuordnen eines Inhalts liefert
WO2002008951A1 (de) System und verfahren zur generierung eines xml-basierten fehlermodells
EP1177667B1 (de) Netzwerk, interpreter für ein derartiges netzwerk und verfahren zum betreiben eines netzwerkes

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection