JP2006510955A - Context-independent framework system and method for managing and executing XML processing tasks - Google Patents
Context-independent framework system and method for managing and executing XML processing tasks Download PDFInfo
- Publication number
- JP2006510955A JP2006510955A JP2004528803A JP2004528803A JP2006510955A JP 2006510955 A JP2006510955 A JP 2006510955A JP 2004528803 A JP2004528803 A JP 2004528803A JP 2004528803 A JP2004528803 A JP 2004528803A JP 2006510955 A JP2006510955 A JP 2006510955A
- Authority
- JP
- Japan
- Prior art keywords
- xml
- xsa
- data
- management system
- request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
XML処理タスクの管理および事項のためのコンテキスト独立フレームワーク・システムを提供する。XML処理タスクを、ここではXSAエンジンと呼ぶモジュールによって、特殊目的XML系プログラミング言語で書かれた電子文書として用意された既定の1組の命令にしたがって実行する。命令集合は、3つのクラスの処理モジュールへの参照を収容し、その実行を制御する。3つのクラスの処理モジュールは、独立してXML処理サブタスクを遂行し、合同して1つのXML処理タスクを達成する。フレームワークは、いずれの特定の実行コンテキストからも切断されており、殆どあらゆる所望の用途において、標準化XML処理を適用できることを意味する。特殊目的プログラミング言語は、汎用プログラミング言語を用いた場合と比較して、XML処理タスクの開発の生産性を高め、カスタム・コードを書いて異なる形式のXML処理サブタスクにリンクしてXML処理タスクを遂行する必要性を低下させている。Provides a context independent framework system for management and matters of XML processing tasks. The XML processing task is executed by a module called an XSA engine in accordance with a predetermined set of instructions prepared as an electronic document written in a special purpose XML programming language. The instruction set contains references to three classes of processing modules and controls their execution. The three classes of processing modules independently perform XML processing subtasks and jointly accomplish one XML processing task. The framework is disconnected from any particular execution context, meaning that standardized XML processing can be applied in almost any desired application. Special purpose programming languages improve the productivity of developing XML processing tasks compared to using general-purpose programming languages, and write custom code to link different types of XML processing subtasks to perform XML processing tasks Has reduced the need to do.
Description
特殊目的プログラミング言語を用いた構造型データのコンテキスト独立処理を含むタスクの実行管理システム。 A task execution management system that includes context-independent processing of structured data using a special purpose programming language.
殆どのコンピュータ・アプリケーションは、あるタスク(複数のタスク)を遂行し、プロセスにおいてその人間のユーザのために楽な生活をもたらすように設計されている。コンピュータ・ネットワークおよびインターネットは、コンピュータ・アプリケーションによって生活を楽にする新しい機会を導入した。今日、会社または組織内におけるコンピュータは殆ど全て何らかのコンピュータ・ネットワークに接続されており、更にインターネットにも接続されているのが一般的である。 Most computer applications are designed to perform a certain task (s) and provide a comfortable life for that human user in the process. Computer networks and the Internet have introduced new opportunities to make life easier with computer applications. Today, almost all computers in a company or organization are connected to some kind of computer network, and more commonly connected to the Internet.
近年、拡張可能マークアップ言語(XML:Extensible mark-up language)が、あらゆる形式の構造化データを記述する共通の方法として出現した。XMLに対する広範な業界支援およびXML開発の遍在により、何らかの形式のXML対応をアプリケーションに設けるコンピュータ・アプリケーションの供給業者数が増加しつつある。ある新しいアプリケーションが提供するXML対応の一種に、ウェブ・サービスと呼ばれるものがある。ウェブ・サービスは、ソフトウェア・コンポーネントであり、予め規定したXMLインターフェースを、一般にインターネットを通じてアクセス可能な、そのデータおよびサービスに公開する(expose)。 In recent years, Extensible Mark-up Language (XML) has emerged as a common way to describe structured data of all forms. Extensive industry support for XML and the ubiquity of XML development is increasing the number of suppliers of computer applications that provide some form of XML support in their applications. One type of XML that a new application provides is called a web service. A web service is a software component that exposes a predefined XML interface to its data and services that are generally accessible over the Internet.
XMLは、電子出版の分野、特に出版が依頼に応じて行われ、コンピュータ・ネットワークを通じたデータの移動を伴う場合に、頻繁に用いられている。例えば、全てのブラウザ・アプリケーションは、ある形式のXMLまたはXML関連データ・フォーマット(例えば、HTML、XHTML、WML)を理解し、これらをその人間のユーザに提供する。他の種類の電子的表現に対する他の表現フォーマットは、XMLまたはXML系であっても、なくてもよいが、一般にXMLは出版アプリケーションには非常に適している。 XML is frequently used in the field of electronic publishing, particularly when publishing is done on request and involves the movement of data through a computer network. For example, all browser applications understand some form of XML or XML-related data format (eg, HTML, XHTML, WML) and provide these to their human users. Other representation formats for other types of electronic representations may or may not be XML or XML-based, but generally XML is very suitable for publishing applications.
電子業務は、XMLおよびインターネットが主要な役割を果たす別の分野である。電子業務は、多くの場合自動的な、電子業務トランザクションを既定の規則に応じた組織と呼び出し基準(invocation criteria)との間で行うことを伴う。EDIは、共通の非XML系電子業務フレームワークであるが、現在出現しつつある連続フレームワーク(例えば、BizTalk、ebXMLなど)は全て、XMLおよびインターネットに大きく頼っている。 Electronic business is another area where XML and the Internet play a major role. Electronic business often involves performing electronic business transactions automatically between organizations according to predefined rules and invocation criteria. EDI is a common non-XML-based electronic business framework, but all the continuous frameworks that are now emerging (eg, BizTalk, ebXML, etc.) rely heavily on XML and the Internet.
コンピュータ・ネットワーキングの全体的な採用にも拘わらず、多くのアプリケーションは、たとえネットワーク上で他のアプリケーションと自由に通信することが効果的であっても、これを行うことができない。殆どのアプリケーションは、ネットワーク上で外部アプリケーションからデータをインポートし、外部アプリケーションにデータをエクスポートする何らかの機能を有している。しかしながら、生憎、現行のアプリケーションの殆どは、一般に、企業固有のデータ・フォーマットおよびプロトコルを必要とし、アプリケーション間の、恐らくは有益な、通信を難しくしている。これが意味するのは、アプリケーション間の自動情報交換(統合)は多くの場合非常に望ましいが、特注であることが多いミドルウェア(またはインタープリタ・ソフトウェア)によってデータを導出しプロトコル間で変換することが必要であり、そうして初めてアプリケーションが自由に通信しデータ/情報を交換できるようになるということである。 Despite the overall adoption of computer networking, many applications cannot do this even if it is effective to communicate freely with other applications over the network. Most applications have some function of importing data from an external application on the network and exporting the data to the external application. Unfortunately, most current applications generally require enterprise-specific data formats and protocols, making communication between applications, possibly beneficial, difficult. This means that automatic information exchange (integration) between applications is highly desirable in many cases, but data must be derived and converted between protocols by middleware (or interpreter software), which is often custom-made. Only then will applications be able to freely communicate and exchange data / information.
これに関連して、組織が統合統一インターフェースを1つよりも多いバック・エンド・アプリケーション(back-end application)にアクセスさせたいときに、統合化の問題が起こることが多い。このようなアプリケーションは自由に通信しない場合が多いので、単一のアプリケーションが、多くのシステムからのデータに対するビュー(view)を備えたインターフェースを提供することができない。この問題に対する唯一の解法は、ポータル・ソフトウェア・ミドルウェアを導入することであるが、このためには、必要とされるシステム全てに通信することができ、全てのデータを適宜融合かつ統一し、次いで全てのアプリケーションからのデータ/サービスに対して統合化したビューを備えた、一貫性のあるインターフェースを設ける必要がある。しかしながら、ポータル・ソフトウェアは、多くのシステムからのデータ複製に頼るという欠点を有することがときどきある。 In this regard, integration problems often arise when an organization wants to access an integrated unified interface to more than one back-end application. Because such applications often do not communicate freely, a single application cannot provide an interface with views for data from many systems. The only solution to this problem is to introduce portal software middleware, but this can be communicated to all the required systems, and all data is fused and unified as appropriate, then There is a need to provide a consistent interface with integrated views for data / services from all applications. However, portal software sometimes has the disadvantage of relying on data replication from many systems.
電子出版においては、別の統合化問題も発生する。多くのアプリケーションの表現能力には限界があるので、そのインターフェースに対する人間の双方向処理を1種類のメディアのみでしか提供できない場合が多い。これが意味するのは、新たな表現の必要性が生じた場合、アプリケーションのインターフェースを拡張するためには、特注であることが多いミドルウェア・ソフトウェアの導入が必要となるということである。 Another integration issue arises in electronic publishing. Since many applications have limited representation capabilities, human interaction with the interface can often be provided with only one type of media. This means that if new expression needs arise, middleware software, which is often custom-made, needs to be introduced in order to extend the application interface.
また、これに関連して、多くの電子表現フォーマット(例えば、AdobeのPDF文書、MSWordの文書)には、コンテンツ・データと表現データとの間に殆どまたは全く分離がないという事実の中に、別の表現の問題がある。これが意味するのは、新たな表現の必要性が生じた場合、既存の文書を新たなフォーマットに適合化することが困難または不可能であるということである。 Also related to this is the fact that many electronic representation formats (eg Adobe PDF documents, MSWord documents) have little or no separation between content data and representation data. There is another expression problem. This means that it is difficult or impossible to adapt an existing document to a new format when a need for a new representation arises.
以上の問題の一部は、組織が彼らの古いアプリケーションを新しいものと交換すれば、救済することができ、あるいは解消できることさえある。しかしながら、多くの組織は、企業アプリケーション統合(Enterprise Application Integration)を導入することによって問題を軽減しようとしてきた。これは、大抵の場合、ミドルウェアをインストールして、アプリケーションの既存のインターフェースを改良または拡張するか、あるいはアプリケーションが他のアプリケーションと通信できるようにすることによって、既存のアプリケーションの有効範囲をいくらか拡張できるようにすることを伴う。 Some of these problems can be remedied or even eliminated if an organization replaces their old application with a new one. However, many organizations have sought to mitigate the problem by introducing Enterprise Application Integration. This can in some cases extend the scope of an existing application by installing middleware, improving or extending the application's existing interface, or allowing the application to communicate with other applications. Accompanied by.
XMLは、構造化データに頼るあらゆるアプリケーションに非常に適している。XMLの独特な特性および例外的に広い業界の対応によって、これは統合化、電子業務および出版の用途に非常に有用であることがわかっている。多くの分析者は、XMLには、アプリケーションが実際に互いに通信しあうことを可能にし、したがってそのユーザの生活を一層楽にする見込みがあることを確信している。実際には、これは、XMLが解決策に関与する場合の統合化コストの低下を意味する。少なくともXMLおよびXML関連技術が統合化、電子業務および出版ソフトウェアに今日広くそしてしかるべく理由で用いられていることは、明白である。 XML is very suitable for any application that relies on structured data. The unique characteristics of XML and the exceptional wide industry response have proved to be very useful for integration, electronic business and publishing applications. Many analysts are convinced that XML allows applications to actually communicate with each other, thus making it easier to make their users' lives easier. In practice, this means lower integration costs when XML is involved in the solution. It is clear that at least XML and XML-related technologies are widely used today for integration and electronic business and publishing software for a reason.
この分野の専門家の殆どは、XLMおよびXML関連技術を利用することは、異種システムの統合化、電子業務および出版に用いる必要があるアプリケーションのような、ある種のアプリケーションを開発するときに意味があると確信している。しかしながら、これらのアプリケーションにおけるその使用は、殆ど標準化されていないか、またはその場限りであることが多い。現状については、ある組織は情報処理能力があってXMLを利用しより良いアプリケーションを構築しているが、ある組織はそうしていないと言うことによって、記述することができると思われる。これらの殆どは、既存のXML関連の仕様書が何をするのか彼らに指示しないと、その場限りでそれを用いるに過ぎない。XML処理の世界は、狭く定義されたタスクのための小さなモジュールで満たされているが、これらを一緒に統一して管理する、明確なフレームワークが欠けている。これが意味するのは、現行のXMLに基づく解決策の殆どは、ある程度、その場限りのプログラミングの「切り貼り」(glue)に頼って、異なるXML系モジュールを共にリンクしているということである。 For most experts in this field, utilizing XML and XML-related technologies means when developing certain types of applications, such as those that need to be used for heterogeneous system integration, electronic work and publishing. I am sure there is. However, their use in these applications is often little standardized or ad hoc. As for the current situation, some organizations have information processing capabilities and use XML to build better applications, but some organizations may be able to describe it by saying that they do not. Most of these will only be used on an ad hoc basis unless you tell them what the existing XML-related specifications will do. The world of XML processing is filled with small modules for narrowly defined tasks, but lacks a clear framework for managing them together. This means that most current XML-based solutions rely, in part, on ad hoc programming “glue” to link different XML-based modules together.
このため、XML処理タスクの管理および実行のためのフレームワークの方法およびシステムを影響することが望ましい。更に、このようなフレームワークは、あらゆる特定的な実行コンテキストからも切断されており、XML処理の管理フレームワークに価値があると思われる全ての場合を扱うことができるように十分な柔軟性があることは重要である。 Thus, it is desirable to influence the framework methods and systems for managing and executing XML processing tasks. In addition, such frameworks are disconnected from any specific execution context, and are flexible enough to handle all cases where the XML processing management framework seems valuable. It is important to be.
更に、このような管理フレームワークは、各々が既存のXML処理規格または仕様によって支配されている多くの異なる形式のXML処理タスクを共に継ぎ合わせるために汎用プログラム言語を用いる必要性を減少または解消するために、XML処理タスクを定義する特殊目的プログラミング言語に頼ることが好ましい。このようなXML処理タスク用特殊目的プログラム言語によって、開発者はXML処理タスクを定義しつつ、汎用プログラミング言語で可能なよりも遥かに生産性を向上することができる。 In addition, such a management framework reduces or eliminates the need to use a general purpose programming language to splice together many different types of XML processing tasks, each governed by an existing XML processing standard or specification. Therefore, it is preferable to rely on special purpose programming languages that define XML processing tasks. Such a special purpose programming language for XML processing tasks allows developers to improve productivity far more than is possible with general purpose programming languages while defining XML processing tasks.
統合、出版、電子業務、または他の分野においてXML処理が有効な場合に伴う問題の一部は、本発明の好適な実施形態が克服または軽減する。XML処理タスクの管理および実行のためのフレームワークの方法およびシステムを提供する。このフレームワークは、いずれの特定の実行コンテキストからも切断することができ、管理フレームワークを、XML処理を必要とするアプリケーション内であればどこにでも適用できることを意味する。 Some of the problems associated with XML processing being useful in integration, publishing, electronic work, or other areas are overcome or mitigated by the preferred embodiment of the present invention. A framework method and system for managing and executing XML processing tasks is provided. This framework can be disconnected from any specific execution context, meaning that the management framework can be applied anywhere within an application that requires XML processing.
本発明は、サーバ側XMLアプリケーション、即ち、XML処理が重要な役割を担う、または重要な役割を担い得るあらゆるサーバ側コンピュータ・アプリケーションに関する。XMLアプリケーションは、企業アプリケーション統合、電子出版、電子業務処理のような分野においては一般的である。更に特定すれば、本発明は、処理タスクを定義する特殊目的プログラミング言語を基にしたXML処理タスクの管理、定義、および実行のための、標準化し構造化したフレームワークのための方法およびシステムに関する。 The present invention relates to server-side XML applications, ie, any server-side computer application in which XML processing plays an important role or can play an important role. XML applications are common in fields such as enterprise application integration, electronic publishing, and electronic business processing. More particularly, the present invention relates to a method and system for a standardized structured framework for managing, defining, and executing XML processing tasks based on a special purpose programming language that defines processing tasks. .
更に、本発明の好適な一実施形態によれば、XML管理フレームワークは、異なるXML処理サブタスクを互いにリンクする目的のために設計された特殊目的プログラミング言語を拠り所とし、XML処理の技術分野では周知の規格、方法または使用によって各サブタスクを統括する。特殊目的プログラミング言語は、XML処理タスクの管理のために特定的に設計されており、XML処理タスクの開発者が、汎用プログラミング言語で可能なよりも、生産性を高めることを可能とし、XML処理タスクを遂行するために異なるタイプのXML処理サブタスクをリンクするカスタム・コードを書く必要性を軽減する。有用なアプリケーションの例は、業務メッセージの変換および配信、異種システムの統合、およびウェブ出版である。 Furthermore, according to a preferred embodiment of the present invention, the XML management framework relies on a special purpose programming language designed for the purpose of linking different XML processing subtasks together and is well known in the technical field of XML processing. Control each subtask by standard, method or use. Special purpose programming languages are specifically designed for the management of XML processing tasks, allowing developers of XML processing tasks to be more productive than possible with general-purpose programming languages. Alleviates the need to write custom code that links different types of XML processing subtasks to accomplish the task. Examples of useful applications are business message transformation and delivery, heterogeneous system integration, and web publishing.
本発明の一態様は、XML処理サブタスクの管理および連結のために特定して設計した特殊目的プログラミング言語で書かれた電子文書として用意された既定の1組の命令にしたがって、XML処理タスクを定義し実行する方法およびシステムを含む。ここで、各サブタスクは、周知のXML関連規格、仕様または方法によって調整する。特殊目的プログラミング言語で書かれた電子文書における特定の命令集合によって定義された各XML処理タスクは、ここでは、XMLサービス・アクションまたは単にXSAと呼ばれることが多い。XSA−sを実行可能なソフトウェア・モジュールを、XSAエンジンと呼ぶ。XMLサービス・アクション電子文書をどのように作成するかを定義し、XML処理タスクを管理するように設計されている特殊目的プログラミング言語のフォーマットおよびシンタックスは、高精度に定義することができ、特殊目的プログラミング言語のシンタックスを、XMLに基づくマークアップに指定することが好ましい。 One aspect of the present invention defines an XML processing task according to a predefined set of instructions prepared as an electronic document written in a special purpose programming language specifically designed for managing and linking XML processing subtasks. And a method and system for performing. Here, each subtask is adjusted according to a well-known XML-related standard, specification or method. Each XML processing task defined by a specific set of instructions in an electronic document written in a special purpose programming language is often referred to herein as an XML service action or simply XSA. A software module capable of executing XSA-s is called an XSA engine. Special purpose programming language formats and syntax that are designed to define how XML service action electronic documents are created and to manage XML processing tasks can be defined with high precision and special The target programming language syntax is preferably specified in markup based on XML.
この方法は、外部要求によってシステムを呼び出し、特定の1組の処理命令、即ち、特殊目的プログラミング言語で書かれた特定のXSA電子文書を実行することを含む。呼び出しは、実行するXSAがどれかという指示を含み、更に呼び出しの発信元および目的に関するその他の情報も含むことができる。呼び出しを受けると、XSAエンジンは、該当するXSA電子文書を突き止め、その中に定義されている命令を実行しようとし、適宜、実行した特定のXSA内にある命令に従って応答を返す。 The method includes invoking the system with an external request and executing a specific set of processing instructions, ie, a specific XSA electronic document written in a special purpose programming language. The call includes an indication of which XSA to perform, and can also include other information regarding the origin and purpose of the call. Upon receipt of the call, the XSA engine locates the appropriate XSA electronic document, attempts to execute the instructions defined therein, and returns a response according to the instructions within the particular XSA executed as appropriate.
本発明の好適な実施形態によれば、XML管理フレームワークおよび特殊目的プログラミング言語は、3つの異なるクラスのXML処理モジュールを基本とし、これらが合同して、更に本発明の別の部分と共に、特定のXSAで定義したXML処理タスクを遂行する。特殊目的プログラミング言語にしたがって書かれた各XSAは、一般に、これら3つのクラスのXML処理モジュールの各々の少なくとも1つを参照し、その機能を制御する。XMLサービス・アクションは、これら3タイプのモジュールがどのように相互作用し、一体となってXML処理タスクを遂行するかを定義し、修正し、制御する。3タイプのモジュールを、ここでは、生成器、変換器、およびシンクと呼ぶ。殆どのXML処理サブタスクは、正しく定義されているか、またはXML処理の技術分野では周知であり、サブタスクの生成、サブタスクの変換/操作、またはサブタスクの配出(sink)に分類することができる。 In accordance with a preferred embodiment of the present invention, the XML management framework and special purpose programming language are based on three different classes of XML processing modules, which together are specified together with another part of the present invention. The XML processing task defined in XSA is performed. Each XSA written according to a special purpose programming language generally references at least one of each of these three classes of XML processing modules and controls its function. The XML service action defines, modifies, and controls how these three types of modules interact and work together to perform XML processing tasks. The three types of modules are referred to herein as generators, converters, and sinks. Most XML processing subtasks are either correctly defined or are well known in the XML processing art and can be categorized as subtask generation, subtask transformation / operation, or subtask sink.
いずれの所与のXML処理タスクにおいても、いずれのXSAによって定義されても、生成器モジュールは、XMLソース・データを生成することを担当し、変換器モジュールは、XMLソース・コンテンツを変換または操作して異なるのXMLデータを形成する(処理したXMLデータ)ことを担当し、最後にシンク・モジュールは処理したXMLデータを解釈し、これに反応し、またはこれを配信することを担当する。生成器は、XMLソース・コンテンツを生成し、一般に、外部システムにおいて発生したデータを公開する。生成器の一例は、外部システム、例えば、JDBC準拠のデータベースと通信を行い、更なるXML処理のために用意されている、XMLフォーマットで外部システムによって提供されるコンテンツまたはサービスに公開する。各生成器は、それ自体のXMLシンタックスを定義し、それが通信するバック・エンド・システム(複数のバック・エンド・システム)が提供するコンテンツまたはサービスに、固有の様式で(natural way)公開する。 In any given XML processing task, defined by any XSA, the generator module is responsible for generating XML source data, and the converter module converts or manipulates the XML source content. In this way, it is responsible for forming different XML data (processed XML data), and finally the sink module is responsible for interpreting, responding to, or delivering the processed XML data. The generator generates XML source content and generally exposes the data generated in the external system. An example generator communicates with an external system, such as a JDBC compliant database, and publishes it to content or services provided by the external system in an XML format that is prepared for further XML processing. Each generator defines its own XML syntax and is published in a natural way to the content or service provided by the back end system (multiple back end systems) with which it communicates To do.
XMLソース・データを更に処理、解釈、または操作して、特定のXSAに定義されている、要求を受けたXML処理タスクを実行するために、1つ以上の変換器がXMLコンテンツを総合的に変換、解釈、有効性判断、反応、または何らかの方法で操作して、一般に異なるの(または少なくとも検査し有効性が認められた)XMLデータが得られる。これを、ここでは、処理済XMLデータと呼ぶ。変換器は、XMLデータを入力および出力双方として有するモジュールであり、多くの変換器を直列に用いることができる。変換器の一例は、拡張可能スタイルシート言語変換(XSLT)で書かれた所与のスタイルシートにしたがってXMLを変換する、ソフトウェア・モジュールである。その目的に応じて、各タイプの変換器が、生成器または別の変換器から受け取ったそのXML入力データに制約を課することも、課さないこともある。また、各変換器は、処理済XML出力データの形式を定義する。 One or more converters comprehensively process the XML content to further process, interpret, or manipulate the XML source data to perform the requested XML processing tasks defined in the specific XSA. Transformation, interpretation, validity determination, response, or manipulation in some way generally yields different (or at least examined and validated) XML data. This is referred to herein as processed XML data. The converter is a module having XML data as both input and output, and many converters can be used in series. An example of a converter is a software module that converts XML according to a given stylesheet written in Extensible Stylesheet Language Translation (XSLT). Depending on its purpose, each type of converter may or may not impose constraints on its XML input data received from the generator or another converter. Each converter also defines the format of the processed XML output data.
いずれの所与のXSAで定義したXML処理タスクの実行でも、最終部分は、シンク・モジュールを用いて行われる。シンク・モジュールは、変換器から受け取った、処理済XMLデータで何を行うかを定義する。異なるタイプのシンクが、XSAの目的に応じて、異なるタスクを実行する。共通のタスクの1つは、XMLフォーマットでないことが多い、処理済XMLデータを何らかの方法で公表(publish)し、XSAの実行を要求したクライアントに返送することである。シンクの中には、受け取ったXMLデータを解釈し、例えば、何らかのアクションを実行することによって、これに反応するか否か、そしてどのように反応するか判断するものもある。シンク出力の一例は、HTMLまたはWMLのようなそのXML入力データを出力し、別の例は、それをPDF電子文書として公表する。他のタイプのシンクには、得られたXMLをインターネットを通じてXML業務文書として配信するものもあり、更に別のシンクには、受け取ったXML内の情報を用いて、タスクを実行するか否か判断するものもある。タスクとは、通知の目的のための電子メール送信、データベースへのデータ書き込み、または統合化の目的のための別のシステムへのXMLの送信等である。 In the execution of the XML processing task defined in any given XSA, the final part is done using the sink module. The sink module defines what to do with the processed XML data received from the converter. Different types of sinks perform different tasks depending on the purpose of the XSA. One common task is to publish processed XML data in some way, often not in XML format, and send it back to the client that requested the execution of XSA. Some sinks interpret the received XML data and determine whether and how to react, for example, by performing some action. One example of a sink output outputs its XML input data, such as HTML or WML, and another example publishes it as a PDF electronic document. Some other types of sinks distribute the obtained XML as XML business documents over the Internet, and yet another sink uses information in the received XML to determine whether to execute a task. Some will do. Tasks include sending an email for notification purposes, writing data to a database, or sending XML to another system for integration purposes.
前述のように、本発明は、好ましくはXMLサービス・アクション仕様にしたがって特殊目的プログラミング言語で書かれた、XMLサービス・アクション電子文書の実行システムを含む。XMLサービス・アクション仕様は、本発明の主旨におけるXSAの有効なシンタックスを正確に定義する。本システムは、いずれのアプリケーション特定コンテキストからも切断され、汎用インターフェースのみを設けた、XSAエンジンを含む。本発明の好適な実施形態によれば、本システムは、ここではアダプタと呼ぶ、ソフトウェア・モジュールを拠り所として、特定のアプリケーション・コンテキストに適応する。アダプタは、ネットワーク・デバイス、ワイヤレス・デバイス、またはその他のコンピュータ・システムというような、種々のタイプの外部クライアントからの、特定のXSA−sの実行要求または呼び出しを受け付けることを担当する。アダプタは、外部クライアントとの通信全てを扱うことによって全てのアプリケーションまたはコンテキスト特定の通信をカプセル化し、全体的に特定のタイプの通信プロトコルに適応し、特定のXSAの実行を要求することによって、その汎用インターフェースを通じてXSAエンジンと双方向処理を行うソフトウェア・モジュールである。したがって、アダプタ・コンポーネントは、汎用XSAエンジンを、特定のアプリケーション・コンテキストに適応させる。XSA実行要求毎にアダプタ・コンポーネントを通じて要求が到達すると、アダプタ・コンポーネントは、XSAが実行するコンテキストを定義する。これは、特定のXML処理タスクに相応しいと思われる、計算アプリケーションの実世界から、XSAエンジンへのリンクを設ける。XSAエンジンが提供する汎用インターフェースを通じて、アダプタはXSAエンジンに、着信した要求に関する情報を提供することができる。この着信要求は、恐らくは、XML系フォーマットまたはパラメータ名称−値対の形式となっている。XSAの実行が終了すると、当該特定のXSAに定義されている処理の結果に基づいて、XSAエンジンを呼び出したアダプタ・コンポーネントを通じて、しかるべき応答を要求基外部クライアントに返送するのが一般的である。特定の生成器、変換器、またはシンクは、どの特定のタイプのアダプタがこれらと適合性があるかについて、制約を課する場合もある。 As described above, the present invention includes an execution system for an XML service action electronic document, preferably written in a special purpose programming language according to the XML service action specification. The XML service action specification precisely defines the effective syntax of XSA in the spirit of the present invention. The system includes an XSA engine that is disconnected from any application specific context and provides only a general purpose interface. According to a preferred embodiment of the present invention, the system adapts to a specific application context based on a software module, referred to herein as an adapter. The adapter is responsible for accepting specific XSA-s execution requests or calls from various types of external clients, such as network devices, wireless devices, or other computer systems. The adapter encapsulates all application or context specific communications by handling all communications with external clients, and adapts to a specific type of communication protocol as a whole and requires the execution of a specific XSA to A software module that performs bidirectional processing with the XSA engine through a general-purpose interface. Thus, the adapter component adapts the generic XSA engine to a specific application context. When a request arrives through the adapter component for each XSA execution request, the adapter component defines a context for the XSA to execute. This provides a link from the real world of computing applications to the XSA engine that may be appropriate for a particular XML processing task. Through the general-purpose interface provided by the XSA engine, the adapter can provide the XSA engine with information about incoming requests. This incoming request is probably in XML format or parameter name-value pair format. When the execution of XSA ends, it is common to return an appropriate response to the requesting external client through the adapter component that invoked the XSA engine based on the result of the processing defined in that particular XSA. . A particular generator, converter, or sink may impose constraints on which particular type of adapter is compatible with them.
いずれのXSAも、種々の方法で特定のタイプの生成器、変換器およびシンクを用いて、所望のXML処理タスクを遂行することができる。XSAにおいて定義されているXML処理は、例えば、XML電子文書の合併または分割によって、1つよりも多い実行のスレッドにおいて行われる場合がある。XSAエンジンは、多くの異なるタイプのソフトウェア・モジュールを拠り所として、前述の3つのクラスのXML処理モジュールを用いて、XMLデータの柔軟で精巧な処理および流れの可能性を実現する。これらのソフトウェア・モジュールは、エラーの扱い、有効性判断、特定のXSA実行に関連するメタ・データへのアクセス、セッション制御、ユーザ管理、認証、許可、およびその他の同様の補助機能というような、補助または支援機能を設けることができる。 Any XSA can perform a desired XML processing task using a particular type of generator, converter and sink in a variety of ways. XML processing defined in XSA may be performed in more than one thread of execution, for example by merging or splitting XML electronic documents. The XSA engine relies on many different types of software modules to implement the flexible and sophisticated processing and flow possibilities of XML data using the three classes of XML processing modules described above. These software modules include error handling, validity determination, access to metadata related to specific XSA execution, session control, user management, authentication, authorization, and other similar auxiliary functions, such as: An auxiliary or support function can be provided.
XMLソフトウェア・アクションは、大きく異なるアプリケーションにおいて大きく異なる計算タスクを遂行する際に用いることができる。用いるシステム・コンポーネントは、更に多くてもまたは少なくても可能であり、本発明は、前述のシステム・コンポーネントには限定されない。本発明は、必ずしも、いずれのソフトウェア・コンポーネントの存在も必要としない。これは、明確なXML処理サブタスクの管理またはリンクのためのみに定義され、特殊目的プログラミング言語で書かれたXMLサービス・アクション電子文書によって定義された、XML処理タスクの実行方法およびシステムについて記載する。これは、ここに記載される抽象的処理モジュールの具体的な実現例を用いて、その所望の機能を遂行する。本発明はここでは常にXML処理タスクに関して記載されているが、本方法およびシステムは、必ずしもXMLフォーマットではない、構造化データのあらゆる処理にも等しく適用することができる。実世界において有用であるために、制御するXMLサービス・アクション電子文書のフォーマットおよび処理モジュールを正確に定義する、特殊目的プログラミング言語に対する指定に応じた特定のソフトウェア・モジュールおよびコンポーネントの実現例を設けなければならない。 XML software actions can be used to perform very different computational tasks in very different applications. More or fewer system components may be used and the present invention is not limited to the system components described above. The present invention does not necessarily require the presence of any software component. This describes an XML processing task execution method and system defined only for the management or linking of explicit XML processing subtasks and defined by XML service action electronic documents written in a special purpose programming language. This performs its desired function using a specific implementation of the abstract processing module described herein. Although the present invention has always been described herein in terms of XML processing tasks, the method and system are equally applicable to any processing of structured data that is not necessarily in XML format. In order to be useful in the real world, specific software modules and component implementations must be provided, depending on the specification for the special purpose programming language, that precisely defines the format and processing modules of the XML service action electronic document to be controlled. I must.
本発明の好適な実施形態によれば、各XMLサービス・アクション電子文書は、特定のシンタックスで定義されるべき、特殊目的プログラミング言語で書かれており、XML系であってもなくてもよい。XSAエンジンは、XSA電子文書を解釈し実行する役割を担う。XSA電子文書は、動的な生成によってXSAエンジンが利用でき、あるいは要求元クライアントまたはコンピュータ・システムにおけるいずれかのストレージから入手できる。本発明の主旨で書かれた仕様に従って、有効な特殊目的プログラミング言語で書かれたXMLサービス・アクション電子文書を実行可能なシステムは、通常のコンピュータ・システムにおいて実施することができる。 According to a preferred embodiment of the present invention, each XML service action electronic document is written in a special purpose programming language that should be defined in a specific syntax and may or may not be XML-based. . The XSA engine is responsible for interpreting and executing XSA electronic documents. The XSA electronic document can be used by the XSA engine by dynamic generation, or it can be obtained from any storage in the requesting client or computer system. A system capable of executing XML service action electronic documents written in a valid special purpose programming language in accordance with the specification written in the gist of the present invention can be implemented in a conventional computer system.
XSAフレームワークは、いずれの特定の実行コンテキストとも切断され、標準化され、構造化された柔軟で精巧な手段を提供し、出版、業務メッセージ配信、企業アプリケーション統合、および構造化データを処理し操作することに価値があるその他の分野において、多くの問題を一層正しく簡単に解決することができる。 The XSA framework provides a flexible, elaborate means that is disconnected, standardized, structured, and processed from any specific execution context to process and manipulate publishing, business message delivery, enterprise application integration, and structured data In other areas of particular value, many problems can be solved more correctly and easily.
XSAフレームワークは、既存の技術に対して相補的である。これは、XML処理タスクの管理用フレームワークであって、いずれの特定のタイプの既存のXML処理技術に対する代用ではない。例えば、これは、XML文書をどのように変換するのか定義せず、特定的な実施形態は、その目的のためにいずれの既存の方法でも用いることができる。XML処理タスクの管理に特定して設計された上位特殊目的プログラミング言語を要求し利用することによって、汎用プログラミング言語でカスタム・コードを作成し、XML処理サブタスクを互いに張り合わせる必要性を低下または解消さえする。ここで、各サブタスクは、周知のXML処理規格、仕様または方法によって調整される。該当する類似物をあげるとすれば、次のようなものであろう。XSLTエンジン、XML実証器(validator)、HTML−XML変換器、XML直列化器、または特定のタイプのXML処理タスクを実行するその他のあらゆるモジュールを、プログラムであると見なす。すると、XSAエンジンは、これらのプログラム間の相互動作を調整するオペレーティング・システムに似ている。XSAエンジンは、特殊目的プログラミング言語で書かれたXSA電子文書を解釈し実行することができ、ここに記載されているXSAフレームワークの一般的な主旨の実現例と見なすことができ、したがって、XSAフレームワークは、オペレーティング・システム・ファミリまたは規格に類似するものと考えることができる。 The XSA framework is complementary to existing technology. This is a framework for managing XML processing tasks and is not a substitute for any particular type of existing XML processing technology. For example, this does not define how to transform an XML document and the specific embodiment can be used in any existing way for that purpose. By requesting and using a high-level special-purpose programming language specifically designed for managing XML processing tasks, you can create custom code in a general-purpose programming language and even reduce or eliminate the need to stick XML processing subtasks together To do. Here, each subtask is adjusted according to a well-known XML processing standard, specification or method. The following are the similar ones. An XSLT engine, XML validator, HTML-XML converter, XML serializer, or any other module that performs a particular type of XML processing task is considered a program. The XSA engine then resembles an operating system that coordinates the interaction between these programs. The XSA engine can interpret and execute XSA electronic documents written in a special purpose programming language and can be viewed as a general implementation of the XSA framework described herein, and thus XSA A framework can be considered similar to an operating system family or standard.
本発明の特定的な一好適実施形態では、本方法およびシステムは、ワイヤレス・デバイスに、当該デバイスが理解することができるフォーマットの電子文書内の情報を要求することを可能にするために用いられる。デバイスとの通信が可能な適したアダプタ(例えば、HTTPアダプタ)を通じて、特定のXSAを呼び出してXSAエンジン内で実行することができる。このXSA内に定義されているXML処理タスクは、バック・エンド・システムからデータを検索し、特定のタイプの生成器を用いてそれをXMLフォーマットに変換し、変換器を用いて、それを要求元デバイスに適したフォーマットに変換し、最後にシンクがそれをアダプタを通じてデバイスに配信することができる。 In one particular preferred embodiment of the present invention, the method and system are used to allow a wireless device to request information in an electronic document in a format that the device can understand. . Through a suitable adapter capable of communicating with the device (eg, an HTTP adapter), a specific XSA can be invoked and executed within the XSA engine. The XML processing task defined in this XSA retrieves data from the back-end system, converts it to XML format using a specific type of generator, and requests it using a converter It can be converted to a format suitable for the original device and finally the sink can deliver it to the device through the adapter.
例えば、本発明の好適な実施形態によれば、ワイヤレス・デバイスから、ハイパーテキスト転送プロトコル(HTTP)準拠のブラウザ・ソフトウェアを用いて特定のURLに誘導することによって、現在の天候に関する情報を要求することができる。XSAエンジンは、天候データ源から得た情報からどのように所望の応答を派生するか定義する、特定のXSA電子文書にアクセスし、それを要求元のデバイスにHTTPアダプタを通じて配信することができる。この要求は、HTTPを通じて要求元クライアントと通信することができるHTTPアダプタが受信する。次いで、アダプタはXSAエンジンを呼び出し、要求された特定のXSAの実行を開始する。このXSAは、天候データベースに接続することができる、特定のタイプの生成器への参照を収容している。XSA内にある命令は、生成器に天候データを検索するように命令し、次いでこれをXMLソース・データに変換する。XSAは、更に、1つ以上の特定のタイプの変換器(例えば、XSLTを用いてXMLを変換する変換器)への参照、およびこれに対する命令も収容することができ、XMLソース・データを変換して、要求元デバイスにおけるブラウザによる表示に適したワイヤレス・マークアップ言語(WML)フォーマットのXML電子文書を形成することができる。最後に、XSAは、WML電子文書を要求元デバイスにHTTPアダプタ・モジュールを通じて配信することができる、特定のタイプのシンクへの参照、およびこれに対する命令も収容している。問題の特定のXSA電子文書は、特殊目的プログラミング言語で書かれており、XSAプログラミング言語仕様において正確に定義することができる。しかしながら、本発明は、HTTP通信、ワイヤレス・デバイス、あるいはデータベースに限定されるのではない。その他のデータ、プロトコル、ネットワーク・デバイス、または外部システムも用いることができる。 For example, in accordance with a preferred embodiment of the present invention, request information about current weather from a wireless device by navigating to a specific URL using hypertext transfer protocol (HTTP) compliant browser software. be able to. The XSA engine can access a specific XSA electronic document that defines how the desired response is derived from the information obtained from the weather data source and deliver it to the requesting device through an HTTP adapter. This request is received by an HTTP adapter that can communicate with the requesting client via HTTP. The adapter then invokes the XSA engine and begins executing the requested specific XSA. This XSA contains a reference to a particular type of generator that can be connected to a weather database. An instruction in XSA instructs the generator to retrieve the weather data, which is then converted to XML source data. XSA can also contain references to and instructions for one or more specific types of converters (eg, converters that convert XML using XSLT) and convert XML source data. Thus, an XML electronic document in wireless markup language (WML) format suitable for display by a browser on the requesting device can be formed. Finally, XSA also contains references to and instructions for certain types of sinks that can deliver WML electronic documents to requesting devices through an HTTP adapter module. The particular XSA electronic document in question is written in a special purpose programming language and can be accurately defined in the XSA programming language specification. However, the present invention is not limited to HTTP communications, wireless devices, or databases. Other data, protocols, network devices, or external systems can also be used.
本発明の好適な実施形態の前述のおよびその他の特徴および利点は、添付図面と関連付けて本発明の実施形態の詳細な説明を検討することにより、当業者には一層容易に理解されよう。 The foregoing and other features and advantages of preferred embodiments of the present invention will be more readily understood by those of ordinary skill in the art upon reviewing the detailed description of the embodiments of the invention in conjunction with the accompanying drawings.
本発明の先に引用した利点およびその他の利点が得られる態様を一層深く理解するために、添付の図面を参照しながら本発明の更に詳細な説明を行う。更に、本発明の具合的な実施形態の説明も、添付図面を参照しながら例示する。これらの図面は本発明の典型的な実施形態のみを図示し、したがってその範囲を限定するとは見なさないことを理解した上で、本発明を説明するために添付図面を用い、本発明を行い用いる現時点において最良と理解される態様について、例示の目的のためにのみ、更に詳しく説明する。 For a better understanding of the aspects of the invention in which the above cited advantages and other advantages can be obtained, a more detailed description of the invention is provided with reference to the accompanying drawings. Furthermore, descriptions of specific embodiments of the present invention are also illustrated with reference to the accompanying drawings. With the understanding that these drawings depict only typical embodiments of the invention and are therefore not to be considered as limiting its scope, the invention will be described and used with the accompanying drawings to illustrate the invention. The aspects that are best understood at the present time will be described in further detail for purposes of illustration only.
ここに記載する実施形態は、それで全てであることも、本発明を開示した形態そのものに限定することも意図してはいない。逆に、説明に選択した実施形態は、当業者がその教示を利用できるように記載されている。最も留意すべきは、ここではXML処理に頻繁に言及するが、本発明はXML処理にもXMLサービス側アプリケーションにも限定される訳ではなく、あらゆる構造化データに等しく適用可能であることである。 The embodiments described herein are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Conversely, the embodiments selected for description are described so that those skilled in the art can utilize their teachings. Most notably, although XML processing is frequently referred to herein, the present invention is not limited to XML processing or XML service side applications, but is equally applicable to any structured data. .
以下の論述は、本発明を実施可能な、相応しい計算環境の端的かつ総合的な説明を行うことを意図している。本発明は、パーソナル・コンピュータによって実行する、プログラム・モジュールのような、コンピュータ実行命令に関して一般的に説明するが、そうしなければならないという訳ではない。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、特定のタスクを実行したり、あるいは特定の抽象的データ形式を実装する。更に、当業者には認められようが、本発明は、ハンドヘルド・デバイス、多重プロセッサ・システム、マイクロプロセッサを用いたまたはプログラム可能な消費者用電子機器、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータなどを含む、その他のコンピュータ・システム構成でも実施可能である。また、本発明は、通信ネットワークを通じて連結したリモート処理デバイスによってタスクを実行する、分散型計算環境においても実施可能である。分散計算環境では、プログラム・モジュールは、ローカルおよびリモート・メモリ記憶デバイス双方に配置することもできる。 The following discussion is intended to provide a brief and comprehensive description of a suitable computing environment in which the invention may be implemented. Although the present invention will generally be described in terms of computer-executed instructions, such as program modules, executed by a personal computer, it is not required to do so. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data formats. Further, as will be appreciated by those skilled in the art, the present invention includes handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, etc. Other computer system configurations can be implemented. The present invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
ここで用いる場合、「ソフトウェア・モジュール」または「モジュール」という用語は、コンピュータ・プログラム内において特定的な論理機能を実行すると別個に認められるあらゆる実行可能命令の集合を意味することとする。 As used herein, the term “software module” or “module” shall mean any set of executable instructions that are separately recognized to perform a particular logical function within a computer program.
図1は、XML処理システム10の基本コンポーネントを示すブロック図である。XML処理システム10は、概略的に、汎用インターフェースを備えたXSAエンジン16と、外部クライアントにXSAエンジン16と双方向処理を行わせる1つ以上のアダプタ・モジュール12とを含む。XSAエンジン16は、XML処理タスクの管理のために設計された特殊目的プログラミング言語を用いて、XSA電子文書18にエンコードされている命令を実行することができる。XSAエンジン16は、汎用インターフェースを提供するだけであるので、XSAエンジン16の呼び出しは、アダプタ・コンポーネント12を通じて行われ、これによって、一方では1つまたは複数のタイプの外部クライアント40と、そして他方ではXSAエンジン16と通信することができる。外部クライアント30からの各呼び出しまたは要求は、アダプタ・モジュール12がどのXSA電子文書18を実行するのか判定するために用いることができる情報またはデータを収容していなければならない。要求または呼び出しを受信すると、アダプタ・モジュール12は、XSAエンジンに、要求の発信元および目的に関する情報を提供することができる。この情報は、XSAエンジンにはアクセス可能であり、ここではコンテキスト・モジュール14で代表する。XSAエンジン16は、コンテキスト・モジュール14を利用して、XML処理タスクの管理のために特定的に設計された、特殊目的の明確な上位プログラミング言語で書かれた、要求XSA電子文書18に定義されているXML処理タスクを初期化し、実行する。このような特殊目的の上位プログラム言語を有することは、具体的なXML処理タスクの作成が、汎用プログラミング言語で可能なよりも簡単にそして迅速に行えることを意味する。XML処理タスクにしか適用できないが、このようなタスクの作成は、特殊目的プログラミング言語を用いれば、遥かに速くそして簡単に行うことができる。また、恐らくはグラフィカル・ユーザ・インターフェースを用い、しかも直接カスタム・コードを書く必要性を完全に排除して、開発者に上位インターフェースを通じて具体的なXSA文書を作成させる、ソフトウェア・プログラムを作成することもできる。開発者のこのような上位インターフェースとの双方向処理は、恐らくグラフィック・コンポーネントを利用して、テキストを用いたコードを書くことを全く必要とせずに、具体的なXSAを生成することを可能にする場合もある。
FIG. 1 is a block diagram illustrating the basic components of an
本発明は、XML処理タスクを3つのクラスのXML処理ステップまたはサブタスク、XML生成、XML変換、およびXML配信/反応に分割する。これは、各XSA電子文書18が一般に3つのクラスのXML処理モジュールの具体的な実現例に対する引用(reference)を含んでおり、各クラスがこれらのサブタスクの1つに対応するという事実に反映されている。XML生成器モジュール20は、外部バック・エンド・システム40に接続し、そのコンテンツ、サービスおよび/または業務ロジックを、XML変換器モジュール22による更なる処理のために利用可能なXMLデータとして公開する役割を担っている。このステップは、多くの場合、外部システムへの接続と、外部システムのネーティブ・データ構造のXMLフォーマットへのマッピングの定義という双方を伴う。XML変換器モジュール22は、XML生成器20から受け取ったXMLデータを、異なるXMLフォーマットに変換する。XSA電子文書18は、XMLデータの順次処理のために、1つよりも多いXML変換器を順次定義することができる(以下で更に詳しく説明する)。XMLシンク・モジュール24は、XML変換器モジュール22から受けたXMLデータに反応するか、またはこれらを配信する。これら3つの抽象的XML処理モジュール・タイプの各々は、アダプタ・モジュール12が提供し、ここではダイナミックXSAコンテキスト・モジュール14によって表されるメタ情報にアクセスすることができる。XSAコンテキスト・モジュール14内のメタ情報は、特定のXSAの実行が開始する前にアダプタ・モジュール12によって提供され、XSAの実行の間中存続する。これは、実行に関与する全てのモジュールにアクセス可能である。コンテキスト・モジュール14が表すメタ情報は、XSAが実行するコンテキストを定義する。3つの抽象的XML処理モジュールの各々は、受動リソース・レポジトリ26にもアクセスすることができる。受動リソース・レポジトリ26には、電子フォーマットの種々のリソースが、記憶媒体内に格納されている。XSA電子文書は、1つ以上のXML生成器モジュール、0個以上のXML変換器モジュール、および1つ以上のXMLシンク・モジュールを定義し制御することができる。
The present invention divides XML processing tasks into three classes of XML processing steps or subtasks, XML generation, XML transformation, and XML delivery / response. This is reflected in the fact that each XSA
図2は、具体的な生成器、変換器およびシンクを参照し、特定目的の上位プログラミング言語で指定され、XML処理タスクの管理のために設計された、これらの相互動作を管理することによって、XSA電子文書がどのようにして1つの個別XML処理タスクを定義するかを示す。 FIG. 2 refers to specific generators, converters and sinks, and by managing these interactions, specified in a special purpose high-level programming language and designed for the management of XML processing tasks, It shows how an XSA electronic document defines an individual XML processing task.
図3は、XSA電子文書を実行しているときのXML処理タスクの実行を示すブロック図である。また、この図は、生成器からシンクまでにおいて、その間に0回以上の変換を受ける、XMLデータの流れを示す。 FIG. 3 is a block diagram illustrating execution of an XML processing task when an XSA electronic document is being executed. This figure also shows the flow of XML data that undergoes zero or more conversions during the period from the generator to the sink.
図4は、本発明によるXML処理システムにおけるXSAの実行を開始し完了する一連のイベントを示すフロー・チャートである。外部クライアントからの呼び出し即ち要求が行われる(1)。要求は情報を収容しており、これを用いれば、どのXSA電子文書を実行すべきか判定することができる。更に、情報は他のコンテキストに左右される情報も収容することができる。全要求情報は、暗示的であれ直接であれ、要求プロパティ(2)と呼ぶこともある。特定のアダプタ・モジュールは、要求元クライアントとの通信が可能であり、要求を受け取り、しかるべきコンテキストに左右される情報にアクセスすることができる場合、XSAエンジンにXSAコンテキスト・モジュール(4)を供給することによって、XSA実行(3)のコンテキストを定義する。アダプタ・モジュールは、XSAエンジン・モジュール内において特定のXSAの実行を開始する。XSAエンジンは、XSAコンテキスト・モジュール内の情報を用いて、特殊目的プログラミング言語で書かれた、要求されたXSA電子文書(5)の実行の準備を行う。要求されたXSAに定義されている具体的なタイプの生成器が、所与のXSA(6)における命令にしたがってXMLソース・コンテンツを生成する。その際、一般に、ある外部バック・エンド・システムと通信し、取得したデータをXMLに変換する。その結果は、処理が行われる前のXMLソース・データ(7)である。次に、0個以上のXML変換器(8)が、要求されたXSA内の命令にしたがって、XMLソース・データを変換し、その結果異なる形式のXMLデータ(9)が得られる。最後に、XMLシンク・モジュールが何らかの方法でXMLコンテンツを配信するか、またはこれに反応する(11)ことによって、XML処理タスクを終了する。このステップは、処理したXMLデータの解釈を伴っても、伴わなくてもよい。一般に、ある種の応答が、XMLシンク(12)が完了したタスクの結果として、アダプタ・モジュールを通じて、要求元のクライアントに戻される。 FIG. 4 is a flow chart illustrating a series of events that initiate and complete the execution of XSA in the XML processing system according to the present invention. A call or request from an external client is made (1). The request contains information that can be used to determine which XSA electronic document to execute. Furthermore, the information can also contain information that depends on other contexts. All request information, whether implicit or direct, may be referred to as request property (2). If a particular adapter module is able to communicate with the requesting client, receives the request and has access to the appropriate context-dependent information, it supplies the XSA engine with an XSA context module (4) By doing so, the context of XSA execution (3) is defined. The adapter module initiates execution of a specific XSA within the XSA engine module. The XSA engine uses the information in the XSA context module to prepare for execution of the requested XSA electronic document (5) written in a special purpose programming language. The specific type of generator defined in the requested XSA generates XML source content according to the instructions in a given XSA (6). In doing so, it generally communicates with some external back-end system and converts the acquired data to XML. The result is XML source data (7) before processing. Next, zero or more XML converters (8) convert the XML source data according to the requested instruction in XSA, resulting in different types of XML data (9). Finally, the XML processing module terminates the XML processing task by delivering or reacting (11) to the XML content in some way. This step may or may not involve interpretation of the processed XML data. In general, some kind of response is returned to the requesting client through the adapter module as a result of the task that the XML sink (12) has completed.
図5は、XMLサービス・アクション・モデルによって定義した、生成器の役割および典型的な構造を示すブロック図である。この図は、一般に、生成器がまず外部システムに接続し、次いでXMLフォーマットで外部システムからのデータを公開するという二重のタスクに直面していることを示す。 FIG. 5 is a block diagram illustrating the role of the generator and the typical structure defined by the XML service action model. This figure generally shows that the generator is faced with a dual task of first connecting to the external system and then publishing data from the external system in XML format.
図6は、XMLサービス・アクション・モデルによって定義した変換器の役割を示すブロック図である。この図は、いずれの数の変換器でも順次適用してもよく、そして各1つが入力および出力双方としてXMLデータを有することを示す。 FIG. 6 is a block diagram showing the role of the converter defined by the XML service action model. This figure shows that any number of converters may be applied sequentially and each one has XML data as both input and output.
図7は、XMLサービス・アクション・モデルによって定義したシンクの役割を示すブロック図である。一般に、シンクは、XML入力データを何らかの外部データ・フォーマットに変換して要求元のクライアントに配信または公表するか、あるいは処理したXML入力にしたがって何らかの方法で解釈または反応するかのいずれかである。反応は、シンクの目的次第でいずれでもよく、必ずしも要求元クライアントへの応答を伴う必要は全くない。 FIG. 7 is a block diagram showing the role of the sink defined by the XML service action model. In general, a sink either converts XML input data into some external data format and distributes or publishes it to the requesting client, or interprets or reacts in some way according to the processed XML input. The response can be either depending on the purpose of the sink and does not necessarily involve a response to the requesting client.
本発明の好適な一実施形態は、プレゼンテーション・システムであり、相容れない表現の要求がある多くの異なるタイプのネットワーク・クライアント、例えば、多くの異なるタイプの移動デバイスへの、バック・エンド・システム内に常駐するデータの公表を容易にする。このプレゼンテーション・システムは、例えば、HTTPプロトコルを通じて、クライアントと通信可能なアダプタ・モジュールを含む。また、プレゼンテーション・システムは、バック・エンド・システム(複数のバック・エンド・システム)と通信し、バック・エンド・システムのデータをXMLフォーマットで公開することができる、特定のタイプの生成器モジュールも備えている。また、このプレゼンテーション・システムは、汎用ソースXMLデータをバック・エンド・システムから、ネットワーク・クライアント・デバイスの各々における表示に適した多くの異なるフォーマットに変換することができる、特定のタイプの変換器モジュールも内蔵している。また、このシステムは、個別製作したコンテンツを要求元クライアント・デバイスに、要求を送ったアダプタを通じて返送することができるシンクも内蔵している。また、このシステムは、特殊目的プログラミング言語で書かれた特定のXSA電子文書も収容しており、XMLデータの処理を管理し、どのクライアントがコンテンツの要求を行ったかに応じて、該当する生成器、変換器、およびシンクが必ず用いられるようにする。プレゼンテーション・システムは、本質的に、XSAフレームワークのため拡張可能であり、生のコンテンツ・データのプレゼンテーション情報からの完全な分離を促進する。新たなバック・エンド・システム、新たなクライアント、または新たな通信プロトコルに対応するにも、単に新たな生成器、変換器またはアダプタを追加するだけで済む。 One preferred embodiment of the present invention is a presentation system, in a back-end system to many different types of network clients, for example many different types of mobile devices, that have incompatible requests for expression. Facilitates publication of resident data. The presentation system includes an adapter module that can communicate with a client through, for example, the HTTP protocol. The presentation system also has a specific type of generator module that can communicate with the back end system (multiple back end systems) and publish back end system data in XML format. I have. The presentation system also provides a specific type of converter module that can convert generic source XML data from the back end system into many different formats suitable for display on each of the network client devices. Also built in. The system also includes a sink that can return individually produced content to the requesting client device through the adapter that sent the request. The system also contains specific XSA electronic documents written in a special purpose programming language, manages the processing of XML data, and depending on which client has requested the content, the appropriate generator Ensure that converters and sinks are used. The presentation system is inherently extensible for the XSA framework, facilitating complete separation of raw content data from presentation information. To accommodate new back-end systems, new clients, or new communication protocols, simply add new generators, converters or adapters.
本発明の別の実施形態は、メッセージング・システムであり、一般には安全な方法で一方の外部システムから他方へインターネットを通じて、ebXMLまたはBizTalkのような標準化された業務メッセージング・プロトコルを用いて、業務メッセージを配信する。このシステムは、当該プロトコルを用いて通信することができるアダプタ・モジュールを必要とする。また、このシステムは、通信システムからXMLフォーマットのデータを抽出することができる特定のタイプの生成器モジュールも内蔵している。更に、これは、システム・データを配信に向けた業務メッセージに変えることができる種々の変換器も内蔵することができる。また、このシステムは、該当するアダプタ・モジュールを通じてメッセージをその宛先に配信することができる特定のシンク・モジュールも内蔵している。また、このシステムは、異なる規格の業務メッセージ間で翻訳が可能な特定のタイプの変換器も内蔵することができる。最後に、このシステムは、特殊目的プログラミング言語で書かれ、XML処理を管理および制御する、特定のXSA電子文書と、これらの文書を実行する要求があったときに、それを行うことができるXSAエンジンとを内蔵している。 Another embodiment of the present invention is a messaging system, which typically uses a standardized business messaging protocol such as ebXML or BizTalk over the Internet from one external system to the other in a secure manner. To deliver. This system requires an adapter module that can communicate using the protocol. The system also includes a specific type of generator module that can extract data in XML format from the communication system. In addition, it can also incorporate various converters that can turn system data into business messages for delivery. The system also includes a specific sink module that can deliver the message to its destination through the appropriate adapter module. The system can also incorporate specific types of converters that can translate between business messages of different standards. Finally, the system is written in a special purpose programming language and manages specific XSA electronic documents that manage and control XML processing and XSA that can do it when requested to execute these documents. Built-in engine.
本発明の更に別の実施形態は、異質な発信源と宛先のアプリケーションとの間でデータを統合化することができる統合システムである。この種の統合システムは、XSAエンジン、特殊目的プログラミング言語で書かれた特定のXSA電子文書、発信元および宛先アプリケーション間で通信することができる特定のアダプタ・モジュール、発信元および宛先アプリケーションのネーティブ・データ構造をXMLフォーマットに変換することができる特定の発生器、ソース・アプリケーションから入力されるXMLを宛先アプリケーションへの配信に適したXMLフォーマットに変換することができる特定の変換器、および最後に、処理(変換)したXMLデータを宛先アプリケーションに配信することができるシンク・コンポーネントを備えている。 Yet another embodiment of the present invention is an integrated system that can integrate data between disparate source and destination applications. This type of integrated system includes an XSA engine, a specific XSA electronic document written in a special purpose programming language, a specific adapter module that can communicate between the source and destination applications, A specific generator capable of converting the data structure to XML format, a specific converter capable of converting XML input from the source application into an XML format suitable for delivery to the destination application, and finally, A sink component is provided that can deliver the processed (converted) XML data to the destination application.
以下に、本発明の更に別の好適な実施形態を詳細に説明する。以後、これを実施形態Aと呼ぶことにする。実施形態Aは、XMLサービス・アクション電子文書に可能な1つのフォーマットを高精度に定義する特殊目的プログラミング言語の仕様であり、そのセマンティックス(semantics)を説明し、更に実施形態Aによって定義された仕様にしたがって書かれたXSAエンジンの実現例によって、それがどのように解釈されるかについて説明する。実施形態Aは、XML処理タスクの管理のために設計された、特殊目的プログラミング言語のXMLサービス・アクション仕様の一例として記述することができ、当業者であれば、これを利用して、通常のコンピュータ・システムにおいて本発明の具体的な実現例を作成することができる。実施形態Aは、前述の他の実施形態全てについても、正確に述べたフレームワークとして用いることもできる。 In the following, further preferred embodiments of the present invention will be described in detail. Hereinafter, this will be referred to as embodiment A. Embodiment A is a specification of a special purpose programming language that precisely defines one possible format for an XML service / action electronic document, describes its semantics, and is further defined by Embodiment A. The implementation of the XSA engine written according to Embodiment A can be described as an example of an XML service action specification in a special purpose programming language designed for the management of XML processing tasks, and can be used by those skilled in the art to Specific implementations of the invention can be created in a computer system. Embodiment A can also be used as a precisely described framework for all the other embodiments described above.
実施形態Aによれば、XSA電子文書は、文書形式定義(DTD)に従うXMLフォーマットに基づいて、特殊目的プログラミング言語で書かれている。XML電子文書は、有効はXSA文書を構成し、ここではXSA定義と呼ぶこともある。 According to embodiment A, an XSA electronic document is written in a special purpose programming language based on an XML format that conforms to a document format definition (DTD). The XML electronic document effectively constitutes an XSA document, and may be referred to as an XSA definition here.
以下に、実施形態Aの記述に用いられる用語の定義を示す。
XSA実行エンジン:実施形態Aのために定義されたXSA定義を実行することができるソフトウェア実現例。
Below, the definition of the term used for description of Embodiment A is shown.
XSA execution engine: A software implementation capable of executing the XSA definition defined for embodiment A.
XSA定義:実行する各XSAはXML文書として指定される。文書の場所や形態は、実施形態Aの仕様には全く制約されず、記憶媒体から読み取ったり、実行時に機械で生成したり、あるいはその他のいずれの方法でも取得することができる。実施形態Aについて定義されたXSAの1つのインスタンスを記述するXML文書を、XSA定義と呼ぶ。 XSA definition: Each XSA to be executed is specified as an XML document. The location and form of the document are not limited to the specifications of Embodiment A, and can be read from a storage medium, generated by a machine at the time of execution, or obtained by any other method. An XML document that describes one instance of XSA defined for embodiment A is called an XSA definition.
XML動作:各XSA定義は、多数のXML動作で構成されている。XML動作とは、XSAにおける実行の単位であり、これらはXSA定義に定義されているように順次実行される。 XML operations: Each XSA definition consists of a number of XML operations. An XML operation is a unit of execution in XSA, and these are executed sequentially as defined in the XSA definition.
XSAコンポーネント:XML動作において用いられるコンポーネントをXSAコンポーネントと呼ぶ。XSAコンポーネントの例には、生成器、変換器およびシンクのような、実行パイプラインのブロックが含まれる。 XSA component: A component used in an XML operation is called an XSA component. Examples of XSA components include execution pipeline blocks, such as generators, converters, and sinks.
XSAコンポーネントは常にXSA定義内において参照されるが、使用する実際のコンポーネントは、XSA定義の外側で定義され、使用するコンポーネントのプログラミング言語、実現例、および構成において完全な自由を実施者に与える。 While XSA components are always referenced within the XSA definition, the actual components used are defined outside the XSA definition, giving the implementer complete freedom in the programming language, implementation, and configuration of the components used.
生成器:生成器は、何らかの特定的な方法でXMLデータを生成するコンポーネントである。生成器がXMLを作成するために用いる方法は、用いられる生成器コンポーネントの実現例によって異なる。 Generator: A generator is a component that generates XML data in some specific way. The method that the generator uses to create the XML depends on the implementation of the generator component that is used.
変換器:変換器は、ある特定の方法でXMLデータを変換するコンポーネントである。XMLに変換する際に用いる方法は、用いられる変換器コンポーネントの実現例によって異なる。 Converter: A converter is a component that converts XML data in a certain way. The method used to convert to XML depends on the implementation of the converter component used.
シンク:シンクは、処理後のXMLデータを配信するコンポーネントである。配信は、XMLデータを内部形式でメモリに保持することから、何らかの外部フォーマットにそれをシリアル化し、データベースに格納することまでのいずれでも含むことができる。 Sink: A sink is a component that distributes processed XML data. Distribution can include anything from holding XML data in memory in internal format to serializing it to some external format and storing it in a database.
パイプライン:パイプラインは、生成器、一連の変換器、およびシンクを組み合わせて、一連の実行を形成する。XMLデータは、生成器から変換器を介してシンクまで流れる。 Pipeline: A pipeline combines a generator, a series of converters, and a sink to form a series of executions. XML data flows from the generator through the converter to the sink.
条件付き動作:条件付き動作を用いて、どのパイプラインを実行するかを判断し、実行の流れを制御することができる。
XSAコンテキスト:各XSA実行は、コンテキストにおいて行われ、名称のある数個のスコープを通じて、1組の名称のある変数へのアクセスを与える。
Conditional operations: Conditional operations can be used to determine which pipeline to execute and to control the flow of execution.
XSA context: Each XSA execution takes place in a context, giving access to a set of named variables through several named scopes.
スコープ:XSAコンテキストは、名称のある全ての変数をスコープに格納する。スコープは、要求、セッション、クライアント、ユーザ、およびアプリケーションである。各スコープは、本明細書において後に実施形態Aについて定義するような意味を有する。 Scope: The XSA context stores all named variables in the scope. Scopes are requests, sessions, clients, users, and applications. Each scope has the meaning as defined later for embodiment A herein.
変数:変数という用語は、XSAコンテキストに格納される名称−値対に対して用いられる。変数は、名称および値を有し、あるスコープに属する。
以下に、実施形態Aによる、XML動作を定義する際に用いられる、XSA定義の基本的シンタックス・エレメントの説明を行う。
Variable: The term variable is used for name-value pairs stored in the XSA context. A variable has a name and a value and belongs to a certain scope.
The following describes the XSA-defined basic syntax elements used in defining XML operations according to Embodiment A.
実施形態Aのこの仕様にしたがって書かれる各XSA定義は、DOCTYPE宣言を含み、公表識別子を"-//Dimon//DTD XSA 1.1//EN"に設定しなければならない。このDTDは次の通りである。 Each XSA definition written according to this specification in embodiment A must include a DOCTYPE declaration and set the public identifier to "-// Dimon // DTD XSA 1.1 // EN". This DTD is as follows.
[表1]
<!--
実施形態AのXMLサービス・アクション仕様
Namespace=http://www.dimon.is/namespaces/xsa
このDTDモジュールは、このPUBLIC識別子、
PUBLIC "-//Dimon//DTD XSA 1.1//EN"
およびこのカノニカル・システム識別子によって識別する。
SYSTEM"http://www.dimon.is/dtds/xsa/1.1/xsa/dtd"
システム識別子は変化する場合がある。DOCTYPE宣言は次のように示すことができる。
<!DOCTYPE xsa PUBLIC "-..Dimon//DTD XSA 1.1//EN""xsa.dtd">
Review:DRAFT
-->
<!--サーバ内のどこかで定義し構成したコンポーネントのIDを参照-->
<!ENTITY % refid"refid CDATA #required">
<!--所与の範囲における名称のある変数の仕様-->
<!ENTITY % variablespec"
scope (request||session|client|user|application) #required
name CDATA #required">
<!--アクションの一般的サブパーツ-->
<!ENTITY % XML Operation "(pipeline|setvariable|removevariable|lif|operation)">
<!--あらゆる値の指定子。out-param-valueは特殊な場合であり、out-paramの下位としてのみ用いることができる。その他はvaluespecがコンテンツ・モデル内であればどこでも用いることができる-->
<!ENTITY % valuespec "(null|literal|getvariable|mapping|out-param-value)">
<!--条件の一括表現-->
<!ENTITY % anycondition “(and|or|not|isdefined|isoftype|equlas|condition)”>
<!-入力/出力パラメータ割り当ての一括表現a
<!ENTITY %inoutparam "(out-param|in-param)">
<!--あらゆるアクション仕様のルート・エレメント-->
<!ELEMENT xsa (support*,errordef*,(%XMLOperation;)+)>
<!ATTLIST xsa
version CDATA #required
xmin CDATA 'http://www.dimon.is/namespaces/xsa'
>
<!-- 所与のアダプタに対する対応を示す。対応エレメントが現れない場合、いずれのアダプタでも、このXSAを呼び出すことができると想定することができる
-->
<!ELEMENT supports EMPTY>
<!ATTLIST supports
adaptername CDATA #required
>
<!-- エラー、およびこのエラーの場合に呼び出すXSAを定義する。
このコンテンツは、英語の記述的エラー・メッセージとすることができる。
名称属性はエラーの名称であり、呼び出しはこのエラーの場合に呼び出すXSAへの参照を与えなければならない。
-->
<!ELEMENT errodef #PCDATA>
<!ATTLIST errordef
name CDATA #required
invokes CDATA #required
>
<!--XMLパイプラインを実行する動作を表す。
生成器、変換器、およびシンクはネスト状エレメントによって指定する-->
<!ELEMENT pipeline ((generator|raiseerror), (transformer||raiseerror)*, (sink|raiseerror))>
<!--スコープにおいて変数を設定する動作を表す。
内容は設定する値を指定する-->
<!ELEMENT setvariable (%valuespec;)>
<!ATTLIST setvariable
%variablespec;
failonerror (true|false) "true"
>
<!--スコープにおいて変数を除去する動作を表す-->
<!ELEMENT removevariable EMPTY>
<!ATTLIST removevariable
%variablespec;
failonerror (true|false) "true"
>
<!--条件を評価することによって2つの動作リスト間で選択を行った後、その1つにおける各動作を実行する動作を表す-->
<!ELEMENT if (%anycondition;,then,else?)>
<!--条件を評価して真になったときに実行するXML動作のコンテナ-->
<!ELEMENT then ((%XML Operation;)*)>
<!--条件を評価して真になったときに実行するXML動作のコンテナ-->
<!ELEMENT else ((%XML Operation;)*)>
<!--SAXチェーンを開始する生成器のインスタンス化を表す。
いずれかの場所で構成された生成器ファクトリを参照し、それを呼び出すためのパラメータを指定する-->
<!ELEMENT generator ((%inoutparam;)*)>
<!ATTLIST generator
%refid;
>
<!--SAXチェーンの一部としての変換器のインスタンス化を表す。
いずれかの場所で構成された変換器ファクトリを参照し、それを呼び出すためのパラメータを指定する-->
<!ELEMENT transformer ((%inoutparam;)*)>
<!ATTLIST transformer
%refid;
>
<!--SAXチェーンを終了するシンクのインスタンス化を表す。
いずれかの場所で構成されたシンク・ファクトリを参照し、それを呼び出すためのパラメータを指定する-->
<!ELEMENT sink ((%inoutparam;)*)>
<!ATTLIST sink
%refid;
>
<!-- XPathを評価して真になった場合、エラーを出す。
エラー属性は、出すエラーの名称を収容していなければならず、検査属性は評価するXPathを収容していなければならない-->
<!ELEMENT raiseerror EMPTY>
<!ATTLIST raiseerror
error CDATA #required
test CDATA #required
>
<!--所与の変数の値を得ることを表す-->
<!ELEMENT getvariable EMPTY>
<!ATTLIST getvariable
%variablespec;
>
<!--どこかで定義された条件を参照する
ネストされたin-paramエレメントによって割り当てられた入力パラメータを取る場合もある-->
<!ELEMENT condition (in-param*)>
<!ATTLIST condition
%refid;
>
<!--AND条件、全てのネストされた条件が真となる場合にのみ、真となる-->
<!ELEMENT and ((%anycondition;)+)>
<!--包含的OR条件、ネストされた条件の1つが真となる場合にのみ、真となる-->
<!ELEMENT or ((%anycondition;)+)>
<!--否定条件、ネストされた条件の否定を出す-->
<!ELEMENT not ((%anycondition;))>
<!-- is-defined条件、全てのネストされた値(あらゆるオブジェクト)がヌルでないか否かを出す。
ネストされた値がない縮退の場合に真を出す-->
<!ELEMENT isdefined ((%valuespec;)*)>
<!-- is-of-type 条件、最初のネストされた値(いずれかのオブジェクト)が2番目のネストされた値(ストリング)によって命名されたクラスのものであるか否かを出す。いずれかがヌルの場合偽を出す-->
<!ELEMENT isoftype ((%valuespec;),(%valuespec;))>
<--等価条件、最初のネストされた値が、イコール・メソッドによって判定された、その他の各々と等しいか否かを出す。全てがヌルの場合真を出す。一部がヌルであり、一部がそうでない場合、偽を出す。
ネストされた値が1つのみの縮退の場合に真を出す
-->
<!ELEMENNT equals ((%valuespec;)+)>
<!--名称付入力パラメータに値を割り当てることを表す-->
<!ELEMENT in-param(%valuespec;)>
<!ATTLIST in-param
name CDATA #required
>
<!--1つ以上の入力パラメータを取り込み、結果値を出すマッピングを表す。入力パラメータは、ネストされたin-paramによって与えられる-->
<!ELEMENT mapping (in-param*)>
<!ATTLIST mapping
%refid;
>
<!--出力パラメータを変数に割り当てることを表す-->
<!ELEMENT out-param (setvariable)>
<!ATTLIST out-param
name CDATA #required
>
<!-- out-paramエレメントの子孫として用いられるときに、出力パラメータの値を表す。それ以外の場合にはいずれも違法-->
<!ELLEMENT out-param-value EMPTY>
<!-- ヌル(duh)の値を表す-->
<!ELEMENT null EMPTY>
<!-- 文字で指定された値を表す-->
<!ELEMENT literal (#PCDATA)>
<!-- 所与のパーザ・クラスによって構成されるカスタムXML動作を表す。パーザ・クラスは、XSAパーザ・クラスローダ内になければならず、デフォルトのコンストラクタを有していなければならない。
このエレメントは任意のXMLを収容している場合がある。XMLが別個の名称空間にあるか(このDTDとの障害を避けるため)、またはこのDTDを解析の時点で実行しないかのいずれかが必要である。
-->
<!ELEMENT operation EMPTY>
<!ATTLIST operation
parserClass CDATA #required
>
DOCTYPE宣言の一例は、次の通りである。
[Table 1]
<!-
XML Service Action Specification for Embodiment A
Namespace = http: //www.dimon.is/namespaces/xsa
This DTD module has this PUBLIC identifier,
PUBLIC "-// Dimon // DTD XSA 1.1 // EN"
And this canonical system identifier.
SYSTEM "http://www.dimon.is/dtds/xsa/1.1/xsa/dtd"
The system identifier may change. The DOCTYPE declaration can be shown as follows:
<! DOCTYPE xsa PUBLIC "-.. Dimon // DTD XSA 1.1 // EN""xsa.dtd">
Review: DRAFT
->
<!-See component ID defined and configured somewhere in the server->
<! ENTITY% refid "refid CDATA #required">
<!-Specifications of named variables in a given range->
<! ENTITY% variablespec "
scope (request || session | client | user | application) #required
name CDATA #required ">
<!-General sub parts of action->
<! ENTITY% XML Operation "(pipeline | setvariable | removevariable | lif | operation)">
<!-Any value specifier. out-param-value is a special case and can only be used as a subordinate of out-param. Others can be used anywhere valuespec is in the content model->
<! ENTITY% valuespec "(null | literal | getvariable | mapping | out-param-value)">
<!-Batch expression of conditions->
<! ENTITY% anycondition “(and | or | not | isdefined | isoftype | equlas | condition)”>
<!-Batch representation of input / output parameter assignments a
<! ENTITY% inoutparam "(out-param | in-param)">
<!-Root element of any action specification->
<! ELEMENT xsa (support *, errordef *, (% XMLOperation;) +)>
<! ATTLIST xsa
version CDATA #required
xmin CDATA 'http://www.dimon.is/namespaces/xsa'
>
<!-Indicates the correspondence for a given adapter. If no corresponding element appears, it can be assumed that any adapter can call this XSA.
->
<! ELEMENT supports EMPTY>
<! ATTLIST supports
adaptername CDATA #required
>
<!-Define an error and the XSA to call in case of this error.
This content can be an English descriptive error message.
The name attribute is the name of the error and the call must give a reference to the XSA to call in case of this error.
->
<! ELEMENT errodef #PCDATA>
<! ATTLIST errordef
name CDATA #required
invokes CDATA #required
>
<!-Represents an operation that executes an XML pipeline.
Generators, transformers, and sinks are specified by nested elements->
<! ELEMENT pipeline ((generator | raiseerror), (transformer || raiseerror) *, (sink | raiseerror))>
<!-Represents the action of setting a variable in the scope.
The content specifies the value to set->
<! ELEMENT setvariable (% valuespec;)>
<! ATTLIST setvariable
% variablespec;
failonerror (true | false) "true"
>
<!-Represents the action of removing variables in the scope->
<! ELEMENT removevariable EMPTY>
<! ATTLIST removevariable
% variablespec;
failonerror (true | false) "true"
>
<!-Represents an action that performs each action in one after selecting between two action lists by evaluating a condition->
<! ELEMENT if (% anycondition;, then, else?)>
<!-Container for XML operation to be executed when the condition becomes true after evaluating the condition->
<! ELEMENT then ((% XML Operation;) *)>
<!-Container for XML operation to be executed when the condition becomes true after evaluating the condition->
<! ELEMENT else ((% XML Operation;) *)>
<!-Represents the instantiation of the generator that starts the SAX chain.
Browse to a generator factory configured anywhere and specify the parameters to call it->
<! ELEMENT generator ((% inoutparam;) *)>
<! ATTLIST generator
% refid;
>
<!-Represents the instantiation of the converter as part of the SAX chain.
Browse to a converter factory configured anywhere and specify the parameters to call it->
<! ELEMENT transformer ((% inoutparam;) *)>
<! ATTLIST transformer
% refid;
>
<!-Indicates the instantiation of the sink that terminates the SAX chain.
Browse to a sink factory configured anywhere and specify parameters to invoke it->
<! ELEMENT sink ((% inoutparam;) *)>
<! ATTLIST sink
% refid;
>
<!-If XPath evaluates to true, an error is issued.
The error attribute must contain the name of the error to issue, and the inspection attribute must contain the XPath to be evaluated->
<! ELEMENT raiseerror EMPTY>
<! ATTLIST raiseerror
error CDATA #required
test CDATA #required
>
<!-Representing the value of a given variable->
<! ELEMENT getvariable EMPTY>
<! ATTLIST getvariable
% variablespec;
>
<!-May take input parameters assigned by nested in-param elements that reference conditions defined elsewhere->
<! ELEMENT condition (in-param *)>
<! ATTLIST condition
% refid;
>
<!-AND condition, only true if all nested conditions are true->
<! ELEMENT and ((% anycondition;) +)>
<!-Inclusive OR condition, true only if one of the nested conditions is true->
<! ELEMENT or ((% anycondition;) +)>
<!-Negation condition, negation of nested condition->
<! ELEMENT not ((% anycondition;))>
<!-Is-defined condition, whether all nested values (any object) are non-null.
True if degenerate with no nested values->
<! ELEMENT isdefined ((% valuespec;) *)>
<!-Is-of-type condition, whether or not the first nested value (any object) is of the class named by the second nested value (string). If any is null, give false->
<! ELEMENT isoftype ((% valuespec;), (% valuespec;))>
<-Equal condition, tells whether the first nested value is equal to each other as determined by the equal method. True if all are null. If some are null and some are not, false.
Returns true if there is only one nested value
->
<! ELEMENNT equals ((% valuespec;) +)>
<!-Represents assigning a value to a named input parameter->
<! ELEMENT in-param (% valuespec;)>
<! ATTLIST in-param
name CDATA #required
>
<!-Represents a mapping that takes one or more input parameters and produces a result value. Input parameters are given by nested in-param->
<! ELEMENT mapping (in-param *)>
<! ATTLIST mapping
% refid;
>
<!-Represents assigning output parameter to variable->
<! ELEMENT out-param (setvariable)>
<! ATTLIST out-param
name CDATA #required
>
<!-Represents the value of the output parameter when used as a descendant of the out-param element. All other cases are illegal->
<! ELLEMENT out-param-value EMPTY>
<!-Represents the value of null (->)
<! ELEMENT null EMPTY>
<!-Represents the value specified by the character->
<! ELEMENT literal (#PCDATA)>
<!-Represents a custom XML action constructed by a given parser class. The parser class must be in the XSA parser class loader and have a default constructor.
This element may contain any XML. Either the XML is in a separate namespace (to avoid interference with this DTD) or this DTD is not run at the time of analysis.
->
<! ELEMENT operation EMPTY>
<! ATTLIST operation
parserClass CDATA #required
>
An example of a DOCTYPE declaration is as follows:
[表2]
<!DOCTYPE xsa
PUBLIC "-//Dimon//DTD XSA 1.1//EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa/dtd">
XSA定義のルート・エレメントは<xsa>である。XSAが実施形態Aのこの仕様にしたがって書かれたのであれば、これは、1.1の値を有するバージョン属性を収容していなければならない。空のルート・エレメントの一例は、次のようにすることができる。
[Table 2]
<! DOCTYPE xsa
PUBLIC "-// Dimon // DTD XSA 1.1 // EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa/dtd">
The root element of the XSA definition is <xsa>. If XSA was written according to this specification of embodiment A, it must contain a version attribute with a value of 1.1. An example of an empty root element can be as follows:
[表3]
<xsa version="1.1" xmlns="http://www.dimon.is/namespaces/xsa">
</xsa>
ルートの内側では、XSA定義は、以下で論ずるように、いずれの数のエレメントでも収容する。これらのエレメントの殆どは、XML動作に対応する。XML動作のタイプについては、後に以下で更に詳しく論ずるが、以下のリストは、本発明の実施形態Aによるルート・エレメントの内側で許される各タイプのXMLエレメントについて端的に記述する。
[Table 3]
<xsa version = "1.1" xmlns = "http://www.dimon.is/namespaces/xsa">
</ xsa>
Inside the root, the XSA definition contains any number of elements, as discussed below. Most of these elements correspond to XML operation. The types of XML operations will be discussed in more detail below, but the following list briefly describes each type of XML element allowed inside the root element according to embodiment A of the present invention.
パイプライン:パイプラインは、<pipeline>エレメントによって定義される。パイプラインは、生成器、変換器およびシンクを組み合わせ、XMLデータを処理するために基本的エレメントを用いる。 Pipeline: A pipeline is defined by a <pipeline> element. Pipelines combine generators, converters and sinks and use basic elements to process XML data.
変数:<setvariable>および<removevariable>エレメントによって操作され、<getvariable>エレメントによってアクセスされる。変数は、制御情報を外部のXSA実行に受け渡し、そしてXSA実行から受け取り、更に内部においてXSAのコンポーネント間で受け渡す手段である。 Variable: manipulated by the <setvariable> and <removevariable> elements and accessed by the <getvariable> element. A variable is a means for passing control information to an external XSA execution, receiving from the XSA execution, and internally passing between XSA components.
変数は、XSAコンテンツの一部である。これについては、以下で詳しく論ずる。
条件:条件は、<if>エレメントによって定義される。これらは、どのXML動作を実行し、どのXML動作を実行しないか制御する際に用いることができる。
The variable is part of the XSA content. This is discussed in detail below.
Condition: A condition is defined by an <if> element. These can be used to control which XML operation is executed and which XML operation is not executed.
カスタム動作:カスタム動作は、<operation>エレメントによって定義される。これらは、いずれのカスタムXML動作を行うときにでも用いることができる。
各XML動作のシンタックスについては、以下で論ずる。実施形態Aの仕様によるXSA定義の一例は、次のようにすることができる。
Custom operation: A custom operation is defined by an <operation> element. These can be used when performing any custom XML operation.
The syntax of each XML operation is discussed below. An example of the XSA definition according to the specification of Embodiment A can be as follows.
[表4]
<?xml version='1.0'?>
<!DOCTYPE xsa
PUBLIC "-..Dimon..DTD XSA 1.1//EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa.dtd">
<xsa version="1.1" xmlns="http://www.dimon.is/namespaces/xsa">
<setvariable scope="request" name="http.response.Content-Type">
<literal>text/plain</literal>
</setvariable>
<pipeline>
<generator refid="index"/>
<transformer refid="resourcetrax">
<in-param name="xsl">
<literal>index.xsl</literal>
</in-param>
</transformer>
<sink refid="clipsersink">
<in-param name="outputStream">
<getvariable scope="request" name="http.responsestream"/>
</in-param>
</sink>
</pipeline>
</xsa>
実施形態Aにおいて記述された特殊目的プログラミング言語の仕様によれば、XSA定義は線形の順序で実行される。これが意味するのは、各XML動作を完全に評価した後に、リスト中の次のXML動作を評価するということである。実現例は、この順序付けに従わなければならない。何故なら、変数の設定は、実行の順序に左右される可能性があるからである。
[Table 4]
<? xml version = '1.0'?>
<! DOCTYPE xsa
PUBLIC "-.. Dimon..DTD XSA 1.1 // EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa.dtd">
<xsa version = "1.1" xmlns = "http://www.dimon.is/namespaces/xsa">
<setvariable scope = "request" name = "http.response.Content-Type">
<literal> text / plain </ literal>
</ setvariable>
<pipeline>
<generator refid = "index"/>
<transformer refid = "resourcetrax">
<in-param name = "xsl">
<literal> index.xsl </ literal>
</ in-param>
</ transformer>
<sink refid = "clipsersink">
<in-param name = "outputStream">
<getvariable scope = "request" name = "http.responsestream"/>
</ in-param>
</ sink>
</ pipeline>
</ xsa>
According to the specification of the special purpose programming language described in embodiment A, XSA definitions are executed in a linear order. This means that after each XML operation is fully evaluated, the next XML operation in the list is evaluated. Implementations must follow this ordering. This is because the setting of variables may depend on the order of execution.
以下に、実施形態Aの実行コンテキストの記述を示す。
XSAは、XSA定義内に定義されている処理を活性化するために実行する。XSAを実行する毎に、XSAコンテキストにアクセスする。XSAコンテキストは、スコープ内に定義されている1組の変数を公開する。この仕様では、特定の変数名を定義しないが、全ての変数は、次の名称付スコープの1つに属さなければならない。
The description of the execution context of Embodiment A is shown below.
XSA is executed to activate processing defined in the XSA definition. Each time XSA is executed, the XSA context is accessed. The XSA context exposes a set of variables defined in the scope. This specification does not define specific variable names, but all variables must belong to one of the following named scopes:
実施形態Aのこの仕様は、変数のスコープとは無関係に、特定の変数へのリード/ライト・アクセスを定義しない。実施形態の中には、必要に応じてある変数へのアクセスを制限してこの要件を満たそうとする場合もあり、一例を示せば、ユーザ・スコープ内の変数にはリード・アクセスを許すが、ライト・アクセスは許さないというものであろう。設定した制限に違反した場合、エラーを発生しなければならず、以下で説明するエラー処理を、それに応じて呼び出さなければならない。どんなエラーが生じたかは、実現例の詳細である。 This specification of embodiment A does not define read / write access to a particular variable regardless of the scope of the variable. Some embodiments attempt to meet this requirement by restricting access to certain variables as needed. For example, a variable in the user scope is allowed read access. Wouldn't allow write access. If the set limit is violated, an error must be generated and the error handling described below must be invoked accordingly. The details of the implementation are what errors occurred.
XSAコンテキストに変数を設定するには、その変数への書き込みが実現例によって許される限り、その変数に以前にあった値を上書きしなければならない(いずれかの値が存在している場合)。以下のスコープが、実施形態Aのこの実施形態において定義されている。これらのスコープのランタイム環境へのマッピングは、この実施形態Aの仕様による実現例次第である。実施するマッピングは、以下に与える記述に従わなければならない。 To set a variable in the XSA context, as long as writing to that variable is allowed by the implementation, it must overwrite the previous value for that variable (if any value exists). The following scope is defined in this embodiment of embodiment A: The mapping of these scopes to the runtime environment depends on the implementation according to the specification of this embodiment A. The mapping to be performed must follow the description given below.
要求:要求スコープは、現XSAの実行後も存続している必要があるが、それ以上存続する必要はない。これは、XSAの呼び出し側(invoker)が初期化したデータを収容し、XSAの実行によって、このスコープに定義されている変数を変更することができる。全ての実現例は、要求スコープに対応していなければならない。 Request: The request scope needs to persist after the current XSA execution, but need not persist any further. This contains data initialized by the XSA caller and the variables defined in this scope can be changed by executing the XSA. All implementations must support the request scope.
セッション:セッション・スコープは、同じセッションが用いられている限り、複数の要求の間は存続している必要がある。「セッション」の定義は、実現例に委ねられるが、自明な例は、XSAモデルを用いたウェブ・サーバの場合におけるHTTPセッションである。セッション・スコープに対応するのはオプションである。 Session: The session scope needs to persist between requests as long as the same session is used. The definition of “session” is left to the implementation example, but a trivial example is an HTTP session in the case of a web server using the XSA model. Corresponding to session scope is optional.
クライアント:クライアント・スコープは、直接的または間接的にXSAを呼び出したクライアントに適用されるデータのために用いられる。クライアントの定義は、実現例に委ねられるが、一例は、XSAモデルを用いたウェブ・ページを呼び出すブラウザである。クライアント・スコープに対応するのはオプションである。 Client: The client scope is used for data that applies to clients that have called XSA directly or indirectly. Client definition is left to the implementation, but one example is a browser that invokes a web page using the XSA model. Corresponding to client scope is optional.
ユーザ:ユーザ・スコープは、直接的または間接的にXSAを呼び出したユーザ・アイデンティティ(通例、人)に関連するデータのために用いられる。ユーザの観念は、実施形態Aのこの仕様の多くの実現例には適用できない場合もあるので、ユーザ・スコープに対応するのはオプションである。ある実現例がユーザ識別に対応しても、ユーザ・スコープはオプションである。 User: The user scope is used for data related to the user identity (usually a person) that invoked XSA directly or indirectly. Corresponding to user scope is optional, as the user's idea may not be applicable to many implementations of this specification of embodiment A. Even if some implementations support user identification, user scope is optional.
アプリケーション:アプリケーション・スコープは、XSAが実行しているアプリケーションに関連するデータのために用いられる。アプリケーションの定義は、XSA仕様の実現例に委ねられる。アプリケーション・スコープに対応するのはオプションである。 Application: The application scope is used for data related to the application that the XSA is running. Application definition is left to the implementation of the XSA specification. Corresponding to application scope is optional.
本発明の実施形態Aの仕様は、複数の変数のスコープが一体となってXSAコンテキストと呼ばれるものを形成することを述べている。XSAコンテキストは、XSAの実行前に初期化すると有用であるが、望ましいのであれば、XSA実行の間に再度使用することもできる。その場合、実現例は、XSAコンテキストがいつ、そしてどのような場合に再度使用されているか明確に定義し、潜在的なセキュリティ・ホール(security hole)を回避しなければならない。 The specification of embodiment A of the present invention states that the scopes of a plurality of variables together form what is called an XSA context. It is useful to initialize the XSA context before running XSA, but it can be used again during XSA execution if desired. In that case, the implementation must clearly define when and when the XSA context is used again, avoiding potential security holes.
以下に、本発明の実施形態Aのパイプラインについての概念を詳細に説明する。
パイプラインは、一連のXML生成器、変換器、およびシンクを定義する。パイプライン・エレメントは、XSA定義のXML動作である。
Below, the concept about the pipeline of Embodiment A of the present invention will be described in detail.
A pipeline defines a series of XML generators, converters, and sinks. Pipeline elements are XSA-defined XML operations.
パイプラインは、<pipeline>エレメントによって定義される。これは、エレメントを順序付けたリストを収容しており、リストは、必須の生成器から始まり、続いていずれかの数の変換器、そして必須のシンクで終了する。 A pipeline is defined by a <pipeline> element. This contains an ordered list of elements, starting with a mandatory generator, followed by any number of converters, and then a mandatory sink.
データ・フローは、生成器において始まり、処理すべきXML文書(複数の文書)を作成し、変換器を通過して、XMLデータの構造およびコンテンツを修正し、最後にシンクにて終了し、指定された形態のデータを配信するかまたはこれに反応する。 The data flow begins at the generator, creates the XML document (s) to be processed, passes through the converter, modifies the structure and content of the XML data, and finally ends at the sink, specifying Delivers or reacts to the form of data.
パイプラインの種々の部分間を流れるデータは、XML形式となっている。この実現例は、このデータをいずれの特定の形式で保持することも必要ではなく、SAXおよびDOMのような共通APIを用いることもできる。コンポーネント間を流れるデータに加えて、入力および出力パラメータもコンポーネント毎に用いることができる。これらのパラメータの評価順序には、この仕様では制約がない。これは、パイプラインにおける前方のコンポーネントからの出力パラメータは、パイプラインにおける後方のコンポーネントへの入力には利用できない場合もあることを意味する。唯一の制約は、パイプラインは、XSAにおける次のXML動作を実行する前に、そのパラメータ評価および実行を完了しなければならないことである。以下に、パイプラインにおいて用いられるXSAコンポーネント・タイプを説明する。まず、全コンポーネント・タイプに共通な属性の説明から開始する。 Data flowing through the various parts of the pipeline is in XML format. This implementation does not need to hold this data in any particular format, and can use common APIs such as SAX and DOM. In addition to data flowing between components, input and output parameters can also be used for each component. The order of evaluation of these parameters is not restricted by this specification. This means that output parameters from the front component in the pipeline may not be available for input to the back component in the pipeline. The only constraint is that the pipeline must complete its parameter evaluation and execution before performing the next XML operation in XSA. The following describes the XSA component type used in the pipeline. Start with a description of the attributes common to all component types.
XSAコンポーネントは、パイプライン実行中におけるある形態の作業を実行するために、パイプライン内において用いられる。XSAコンポーネントは、外部で定義され、XSA定義から引用される。XSAコンポーネントを定義するために用いられる方法、XSAコンポーネントを引用するために用いられる指名方法、およびXSAコンポーネントによって実施されるインターフェースは、実施形態Aのこの仕様では扱われない、実現例の詳細である。 XSA components are used in pipelines to perform some form of work during pipeline execution. The XSA component is defined externally and is quoted from the XSA definition. The method used to define the XSA component, the nomination method used to cite the XSA component, and the interface implemented by the XSA component are implementation details that are not addressed in this specification of Embodiment A. .
用いるコンポーネント・インスタンスの名称は、XSAコンポーネントのrefid属性において与えられる。この参照は、常に、使用中のプログラミング言語によって定義されるのと同じオブジェクト・インスタンスを引用しなければならず、何らかの方法でオブジェクトが変更された場合、これを引用している全てのXSA定義もそれに応じて更新しなければならない。 The name of the component instance to be used is given in the refid attribute of the XSA component. This reference must always refer to the same object instance defined by the programming language in use, and if the object is modified in any way, all XSA definitions that refer to it will also It must be updated accordingly.
外部から引用されることに加えて、XSAコンポーネントは、1つ以上の共通能力(ability)、即ち、入力および出力パラメータを共有する。
各XSAコンポーネントは、いずれの数の名称付入力および出力パラメータでも定義することができる。XSA定義の中では、入力パラメータは<in-param>エレメントと共に与えられ、出力パラメータは、<out-param>エレメントと共に与えられる。
<in-param>エレメントのフォーマットは次の通りである。
In addition to being quoted externally, XSA components share one or more common abilities, ie input and output parameters.
Each XSA component can be defined with any number of named input and output parameters. Within the XSA definition, input parameters are given with an <in-param> element and output parameters are given with an <out-param> element.
The format of the <in-param> element is as follows.
[表5]
<in-param name="xsl">
<!-- Value specification -->
</in-param>
<out-param>エレメントのフォーマットは次の通りである。
[Table 5]
<in-param name = "xsl">
<!-Value specification->
</ in-param>
The format of the <out-param> element is as follows.
[表6]
<out-param name="xsl">
<setvariable ...>
...
</setvariable>
</out-param>
各入力および出力パラメータの名称は、コンポーネントの実現例によって定義される。
[Table 6]
<out-param name = "xsl">
<setvariable ...>
...
</ setvariable>
</ out-param>
The name of each input and output parameter is defined by the component implementation.
以下に、本発明の実施形態Aについて指定した生成器コンポーネントを説明する。
生成器は、パイプラインにおいて処理するXMLデータを作成するために用いられるXSAコンポーネントである。どのように生成器がXMLを作成するかは、実現例毎に様々であり、その例には、XMLをファイルから読み出し、それをネットワークを通じて取り込み、データベースにアクセスしデータをXMLに変換することが含まれる。生成器の出力は、常にXMLの実現例の内部表現において正しく形成されている必要がある。XSA実行エンジンは、この要件を各生成器に強制するが、そうしなくてもよい。
The generator components specified for embodiment A of the present invention are described below.
The generator is an XSA component that is used to create XML data for processing in the pipeline. How the generator creates XML varies from implementation to implementation, including reading XML from a file, importing it through a network, accessing a database, and converting the data to XML. included. The generator output must always be correctly formed in the internal representation of the XML implementation. The XSA execution engine enforces this requirement on each generator, but it does not have to.
生成器は常にパイプラインの先頭において定義され、全てのパイプラインにおいて必要である。<generator>エレメントは、パイプラインにおいて生成器を定義するために用いられる。全てのXSAコンポーネントと同様、生成器は、名称付入力および出力パラメータに対応する。<generator>エレメントの形式は、次の通りである。 The generator is always defined at the beginning of the pipeline and is required in all pipelines. The <generator> element is used to define a generator in the pipeline. As with all XSA components, the generator supports named input and output parameters. The format of the <generator> element is as follows:
[表7]
<generator refid="mygen">
<in-param name="myinparam">
...
</in-param>
...
<out-param name="myoutparam">
...
</out-param>
...
</generator>
以下に、本発明の実施形態Aにおいて指定した、変換器コンポーネントについて説明する。
[Table 7]
<generator refid = "mygen">
<in-param name = "myinparam">
...
</ in-param>
...
<out-param name = "myoutparam">
...
</ out-param>
...
</ generator>
In the following, the transducer component specified in embodiment A of the present invention will be described.
変換器は、データをあるXML形式から別の形式に変換する際に用いられるXSAコンポーネントである。変換器がどのようにXMLを処理するかは、実現例毎に様々であり、その例には、XSLTを用いる、カスタム・コード化変更(custom coded modification)をテキスト・ノードに適用する、ソートする、有効性を判断する等が含まれる。変換器の出力は、常にXMLの実現例の内部表現において正しく形成されていることが要求され、その入力も、生成器または別の変換器のいずれから来るのであり、これら双方は正しく形成されたXMLを生成することが要求されているので、正しく形成されている。XSA実行エンジンは、この要件を各変換器に強制するが、そうしなくてもよい。変換器は、パイプライン定義の中では必要でない。変換器が現れるときは、常に生成器の後ろで、シンクの前に現れる。<transformer>エレメントは、パイプラインにおいて変換器を定義する際に用いられる。全てのXSAコンポーネントと同様、変換器は名称付入力および出力に対応する。<transformer>エレメントの形式は次の通りである。 A converter is an XSA component that is used to convert data from one XML format to another. How the converter processes the XML varies from implementation to implementation, which uses XSLT, applies custom coded modifications to text nodes, sorts , Judging effectiveness, and the like. The output of the converter is always required to be correctly formed in the internal representation of the XML implementation, and its input also comes from either the generator or another converter, both of which are correctly formed Since it is required to generate XML, it is correctly formed. The XSA execution engine enforces this requirement on each converter, but it does not have to. A converter is not required in the pipeline definition. When a converter appears, it always appears after the generator and before the sink. The <transformer> element is used to define a transformer in the pipeline. As with all XSA components, the transducer supports named inputs and outputs. The format of the <transformer> element is as follows:
[表8]
<transformer refid="mytran">
<in-param name="myinparam">
...
</in-param>
...
<out-param name="myoutparam">
...
</out-param>
...
</transformer>
以下に、本発明の実施形態Aにおいて指定されているシンク・コンポーネントについて説明する。
[Table 8]
<transformer refid = "mytran">
<in-param name = "myinparam">
...
</ in-param>
...
<out-param name = "myoutparam">
...
</ out-param>
...
</ transformer>
Hereinafter, the sink component specified in the embodiment A of the present invention will be described.
シンクは、パイプラインにおいて実行した処理から得られたXMLデータの内部表現を扱うために用いられるXSAコンポーネントである。シンクがXMLで何を行うかは、実現例毎に様々であり、その例には、XMLをファイルに書き込む、それをHTMLとしてウェブ・ブラウザに送る、またはそれからPDFを生成することが含まれる。生成器または変換器は常にシンクへの入力を生成するので、これは正しく形成される。シンクからの出力には何の制限も設定されない。 A sink is an XSA component used to handle an internal representation of XML data obtained from processing executed in a pipeline. What the sink does with XML varies from implementation to implementation, including writing the XML to a file, sending it as HTML to a web browser, or generating a PDF from it. This is correctly formed because the generator or converter always generates the input to the sink. No limit is set for the output from the sink.
シンクは、常に、パイプラインの終端において定義され、全てのパイプラインにおいて必要とされる。<sink>エレメントは、パイプラインにおいてシンクを定義する際に用いられる。全てのXSAコンポーネントと同様、シンクは名称付入力および出力パラメータに対応する。<sink>エレメントの形式は次の通りである。 A sink is always defined at the end of the pipeline and is required in all pipelines. The <sink> element is used to define a sink in the pipeline. As with all XSA components, sinks correspond to named input and output parameters. The format of the <sink> element is as follows:
[表9]
<sink refid="mysink">
<in-param name="myinparam">
...
</in-param>
...
<out-param name="myoutparam">
...
</out-param>
...
</sink>
以下に、本発明の実施形態AのXSA仕様による変数および値の仕様について説明する。
[Table 9]
<sink refid = "mysink">
<in-param name = "myinparam">
...
</ in-param>
...
<out-param name = "myoutparam">
...
</ out-param>
...
</ sink>
The variable and value specifications according to the XSA specification of Embodiment A of the present invention will be described below.
XSAにおける変数動作は、常にXSAコンテキストにおける変数に適用される。
XSA定義のルート・レベル上および条件内では、変数を設定し除去することができる。変数を設定するには、<setvariable>エレメントを用い、変数を除去するには、<removevariable>エレメントを用いる。failonerror属性は、エラーが発生した場合に、動作を中止するか否かを定義し、デフォルトでは真になっている。
以下に、本発明の実施形態Aの仕様による<setvariable>エレメントのフォーマットを示す。
Variable operations in XSA always apply to variables in the XSA context.
Variables can be set and removed on the root level of XSA definitions and within conditions. Use the <setvariable> element to set a variable, and the <removevariable> element to remove a variable. The failonerror attribute defines whether to stop the operation when an error occurs, and is true by default.
The format of the <setvariable> element according to the specification of Embodiment A of the present invention is shown below.
[表10]
<setvariable scope="request" name="var" failonerror="true">
<!--値の指定-->
</setvariable>
以下に、本発明の実施形態Aの仕様による<removevariable>エレメントのフォーマットを示す。
[Table 10]
<setvariable scope = "request" name = "var" failonerror = "true">
<!-Specify value->
</ setvariable>
The format of the <removevariable> element according to the specification of Embodiment A of the present invention is shown below.
[表11]
<removevariable scope="request" name="var" failonerror="true"/>
スコープ属性が必要であり、要求、セッション、クライアント、ユーザ、またはアプリケーションの内いずれか1つに設定しなければならない。
[Table 11]
<removevariable scope = "request" name = "var" failonerror = "true"/>
A scope attribute is required and must be set to one of request, session, client, user, or application.
名称属性が必要であり、指定されたスコープ内における変数の名称を指定する。
<null>、<literal>、<getvariable>、<mapping>、および<out-param-value>エレメントを用いて、異なる値指定を定義することができる。これらについて以下で順に説明する。特定のXSAコンテキストでは、値の指定によってある値を求め、<setvariable>動作への入力として用いる。
A name attribute is required and specifies the name of the variable within the specified scope.
Different value specifications can be defined using <null>, <literal>, <getvariable>, <mapping>, and <out-param-value> elements. These will be described in turn below. In a specific XSA context, a value is obtained by specifying the value and used as an input to the <setvariable> operation.
<null>値指定は、Javaプログラミング言語では常にヌルの参照(null reference)を求め、または他の言語とのからみ(binding)ではその同等値を求める。このエレメントには、コンテンツも属性もない。変数をヌルに設定すると、変数を全く設定しないのと同じ効果がある。<literal>値指定は、当該値に用いられる文字データを定義する。これは、XSAコンテキストには関係なく、<literal>エレメントに収容されているテキストを求める。コンポーネントは、これを数値、日付、またはその他の単純な形式に変換することができるが、このような形式変更(typing)は、XSA仕様および実現例の範囲外のことである。<literal>エレメントの例は、次の通りである。 The <null> value specification always obtains a null reference in the Java programming language or an equivalent value in binding with another language. This element has no content or attributes. Setting a variable to null has the same effect as setting no variable at all. The <literal> value specification defines the character data used for the value. This seeks the text contained in the <literal> element, regardless of the XSA context. A component can convert this to a number, date, or other simple format, but such typing is outside the scope of the XSA specification and implementation. An example of a <literal> element is as follows:
[表12]
<literal>これは文字値である</literal>
<getvariable>変数指定は、所与のスコープにおいて所与の名称を有する変数の値を求める。スコープおよび名称は属性として与えられる。<getvariable>にはコンテンツが許されていない。<getvariable>エレメントの例は、次の通りである。
[Table 12]
<literal> This is a character value </ literal>
The <getvariable> variable specification finds the value of a variable with a given name in a given scope. The scope and name are given as attributes. No content is allowed for <getvariable>. An example of a <getvariable> element is as follows:
[表13]
<getvariable scope="request" name="var"/>
スコープおよび名称属性が必要であり、スコープ属性は、要求、セッション、クライアント、ユーザ、またはアプリケーションの内いずれか1つに設定しなければならない。
[Table 13]
<getvariable scope = "request" name = "var"/>
A scope and name attribute is required, and the scope attribute must be set to any one of request, session, client, user, or application.
<mapping>値指定は、実施形態AのXSA仕様によって定義されないカスタム値指定を参照する際に用いられる。これは、先に定義したように、XSAコンポーネントと同様の入力パラメータを有することができるが、出力パラメータを有することはできない。<mapping>エレメントの例は、次の通りである。 The <mapping> value specification is used when referring to a custom value specification that is not defined by the XSA specification of Embodiment A. This can have the same input parameters as the XSA component, as defined above, but cannot have output parameters. An example of the <mapping> element is as follows.
[表14]
<mapping refd="mymapping">
<in-param name="myparam">
<literal>literalValue</literal>
</in-param>
</mapping>
<out-param-value>値指定は、<out-param>エレメントの子孫としてのみ用いることができ、<out-param>エレメントは、パイプラインにおけるXSAコンポーネントにおいて用いられ、先に定義した。<out-param>エレメントの内側にある場合、<out-param-value>が出力パラメータの値を収容し、例えば、出力パラメータの値を格納するために、他の動作の入力として用いることができる。<out-param>エレメントのコンテキストにおける<out-param-value>エレメントの例は、次の通りである。
[Table 14]
<mapping refd = "mymapping">
<in-param name = "myparam">
<literal> literalValue </ literal>
</ in-param>
</ mapping>
The <out-param-value> value specification can only be used as a descendant of the <out-param> element, and the <out-param> element is used in the XSA component in the pipeline and is defined earlier. When inside an <out-param> element, <out-param-value> contains the value of the output parameter and can be used as an input for other operations, for example, to store the value of the output parameter . An example of an <out-param-value> element in the context of an <out-param> element is as follows:
[表15]
<out-param name="out">
<setvariable scope="request" name="var">
<out-param-value/>
</setvariable>
</out-param>
以下に、本発明の実施形態Aの仕様によって定義した、条件付き動作について説明する。
[Table 15]
<out-param name = "out">
<setvariable scope = "request" name = "var">
<out-param-value />
</ setvariable>
</ out-param>
The conditional operation defined by the specification of Embodiment A of the present invention will be described below.
条件付き動作は、どのXML動作を実行するか制御する際に用いることができる。これらは、実行すべき異なるパイプライン間で選択することを意図している。
全ての条件は、ルート<if>エレメント内で与えられる。条件付き動作は、ブール論理エレメントであり、真であると、<then>エレメント内に収容されているXML動作が実行される。ブール・エレメントの評価で偽となった場合、オプションの<else>エレメントが、その場合に実行するXML動作を収容することができる。尚、<if>自体はXML動作エレメントであるので、条件付き動作をネストできることを注記しておく。
<if>XML動作のフォーマットは、次の通りである。
Conditional operations can be used to control which XML operations are executed. These are intended to choose between different pipelines to be executed.
All conditions are given in the root <if> element. A conditional action is a Boolean logic element, and if true, the XML action contained in the <then> element is executed. If the Boolean element evaluates to false, an optional <else> element can contain the XML action to perform in that case. Note that <if> itself is an XML action element, so conditional actions can be nested.
<if> The format of the XML operation is as follows.
[表16]
<if>
<!--ブール論理エレメント、and、or、not、isdefined、isoftype、equals、conditionのいずれか -->
<then>
...
</then>
<else>
...
</else>
</if>
以下に、本発明の実施形態Aの仕様による<if>エレメント内で用いられるように定義した種々のブール論理エレメントについて説明する。
[Table 16]
<if>
<!-One of Boolean logic elements, and, or, not, isdefined, isoftype, equals, condition->
<then>
...
</ then>
<else>
...
</ else>
</ if>
Hereinafter, various Boolean logic elements defined to be used in the <if> element according to the specification of Embodiment A of the present invention will be described.
<and>エレメントは、ANDブール論理演算子を定義する。<and>エレメントの内容は、1つ以上のブール論理エレメントである。
<or>エレメントは、ORブール論理演算子を定義する。<or>エレメントの内容は、1つ以上のブール論理エレメントである。
The <and> element defines an AND Boolean logic operator. The content of the <and> element is one or more Boolean logic elements.
The <or> element defines an OR Boolean logic operator. The content of the <or> element is one or more Boolean logic elements.
<not>エレメントは、NOTブール論理演算子を定義する。<not>エレメントの内容は、別のブール論理エレメントである。
<isdefined>エレメントは、先に定義したように、0個以上の値指定を収容し、実現例言語結合(implementation language binding)によって定義されているように、全ての値が非ヌルの場合、真となる。値指定が全く含まれていない場合、<isdefined>エレメントは真となる。
The <not> element defines a NOT Boolean logic operator. The content of the <not> element is another Boolean logic element.
The <isdefined> element contains zero or more value specifications, as defined above, and is true if all values are non-null, as defined by implementation language binding. It becomes. The <isdefined> element is true if no value specification is included.
<isoftype>エレメントは、先に定義したように、2つの値指定を収容しなければならず、最初の値が2番目の値によって指定されたタイプである場合、真となる。ここで、「タイプ」の意味は、実現例言語結合によって定義されている。いずれの値もヌルである場合、このエレメントは偽となる。 The <isoftype> element must contain two value specifications, as defined above, and is true if the first value is the type specified by the second value. Here, the meaning of “type” is defined by implementation language combination. If both values are null, this element is false.
<equals>エレメントは、先に定義したように1つ以上の値指定を収容し、実現例言語結合によって定義されているように、全ての値が「等しい」ときにのみ、真となる。
全ての値がヌルである場合、<equals>エレメントは真となる。一部がヌルであるが全てではない場合、偽となる。1つの値指定のみが指定されている場合、<equals>は真となる(値がヌルであっても)。
The <equals> element contains one or more value specifications as defined above, and is true only when all values are "equal" as defined by the implementation language combination.
The <equals> element is true if all values are null. False if some are null but not all. If only one value specification is specified, <equals> is true (even if the value is null).
<condition>エレメントは、カスタム条件を定義する際に用いられる。これは、出力パラメータに対応していないことを除いて、先に定義したように、XSAコンポーネントと同じ定義を有する。ブール結果がどのように評価されるかは、カスタム条件の実現例によって異なる。以下に、本発明の実施形態Aによるエラー・ハンドリング仕様について説明する。 The <condition> element is used to define custom conditions. This has the same definition as the XSA component, as defined above, except that it does not correspond to an output parameter. How Boolean results are evaluated depends on the implementation of the custom condition. The error handling specification according to Embodiment A of the present invention will be described below.
エラー・ハンドリングは、エレメントAによるXSAを用いる場合には二重となる。最初に、エラー定義があり、エラーを定義し、当該エラーの場合に何をすべきか定義する際に用いることができる。第2に、エラーは、パイプライン実行中いつでも発生する可能性がある。 Error handling is doubled when XSA by element A is used. First, there is an error definition that can be used to define an error and what to do in case of that error. Second, errors can occur at any time during pipeline execution.
名称付エラーの意味は、実施形態Aのこの仕様では、指定されていない。即ち、この仕様では、規定のエラーは与えられていない。
実施形態Aのこの仕様による各実現例は、汎用フォールバック・エラー機構(generic fall-back error mechanism)を有する必要があり、これは、XSA定義に対して定義したエラーの中で一致が得られない場合に、エラー・ハンドリングに対処する。この仕様は、このエラー・ハンドリングがどのように作用するか、またエラーの場合に何をすべきかについて定義していない。
The meaning of the named error is not specified in this specification of embodiment A. That is, in this specification, a prescribed error is not given.
Each implementation according to this specification of Embodiment A must have a generic fall-back error mechanism, which is consistent with the errors defined for the XSA definition. If not, deal with error handling. This specification does not define how this error handling works and what to do in case of an error.
エラーは、名称によって定義され、各XSA指定は、ある名称付エラーが発生した場合、何をするか指定することができる。エラーは、いずれのXML動作の前にでも、XSA定義のルートにおいて定義する。エラー定義において用いられる名称は、ツリー構造に従わなければならず、ドット(.)キャラクタが、各ツリー・レベルにおいて名称を分離する。各レベルにおいて、全ての英数字ASCIIキャラクタが許されている。正しいエラー名称の一例に、something.error.specificをあげることができる。この構造は、エラーが呼び出されたときに、どのエラー定義を用いるべきか選択するために用いられる。 Errors are defined by name, and each XSA designation can specify what to do if a named error occurs. Errors are defined in the XSA-defined route before any XML operation. Names used in error definitions must follow a tree structure, with a dot (.) Character separating the names at each tree level. At each level, all alphanumeric ASCII characters are allowed. An example of a correct error name is something.error.specific. This structure is used to select which error definition should be used when an error is invoked.
<errordef>エレメントは、エラーを定義する際に用いられる。名称属性は、エラーの名称を収容し、呼び出し属性は、XSA定義への参照を与え、エラーが発生した場合に呼び出すようにしなければならない。<errodef>エレメントの内容は、人が読むことのできるエラーの説明を収容することができ、ログへの印刷のように、デバッグのためにのみ用いられる。<errordef>エレメントの形式は、次の通りである。 The <errordef> element is used to define an error. The name attribute contains the name of the error, and the call attribute must give a reference to the XSA definition and be called when an error occurs. The content of the <errodef> element can contain a human-readable description of the error and is used only for debugging purposes, such as printing to a log. The format of the <errordef> element is as follows:
[表17]
<errordef name="some.error.name" invokes="erroHandling.xsa"/>
パイプライン実行中のいつでも、XPath条件をチェックすることができる。XPath条件が真(XPath仕様によって定義されているように)となった場合、エラー定義を探索して、最も近い一致を求める。
[Table 17]
<errordef name = "some.error.name" invokes = "erroHandling.xsa"/>
You can check XPath conditions at any time during pipeline execution. If the XPath condition is true (as defined by the XPath specification), search the error definition for the closest match.
照合機構は、ドットによって、エラー名称をトークン化する。例えば、エラーsomething.errorspecifcをsomething、errorおよびspecificにトークン化する。最も一致度が高く同じ順序のトークンを含むエラー定義を用いる。この同じ例では、エラー定義がerrors something.bogus、something.errorおよびsomething.error.morespecificに対して存在する場合、something.errorエラー定義から引用したXSA定義を呼び出す。何故なら、something.error.morespecificは一致でないからである。
<raiseerror>エレメントの形式は、次の通りである。
The matching mechanism tokenizes the error name with dots. For example, tokenize the error something.errorspecifc to something, error and specific. Use the error definition that has the highest degree of matching and contains tokens in the same order. In this same example, if an error definition exists for errors something.bogus, something.error and something.error.morespecific, the XSA definition quoted from something.error error definition is called. Because something.error.morespecific is not a match.
The format of the <raiseerror> element is as follows:
[表18]
<raiseerror test="/some/xpath/to/test" error ="some.error.name"/>
与えられたXPathは、フォーマット$scope:variable-nameを用いて、XPathパラメータ全体を通じて全てのスコープ変数(scoped variable)にアクセスできなければならない。
[Table 18]
<raiseerror test = "/ some / xpath / to / test" error = "some.error.name"/>
A given XPath must be able to access all scoped variables throughout the XPath parameter using the format $ scope: variable-name.
一実現例では、それ自体のエラー名称を自由に定義でき、XSA定義はXSAエンジンにおいて実行エラーを扱うことが可能となる。一例は、数個のリソースが失われて、エラーが発生する可能性があり、XSA定義がその場合に何をすべきか定義できるという場合であろう。この実現例は、エラー・コードを公表しなければならず、エラーを保存(reserve)しなくてもよい。即ち、XSA定義では全てのエラーを無視することができる。 In one implementation, the error name of itself can be freely defined, and the XSA definition can handle execution errors in the XSA engine. An example would be the case where several resources are lost and an error can occur, and the XSA definition can define what to do in that case. This implementation must publish the error code and not save the error. That is, all errors can be ignored in the XSA definition.
また、エラーの原因となったXSA定義に用いられていたのと同じXSAコンテンツを用いてエラー・ハンドリングXSA定義を実行しなければならない実現例もある。
以下に、本発明の実施形態Aの仕様によるカスタム動作について説明する。
In some implementations, the error handling XSA definition must be executed using the same XSA content that was used for the XSA definition that caused the error.
The custom operation according to the specification of Embodiment A of the present invention will be described below.
<operation>エレメントは、カスタムXML動作を参照する際に用いることができる。定義されている唯一の構成は、ParseClass属性であり、用いるパーザに名称を付けてカスタムXML動作の内容を解析する際に用いなければならない。この名称をパーザの実現例にマップする方法、およびパーザが実現しなければならないプログラミング・レベルのインターフェースは、各XSA実現例に特定的である。 The <operation> element can be used when referring to a custom XML operation. The only configuration defined is the ParseClass attribute, which must be used to parse the contents of a custom XML operation by naming the parser used. The method for mapping this name to a parser implementation, and the programming level interface that the parser must implement, is specific to each XSA implementation.
<operation>エレメントの内容は、用いられるパーザが利用できなければならず、パーザはこれを用いて動作を定義することができる。エレメントの内容は、XSA名称空間とは別個の名称空間に入力し、現在および今後起こり得る競合を回避するようにするとよい。 The contents of the <operation> element must be available to the parser being used, and the parser can use it to define the operation. The content of the element may be entered in a namespace that is separate from the XSA namespace to avoid current and future conflicts.
以下に、本発明の実施形態Aの仕様によるXSA実行について説明する。
XSA実行エンジンは、1つのXSAコンテキスト内において常にXSA定義を実行していなければならない。XSAコンテンツを作成しXSAを実行する全体を、アダプタと呼ぶ。アダプタの一例は、HTTPアダプタであり、HTTP要求を取り込み、XSA定義を選択し、HTTP要求内にある情報に基づいてそのコンテキストを作成し、次いでXSA定義を実行する。
The following describes XSA execution according to the specification of Embodiment A of the present invention.
The XSA execution engine must always execute the XSA definition within one XSA context. The whole of creating XSA content and executing XSA is called an adapter. An example of an adapter is an HTTP adapter that takes an HTTP request, selects an XSA definition, creates its context based on the information in the HTTP request, and then executes the XSA definition.
アダプタの名称には規則や登録は要求されない。これは、各XSAの実現例に特定的と考えられる。しかし、実現例は、アダプタ名称を定義できるので、XSA定義は、アダプタが有意にXSAを実行することができる情報を埋め込むことができる。1つの属性adapternameを有する<supports>エレメントを用いると、これが行える。いずれのXML動作の前でも、XSA定義の開始には、あらゆる数の<supports>エレメントを置くことができる。<supports>エレメントが出てこない場合、XSA実現例は、いずれのアダプタでもXSAを呼び出すことができると想定しなければならない。 No rules or registration is required for the adapter name. This is considered specific to each XSA implementation. However, since an implementation can define an adapter name, the XSA definition can embed information that allows the adapter to significantly perform XSA. This can be done using a <supports> element with one attribute adaptername. Before any XML operation, any number of <supports> elements can be placed at the beginning of an XSA definition. If no <supports> element appears, the XSA implementation must assume that any adapter can invoke XSA.
<supports>リストの一例を提示し、以下に示す。この例は、XSA定義がアダプタHTTPおよびFTPにおいてのみ実行してもよいことを示す。FILEという名称のアダプタは、XSA実現例によって、このXSAを実行することを禁止しなければならない。 An example of the <supports> list is presented below. This example shows that the XSA definition may only be executed on adapters HTTP and FTP. The adapter named FILE must be prohibited from executing this XSA by the XSA implementation.
[表19]
<xsa>
<supports adaptername="HTTP"/>
<supports adaptername="FTP"/>
...
</xsa>
前述の実施形態Aの詳細な説明を用いれば、当業者であれば、Javaプログラミング言語のような、プログラミング言語への結合を形成することができる。本発明の実施形態Aによって定義した詳細なXSA仕様に基づいた、有効なXMLサービス・アクション文書の一例を以下に示す。これは、実施形態Aによって定義したXSA仕様の特徴全てを示す訳ではない。
[Table 19]
<xsa>
<supports adaptername = "HTTP"/>
<supports adaptername = "FTP"/>
...
</ xsa>
With the detailed description of embodiment A above, one skilled in the art can form a connection to a programming language, such as the Java programming language. An example of a valid XML service action document based on the detailed XSA specification defined by embodiment A of the present invention is shown below. This does not show all the features of the XSA specification defined by Embodiment A.
[表20]
<?xml version='1.0'?>
<!DOCTYPE xsa
PUBLIC "-//Dimon//DTD XSA 1.1//EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa.dtd">
<xsa version="1.1" xmlns="http://www.dimon.is/namespaces/xsa">
<supports adaptername="HTTP"/>
<if>
<isdefined>
<getvariable scope="request" name="http.get.param"/>
</isdefined>
<then>
<pipeline>
<generator refid="index"/>
<transformer refid="resourcetrax">
<in-param name="xsl">
<literal>index.xsl</literal>
</in-param>
</transformer>
<sink refid="clipsersink">
<in-param name="outStream">
<getvariable scope="request" name="http.responsetream"/>
</in-param>
</sink>
</pipeline>
</then>
<else>
<pipeline>
<generator refid="alt"/>
<transformer refid="alttrax">
<in-param name="xsl">
<literal>alt.xsl</literal>
</in-param>
</transformer>
<sink refid="clipsersink">
<in-param name="outputStream">
<getvariable scope="request" name="http.responsestream"/>
</in-param>
</sink>
</pipeline>
</else>
</if>
<xsa>
これで、本発明の実施形態Aによって定義された、特殊目的プログラミング言語の詳細なXSA仕様の説明を終了する。
[Table 20]
<? xml version = '1.0'?>
<! DOCTYPE xsa
PUBLIC "-// Dimon // DTD XSA 1.1 // EN"
"http://www.dimon.is/dtds/xsa/1.1/xsa.dtd">
<xsa version = "1.1" xmlns = "http://www.dimon.is/namespaces/xsa">
<supports adaptername = "HTTP"/>
<if>
<isdefined>
<getvariable scope = "request" name = "http.get.param"/>
</ isdefined>
<then>
<pipeline>
<generator refid = "index"/>
<transformer refid = "resourcetrax">
<in-param name = "xsl">
<literal> index.xsl </ literal>
</ in-param>
</ transformer>
<sink refid = "clipsersink">
<in-param name = "outStream">
<getvariable scope = "request" name = "http.responsetream"/>
</ in-param>
</ sink>
</ pipeline>
</ then>
<else>
<pipeline>
<generator refid = "alt"/>
<transformer refid = "alttrax">
<in-param name = "xsl">
<literal> alt.xsl </ literal>
</ in-param>
</ transformer>
<sink refid = "clipsersink">
<in-param name = "outputStream">
<getvariable scope = "request" name = "http.responsestream"/>
</ in-param>
</ sink>
</ pipeline>
</ else>
</ if>
<xsa>
This concludes the detailed XSA specification description of the special purpose programming language defined by embodiment A of the present invention.
以上、本発明について、例示の実施形態を有するものとして説明したが、この特許出願は、その一般的原理を用いてあらゆる変形、仕様、または改造をも包含することを意図している。更に、この特許出願は、これが属する技術分野内における公知のまたは慣習的な実施に該当するような、本開示からの逸脱も包含することを意図している。本発明の精神および範囲は、添付した特許請求の範囲の用語によってのみ限定されるものとする。 Although the present invention has been described as having exemplary embodiments, this patent application is intended to cover any variations, specifications, or modifications using its general principles. Moreover, this patent application is intended to cover any deviations from the present disclosure as fall within the known or customary practice within the art to which it belongs. The spirit and scope of the present invention shall be limited only by the terms of the appended claims.
Claims (25)
−外部クライアントから要求を受ける手段と、
−コンテキスト独立エンジンと、
−前記外部クライアントと前記コンテキスト独立エンジンとの間で通信を行い、前記コンテキスト独立エンジンを特定のアプリケーション・コンテキストに適応させる少なくとも1つのアダプタ・モジュールと、
−コンピュータ・ネットワーク上に常駐する少なくとも1つのバック・エンド・システムに接続され、前記少なくとも1つのバック・エンド・システム・データを、更なる処理のために準備ができている構造化データとして公開するように構成された少なくとも1つの生成器モジュールと、
−前記少なくとも1つの変換器に接続され、前記処理した構造化データを受け、該処理した構造化データに応じての解釈および反応と、前記アダプタ・モジュールを通じての前記要求元の外部クライアントへの前記処理した構造化データの返送と、の一方または双方を行うように構成された、少なくとも1つのシンク・モジュールと、
を備えており、
前記外部クライアントと前記コンテキスト独立エンジンとの間の通信は、あらゆる構造化データの処理を管理するために設計された、特殊目的プログラミング言語で書かれた電子文書に定義されている既定の1組の命令にしたがって、前記構造化データの処理を実行するため、少なくとも1つの生成器モジュールと少なくとも1つのシンク・モジュールとを選択する手段を備えている、管理システム。 A management system for execution of tasks including context independent processing of structured data,
-Means for receiving requests from external clients;
-A context-independent engine;
-At least one adapter module that communicates between the external client and the context independent engine to adapt the context independent engine to a specific application context;
Connected to at least one back-end system residing on the computer network and exposing the at least one back-end system data as structured data ready for further processing At least one generator module configured as follows:
-Connected to the at least one converter, receiving the processed structured data, interpreting and reacting according to the processed structured data, and the requesting external client through the adapter module; At least one sink module configured to perform one or both of returning structured data processed;
With
The communication between the external client and the context-independent engine is a predefined set of electronic documents written in a special purpose programming language designed to manage the processing of any structured data. A management system comprising means for selecting at least one generator module and at least one sink module to perform processing of the structured data according to instructions.
−あらゆるODBCまたはJDBC準拠データベース、
−前記管理システムを実行中のコンピュータ上のファイル・システム、
−ハイパーテキスト転送プロトコル(HTTP)を用いて通信可能なあらゆるデータ源、
−シンプル・オブジェクト・アクセス・プロトコル(SOAP)を用いて通信可能なあらゆるデータ源、
−マイクロソフトExchangeTM個人情報管理(PIM)システム、
−ロータスDominoTM個人情報管理(PIM)システム、
−軽量ディレクトリ・アクセス・プロトコル(LDAP)によるあらゆるディレクトリ・サービス、
−シンプル・メール転送プロトコル(SMTP)、ポスト・オフィス・プロトコル(POP/POP3)またはインターネット・メッセージ・アクセス・プロトコル(IMAP)によるあらゆる電子メール・システム、
の少なくとも1つと通信し、それらのネーティブ・データ・フォーマットをXMLフォーマットに変換するように構成されている、管理システム。 10. A management system according to any of claims 1 to 9, wherein the at least one generator module comprises the following back end system-any OBBC or JDBC compliant database
A file system on a computer running the management system,
Any data source that can communicate using the Hypertext Transfer Protocol (HTTP),
-Any data source that can communicate using Simple Object Access Protocol (SOAP);
-Microsoft Exchange ™ personal information management (PIM) system,
-Lotus Domino ™ personal information management (PIM) system,
Any directory service with Lightweight Directory Access Protocol (LDAP);
Any email system with Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP / POP3) or Internet Message Access Protocol (IMAP),
A management system configured to communicate with at least one of the plurality and convert their native data format to XML format.
−少なくとも1つのネットワーク・クライアントから、バック・エンド・システム内に常駐するコンテンツに対する要求を受ける少なくとも1つのアダプタ・モジュールと、
−少なくとも1つのステップで、XMLソース・コンテンツを、前記少なくとも1つのクライアントに適したマークアップに変換する変換器モジュールであって、
−前記XMLソース・コンテンツをクライアントには独立したマークアップに変換し、
−前記クライアント独立マークアップを、前記コンテンツを要求した特定のタイプのクライアントに適したバージョンに適応させること、
を含む前記の変換器モジュールと、
−前記マークアップを前記クライアントに配信するシンク・モジュールと、
を備えている、管理システム。 The management system according to any one of claims 1 to 10, wherein the system is a presentation system,
At least one adapter module that receives requests for content residing in the back end system from at least one network client;
A converter module for converting XML source content into markup suitable for said at least one client in at least one step,
-Converting the XML source content into markup independent of the client;
Adapting the client independent markup to a version suitable for the particular type of client that requested the content;
Said converter module comprising:
A sink module for delivering the markup to the client;
Management system equipped with.
−移植可能文書フォーマット(PDF)、
−クライアント特定ハイパーテキスト・マークアップ言語(HTML)、
−クライアント特定ワイヤレス・マークアップ言語(WML)、
−ショート・メッセージ・サービス(SMS)、
−マルチメディア・メッセージ・サービス(MMS)、および
−コンパクトHTML(cHTML)、
−xHTML、
の内の1つである、管理システム。 12. The management system according to claim 1, wherein the format of the request from the at least one client is the following format: portable document format (PDF),
-Client specific hypertext markup language (HTML),
-Client specific wireless markup language (WML),
-Short Message Service (SMS),
-Multimedia message service (MMS), and-Compact HTML (cHTML),
-XHTML,
A management system that is one of
−標準化電子業務プロトコルを通じて外部システムと通信するように構成された少なくとも1つのアダプタ・モジュールと、
−発信元および宛先システムから業務データを抽出し、それをXMLとして公開するように構成された少なくとも1つの生成器モジュールと、
−関連するXML業務ソース・データを業務メッセージに変換するように構成された少なくとも1つの変換器モジュールと、
−前記業務メッセージを配信するように構成された少なくとも1つのシンク・モジュールと、
を備えている、管理システム。 The management system according to any of claims 1 to 12, wherein the system is a messaging system;
-At least one adapter module configured to communicate with an external system through a standardized electronic business protocol;
-At least one generator module configured to extract business data from the source and destination systems and publish it as XML;
-At least one converter module configured to convert the associated XML business source data into a business message;
-At least one sink module configured to deliver the business message;
Management system equipped with.
−外部クライアントからの呼び出しなしで、XML処理タスクの実行を開始する手段と、
−異種の発信元および宛先システム間でのデータ同期手段であって、
・少なくとも1つの生成器モジュールが前記発信元システムからデータを抽出し、それをXMLソース・データに変換し、
・少なくとも1つの変換器モジュールが、前記XMLソース・データを、前記宛先システムへの配信に適合するXMLフォーマットに変換し、
・少なくと1つのシンク・モジュールが、前記処理したXMLを前記宛先システムに配信する手段を有する、
前記のデータ同期手段と、
−業務プロセス管理および実行のための手段であって、業務プロセスの個々の各タスクを定義し、単一のXML処理タスクとして実行する、手段と、
−実行中の業務プロセスのステータスに関する情報と共に、ハイパーテキスト・ファイル集合をワールド・ワイド・ウェブ上に公表する手段と、
を備えている、管理システム。 15. The management system according to claim 1, wherein the system is an integrated system.
Means for initiating execution of an XML processing task without a call from an external client;
-Means for synchronizing data between different source and destination systems,
At least one generator module extracts data from the source system and converts it to XML source data;
At least one converter module converts the XML source data into an XML format suitable for delivery to the destination system;
At least one sink module has means for delivering the processed XML to the destination system;
The data synchronization means;
Means for business process management and execution, wherein each task of the business process is defined and executed as a single XML processing task;
-A means for publishing a set of hypertext files on the World Wide Web along with information on the status of running business processes;
Management system equipped with.
−外部クライアントから、命令集合によって定義された、既定のコンテキスト依存構造化データ処理タスクの実行要求を受けるステップであって、前記構造化データ処理タスクの各々を、あらゆる構造化データの処理の管理用に設計した特殊目的上位プログラミング言語を用いて、命令集合にエンコードするステップと、
−前記命令集合を解釈して有効性を判断し、前記命令集合と、前記外部クライアントからの要求において発見した情報とに基づいて、コンテキスト依存実行環境を設定するステップと、
−前記コンテキスト依存構造化データ処理タスクを実行するステップであって、該実行が、
・前記ネットワーク上のバック・エンド・システムに接続し、ネーティブ・バック・エンド・システム・データを構造化ソース・データに変換するステップと、オプションとして、
・前記ソース構造化データを、処理した構造化データに変換するステップと、
・前記処理した構造化データへの反応と、何らかの方法での前記要求元クライアントへの前記処理した構造化データの返送と、の一方または双方を行うステップと、
を含む、ステップと、
を備えている、方法。 A method for managing and executing structured data processing tasks in a network comprising a plurality of network devices, comprising:
A step of receiving an execution request of a predetermined context-dependent structured data processing task defined by an instruction set from an external client, wherein each of the structured data processing tasks is used for managing processing of all structured data; Encoding into a set of instructions using a special purpose higher level programming language designed for
-Interpreting the instruction set to determine validity; setting a context-dependent execution environment based on the instruction set and information found in the request from the external client;
-Executing said context-dependent structured data processing task, said execution comprising:
Connecting to a back end system on the network and converting native back end system data to structured source data, and optionally,
Converting the source structured data into processed structured data;
Performing one or both of reacting to the processed structured data and returning the processed structured data to the requesting client in some way;
Including steps, and
A method.
−ODBCまたはJDBC準拠データベース、
−前記管理システムを実行中のコンピュータ上のファイル・システム、
−ハイパーテキスト転送プロトコル(HTTP)を通して通信可能なあらゆるデータ源、
−シンプル・オブジェクト・アクセス・プロトコル(SOAP)を通して通信可能なあらゆるデータ源、
−マイクロソフトExchangeTM個人情報管理(PIM)システム、
−ロータスDominoTM個人情報管理(PIM)システム、
−軽量ディレクトリ・アクセス・プロトコル(LDAP)によるあらゆるディレクトリ・サービス、
−シンプル・メール転送プロトコル(SMTP)、ポスト・オフィス・プロトコル(POP/POP3)またはインターネット・メッセージ・アクセス・プロトコル(IMAP)によるあらゆる電子メール・システム、
の内少なくとも1つに対応するフォーマットから、XMLフォーマットへの変換を含む、方法。 24. A method according to any of claims 17 to 23, wherein converting the source structured data into processed structured data comprises the following back-end system--OBBC or JDBC compliant database:
A file system on a computer running the management system,
Any data source that can communicate through the Hypertext Transfer Protocol (HTTP),
Any data source that can communicate through Simple Object Access Protocol (SOAP),
-Microsoft Exchange ™ personal information management (PIM) system,
-Lotus Domino ™ personal information management (PIM) system,
Any directory service with Lightweight Directory Access Protocol (LDAP);
Any email system with Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP / POP3) or Internet Message Access Protocol (IMAP),
Including a conversion from a format corresponding to at least one of the above to an XML format.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40364102P | 2002-08-16 | 2002-08-16 | |
IS6509 | 2002-08-16 | ||
PCT/IS2003/000024 WO2004017230A1 (en) | 2002-08-16 | 2003-08-15 | System and method for a context-independent framework for management and execution of xml processing tasks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006510955A true JP2006510955A (en) | 2006-03-30 |
Family
ID=36790989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004528803A Pending JP2006510955A (en) | 2002-08-16 | 2003-08-15 | Context-independent framework system and method for managing and executing XML processing tasks |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1540528A1 (en) |
JP (1) | JP2006510955A (en) |
AU (1) | AU2003249590A1 (en) |
WO (1) | WO2004017230A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL1666074T3 (en) | 2004-11-26 | 2008-10-31 | Baestarro Gmbh & Co Kg | Disinfection lamp |
US7328199B2 (en) | 2005-10-07 | 2008-02-05 | Microsoft Corporation | Componentized slot-filling architecture |
US7606700B2 (en) | 2005-11-09 | 2009-10-20 | Microsoft Corporation | Adaptive task framework |
US7822699B2 (en) | 2005-11-30 | 2010-10-26 | Microsoft Corporation | Adaptive semantic reasoning engine |
US7933914B2 (en) | 2005-12-05 | 2011-04-26 | Microsoft Corporation | Automatic task creation and execution using browser helper objects |
US7831585B2 (en) | 2005-12-05 | 2010-11-09 | Microsoft Corporation | Employment of task framework for advertising |
WO2007129224A2 (en) * | 2006-02-10 | 2007-11-15 | Make Technologies, Inc. | Legacy software modernization system |
US7996783B2 (en) | 2006-03-02 | 2011-08-09 | Microsoft Corporation | Widget searching utilizing task framework |
WO2008039929A1 (en) * | 2006-09-27 | 2008-04-03 | Educational Testing Service | Method and system for xml multi-transform |
CN114489950A (en) * | 2022-01-27 | 2022-05-13 | 上海富数科技有限公司 | Component adapting method and device, electronic equipment and storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826597B1 (en) * | 1999-03-17 | 2004-11-30 | Oracle International Corporation | Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients |
US6810429B1 (en) * | 2000-02-03 | 2004-10-26 | Mitsubishi Electric Research Laboratories, Inc. | Enterprise integration system |
US20020046301A1 (en) * | 2000-08-11 | 2002-04-18 | Manugistics, Inc. | System and method for integrating disparate networks for use in electronic communication and commerce |
US7149969B1 (en) * | 2000-10-18 | 2006-12-12 | Nokia Corporation | Method and apparatus for content transformation for rendering data into a presentation format |
-
2003
- 2003-08-15 AU AU2003249590A patent/AU2003249590A1/en not_active Abandoned
- 2003-08-15 EP EP03788000A patent/EP1540528A1/en not_active Withdrawn
- 2003-08-15 WO PCT/IS2003/000024 patent/WO2004017230A1/en not_active Application Discontinuation
- 2003-08-15 JP JP2004528803A patent/JP2006510955A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2004017230A1 (en) | 2004-02-26 |
EP1540528A1 (en) | 2005-06-15 |
AU2003249590A1 (en) | 2004-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060155529A1 (en) | System and method for a context-independent framework for management and execution of xml processing tasks | |
US8326856B2 (en) | Method and apparatus of automatic method signature adaptation for dynamic web service invocation | |
US6925631B2 (en) | Method, computer system and computer program product for processing extensible markup language streams | |
US7194683B2 (en) | Representing and managing dynamic data content for web documents | |
US7165239B2 (en) | Application program interface for network software platform | |
US7188158B1 (en) | System and method for component-based software development | |
US7162687B2 (en) | JSP tag libraries and web services | |
US7962925B2 (en) | System and method for XML data binding | |
US7194733B2 (en) | Transformation of an asynchronous transactional messaging language into a web services compatible language | |
US9116762B2 (en) | XML remote procedure call (XML-RPC) | |
US8626803B2 (en) | Method and apparatus for automatically providing network services | |
US20030115548A1 (en) | Generating class library to represent messages described in a structured language schema | |
US20020099738A1 (en) | Automated web access for back-end enterprise systems | |
US20030037181A1 (en) | Method and apparatus for providing process-container platforms | |
JP2006510955A (en) | Context-independent framework system and method for managing and executing XML processing tasks | |
US6829758B1 (en) | Interface markup language and method for making application code | |
Chowdhury et al. | Integration of legacy systems in software architecture | |
Ennis | CORBA and XML Integration in Enterprise Systems | |
Jacobsen et al. | Modeling interface definition language extensions | |
US7305667B1 (en) | Call back structures for user defined DOMs | |
Maarouf et al. | XML integrated environment for service-oriented data management | |
KR100420103B1 (en) | System And Method For Implementation Of Web Application Over XML | |
Zdun et al. | Content conversion and generation on the web: A pattern language | |
Emir et al. | Scalable programming abstractions for XML services | |
Käbisch et al. | XML-based Web service generation for microcontroller-based sensor actor networks |