Network Working Group                                          M. Terada
Request for Comments: 4154                                    NTT DoCoMo
Category: Informational                                      K. Fujimura
                                                                     NTT
                                                          September 2005
        

Voucher Trading System Application Programming Interface (VTS-API)

クーポン取引システムアプリケーションプログラミングインターフェイス(VTS-API)

Status of This Memo

このメモのステータス

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

このメモはインターネットコミュニティのための情報を提供します。それはどんな種類のインターネット標準を指定しません。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2005).

著作権(C)インターネット協会(2005)。

IESG Note

IESG注意

This document is not a candidate for any level of Internet Standard. This document specifies the Voucher Trading System Application Programming Interface (VTS-API), which assumes that the VTS plug-in is trusted by its user. The application making calls to VTS-API ought to authenticate the VTS plug-in and securely bind the plug-in with the VTS provider information specified in the Voucher Component. However, this document does not specify an approach to application authentication. The VTS-API should not be used without being augmented by an application authentication mechanism.

この文書はインターネットStandardのどんなレベルの候補ではありません。この文書では、VTSプラグインは、その利用者から信頼されていることを前提とクーポン取引システムアプリケーションプログラミングインターフェイス(VTS-API)を指定します。 VTS-APIへの呼び出しを行うアプリケーションは、VTSプラグインを認証し、安全バウチャーコンポーネントで指定されたVTSプロバイダ情報とプラグインを結合するべきです。しかし、この文書では、アプリケーションの認証へのアプローチを指定していません。 VTS-APIは、アプリケーションの認証機構により増強されることなく、使用すべきではありません。

Abstract

抽象

This document specifies the Voucher Trading System Application Programming Interface (VTS-API). The VTS-API allows a wallet or other application to issue, transfer, and redeem vouchers in a uniform manner independent of the VTS implementation. The VTS is a system for securely transferring vouchers; e.g., coupons, tickets, loyalty points, and gift certificates. This process is often necessary in the course of payment and/or delivery transactions.

このドキュメントは、クーポン取引システムアプリケーションプログラミングインターフェイス(VTS-API)を指定します。 VTS-APIは、問題の財布または他のアプリケーションを可能にする転送、およびVTS実装の均一独立にバウチャーを償還します。 VTS確実伝票を転送するためのシステムです。例えば、クーポン、チケット、ロイヤリティポイント、およびギフト券。このプロセスは、支払いおよび/または配達取引の過程でしばしば必要です。

Table of Contents

目次

   1.  Introduction .................................................  3
   2.  Processing Model .............................................  4
   3.  Design Overview ..............................................  6
   4.  Concepts .....................................................  6
   5.  Interface Definitions ........................................  8
       5.1. VTSManager ..............................................  8
            5.1.1. getParticipantRepository .........................  8
            5.1.2. getVoucherComponentRepository ....................  8
       5.2. ParticipantRepository ...................................  9
            5.2.1. lookup ...........................................  9
       5.3. Participant .............................................  9
            5.3.1. getIdentifier .................................... 10
            5.3.2. getVTSAgent ...................................... 10
       5.4. VTSAgent ................................................ 10
            5.4.1. login ............................................ 11
            5.4.2. logout ........................................... 12
            5.4.3. prepare .......................................... 12
            5.4.4. issue ............................................ 13
            5.4.5. transfer ......................................... 14
            5.4.6. consume .......................................... 15
            5.4.7. present .......................................... 16
            5.4.8. cancel ........................................... 17
            5.4.9. resume ........................................... 18
            5.4.10. create .......................................... 18
            5.4.11. delete .......................................... 19
            5.4.12. getContents ..................................... 19
            5.4.13. getSessions ..................................... 19
            5.4.14. getLog .......................................... 20
            5.4.15. addReceptionListener ............................ 20
            5.4.16. removeReceptionListener ......................... 21
       5.5. Session ................................................. 21
            5.5.1. getIdentifier .................................... 21
            5.5.2. getVoucher ....................................... 22
            5.5.3. getSender ........................................ 22
            5.5.4. getReceiver ...................................... 22
            5.5.5. isPrepared ....................................... 22
            5.5.6. isActivated ...................................... 23
            5.5.7. isSuspended ...................................... 23
            5.5.8. isCompleted ...................................... 23
       5.6. Voucher ................................................. 23
            5.6.1. getIssuer ........................................ 23
            5.6.2. getPromise ....................................... 24
            5.6.3. getCount ......................................... 24
       5.7. VoucherComponentRepository .............................. 24
            5.7.1. register ......................................... 24
       5.8. VoucherComponent ........................................ 25
        
            5.8.1. getIdentifier .................................... 25
            5.8.2. getDocument ...................................... 26
       5.9. ReceptionListener ....................................... 26
            5.9.1. arrive ........................................... 26
       5.10. Exceptions ............................................. 27
   6.  Example Code ................................................. 28
   7.  Security Considerations ...................................... 29
   8.  Acknowledgements ............................................. 30
   9.  Normative References ......................................... 30
   10. Informative References ....................................... 30
        
1. Introduction
1. はじめに

This document specifies the Voucher Trading System Application Programming Interface (VTS-API). The motivation and background of the Voucher Trading System (VTS) are described in Requirements for Generic Voucher Trading [VTS].

このドキュメントは、クーポン取引システムアプリケーションプログラミングインターフェイス(VTS-API)を指定します。バウチャー取引システム(VTS)の動機と背景は、汎用券トレーディング[VTS]の要件に記載されています。

A voucher is a logical entity that represents a certain right, and it is logically managed by the VTS. A voucher is generated by the issuer, traded among users, and finally collected using VTS. The terminology and model of the VTS are also described in [VTS].

バウチャーは、特定の権利を表す論理エンティティであり、それは論理的にVTSによって管理されています。バウチャーは、発行者によって生成されたユーザー間で取引され、最後にVTSを使用して収集されます。 VTSの用語とモデルも[VTS]に記載されています。

VTSes can be implemented in different ways, such as a centralized VTS, which uses a centralized online server to store and manage all vouchers, or a distributed VTS, which uses per-user smartcards to maintain the vouchers owned by each user. However, the VTS-API allows a caller application to issue, transfer, and redeem vouchers in a uniform manner independent of the VTS implementation. Several attempts have been made to provide a generic payment API. Java Commerce Client [JCC] and Generic Payment Service Framework [GPSF], for example, introduce a modular wallet architecture that permits diverse types of payment modules to be added as plug-ins and supports both check-like/cash-like payment models. This document is inspired by these approaches but its scope is limited to the VTS model, in which the cash-like payment model is assumed and vouchers are directly or indirectly transferred between the sender (transferor) and receiver (transferee) via the VTS. This document is not intended to support API for SET, e-check, or other payment schemes that do not fit the VTS model.

VTSesは、このようなすべてのクーポンを格納し、管理するための集中型オンラインサーバーを使用集中VTS、または各ユーザが所有するバウチャーを維持するために、ユーザごとのスマートカードを使用する分散VTSなど様々な方法で実装することができます。しかし、VTS-APIは、問題に呼び出し側アプリケーションを可能に転送し、VTSの実装の均一な方法とは独立にバウチャーを引き換えます。いくつかの試みは、一般支払APIを提供する試みがなされてきました。 Javaのコマースクライアント[JCC]と一般的な決済サービスフレームワーク[GPSF]は、例えば、両方のチェックのような/現金などの支払モデルをプラグインとして追加する支払いモジュールの多様な種類を許可し、サポートしているモジュラー財布アーキテクチャを紹介します。この文書では、これらのアプローチに触発されたが、その範囲は、現金のような支払いモデルが仮定され、バウチャーを直接または間接的にVTSを介して送信元(転送元)と受信機(譲受人)との間で転送されたVTSモデルに限定されます。この文書は、SET、電子小切手、またはVTSモデルに適合しない他の支払方式にAPIをサポートするものではありません。

Unlike the APIs provided in JCC and GPSF, which are designed to transfer only monetary values, this API enables the transfer of a wide range of values through the use of XML-based Generic Voucher Language [GVL]. The monetary meaning of the voucher is interpreted by the upper application layer using the information described in the language. This approach makes it possible to provide a simpler API in the voucher-transfer layer and enhances runtime efficiency. The

唯一の金額を転送するように設計されているJCCとGPSFで提供されるAPIとは異なり、このAPIは、XMLベースの汎用バウチャー言語の使用により、広範囲の値[GVL]の転送を可能にします。バウチャーの金銭的意味は言語で記述された情報を用いて、上位のアプリケーション層によって解釈されます。このアプローチは、バウチャー・転写層にシンプルなAPIを提供することを可能にし、実行時の効率を向上させます。ザ・

API specification in this document is described in the Java language syntax. Bindings for other programming languages may be completed in a future version of this document or in separate related specifications.

このドキュメントのAPI仕様は、Java言語の構文で記述されています。他のプログラミング言語のバインディングは、このドキュメントの将来のバージョンでまたは別の関連する仕様に完了することができます。

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]

この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はあります[RFC2119]に記載されているように解釈されるべき

2. Processing Model
2.処理モデル

This section provides the processing model in which the VTS-API is used. A part of the text in this section has been taken from the Generic Voucher Language specification [GVL].

このセクションでは、VTS-APIが使用される処理モデルを提供します。このセクション内のテキストの一部は、一般的なバウチャー言語仕様[GVL]から取られています。

There are several ways to implement VTS. For discount coupons or event tickets, for example, a smartcard-based distributed offline VTS is often preferred, whereas for bonds or securities, a centralized online VTS is preferred. While distributed VTSes would utilize public (asymmetric) key-based or shared (symmetric) key-based cryptographic challenge-and-response protocols to trade vouchers securely, centralized VTSes would utilize transactions that rewrite ownerships of vouchers on their database. Therefore, it is impractical to define standard protocols for issuing, transferring, or redeeming vouchers at this time.

VTSを実装する方法はいくつかあります。割引クーポンやイベントチケットの場合は、例えば、スマートカードベースの分散オフラインVTSは、多くの場合、債券や証券のに対し、中央集中型のオンラインVTSが好ましいが、好ましいです。分散VTSesが確実バウチャーを交換するためにパブリック(非対称)に基づくキーまたは共有(対称)鍵ベースの暗号化チャレンジ・アンド・レスポンスプロトコルを利用するであろうが、集中VTSesは、そのデータベースに伝票の所有権を書き換えトランザクションを利用するであろう。したがって、この時点で転写、発行のための標準プロトコル、または償還バウチャーを定義することは非現実的です。

To provide implementation flexibility, this document assumes a modular wallet architecture that allows multiple VTSes to be added as plug-ins. In this architecture, instead of specifying a standard voucher transfer protocol, two specifications, Voucher Component and VTS-API, are standardized (Figure 1).

実装の柔軟性を提供するために、この文書は、複数VTSesはプラグインとして追加することを可能にするモジュラー財布アーキテクチャを想定しています。代わりに、標準の伝票転送プロトコル、2つの仕様を指定するこのアーキテクチャでは、バウチャーコンポーネントとVTS-APIは、(図1)標準化されています。

   Sender wallet/Issuing system      Receiver wallet/Collecting system
   +---------------------------+       +---------------------------+
   |                           |       |                           |
   |  |                    Voucher Component                    |  |
   |  |          (Specifies VTS Provider and Promise)           |  |
   |  |-------------------------------------------------------->|  |
   |  |                        |       |                        |  |
   |  |         Intention to receive and payment (option)       |  |
   |  |<- - - - - - - - - - - - - - - - - - - - - - - - - - - - |  |
   |  |                        |       |                        |  |
   |  |                        |       |                        |  |
   |  | Issue/transfer/  VTS   |       |   VTS      Register    |  |
   |  | redeem request   plug-in       |   plug-in  Listener(*1)|  |
   |  |------------------>|    |       |    |<------------------|  |
   |  | (VTS API)         |<- - - - - - - ->|         (VTS API) |  |
   |  |                   | VTS-specific    |                   |  |
   |  |                   | protocol if VTS |                   |  |
   |  |                   | is distributed  |                   |  |
   |  |  Result           |<- - - - - - - ->|       Notify(*2)  |  |
   |  |<------------------|    |       |    |------------------>|  |
   +---------------------------+       +---------------------------+
        

(*1) Registration is optional. Note also that the VTS plug-ins are usually pre-registered when the wallet or collecting system is started.

(* 1)登録は任意です。注また、財布や収集システムの起動時にVTSプラグインは通常、事前に登録されていること。

(*2) If a listener is registered.

(* 2)リスナーが登録されている場合。

Figure 1. Wallet architecture with VTS plug-ins

VTSプラグイン図1.ウォレットアーキテクチャ

In this architecture, a VTS provides a logical view of vouchers called a Valid Voucher Set (VVS), which is a set that includes the vouchers <I,P,H> managed by the VTS [VTS]. A user's wallet can access (e.g., view, transfer, and redeem) the subset of the VVS that includes a set of vouchers owned by the user by interacting with the VTS plug-in via the VTS-API. Likewise, an issuing system can issue a voucher and add it to the VVS, and a collecting system can be notified of the redemption of vouchers via the VTS-API.

このアーキテクチャでは、VTSは、バウチャーを含むセットである有効券セット(VVS)と呼ばれる伝票の論理ビューを提供する<I、P、H> VTS [VTS]によって管理。ユーザの財布は、VTSと相互作用することにより、ユーザが所有しているバウチャーのセットを含むVVSのサブセット(例えば、ビュー、転送、および償還)にアクセスすることができるプラグインVTS-APIを介し。同様に、発行システムは、バウチャーを発行し、VVSにそれを追加し、収集システムは、VTS-APIを介したバウチャーの償還の通知を受けることができますすることができます。

After a sender and a receiver agree on what vouchers are to be traded and which VTS is to be used, the issuing system or wallet system requests the corresponding VTS plug-in to permit the issue, transfer, or redemption transactions to be performed via the VTS-API. The VTS then logically rewrites the ownership of the vouchers on the VVS using the VTS-specific protocol. Since the VTS is responsible for preventing illegal acts on vouchers like forgery or reproduction, as required in [VTS], the protocol would include a cryptographic challenge-and-response (in a distributed VTS) or a transactional database manipulation with adequate access controls (in a centralized VTS). Finally, a completion event is sent to the wallet systems or issuing/collecting systems.

送信者と受信者の後に取引しているVTSを使用する場合には、発行システムや財布システムは、対応するVTSプラグインを介して行わなければ問題、転送、または償還取引を許可するように要求されるものをバウチャーに同意VTS-API。 VTSは、次いで、論理VTS固有のプロトコルを使用してVVSにバウチャーの所有権を書き換えます。 VTSは[VTS]で必要に応じて、偽造や再生等バウチャーに違法行為を防止する責任があるので、プロトコルは(暗号チャレンジ・アンド・レスポンス(分散VTS)、または適切なアクセス制御とトランザクションデータベース操作を含むであろう集中型のVTSで)。最後に、完了イベントは、ウォレットシステムに送信されるか、またはシステムを収集/発行します。

This document describes the VTS-API specification. See [GVL] for the Voucher Component specification that gives the syntax and semantics for describing and interpreting the meaning of vouchers.

このドキュメントでは、VTS-APIの仕様を説明しています。バウチャーの意味を説明して解釈するための構文と意味を与えるクーポンコンポーネント仕様の[GVL]を参照してください。

3. Design Overview
3.設計の概要

We have adopted the following approach to specify the VTS-API.

私たちは、VTS-APIを指定するには、次のアプローチを採用しています。

1) Provide an abstract and uniform API that encapsulates the VTS implementation. For example, a common API is provided for both centralized and distributed VTSes. Issuers and application developers have more freedom in VTS selection.

1)VTSの実装をカプセル化する抽象的で均一なAPIを提供します。例えば、一般的なAPIは、集中型と分散型の両方VTSesするために設けられています。発行者およびアプリケーション開発者は、VTSの選択でより多くの自由を持っています。

2) To provide an abstract and uniform API, this document introduces an interface called VTSAgent that is associated with a holder and provides methods to manipulate vouchers held by its holder. Vouchers are accessed through the methods provided by the VTSAgent.

2)抽象的で均一APIを提供するために、このドキュメントは、ホルダに関連付けられ、その保持部に保持された伝票を操作するための方法を提供されるVTSAgentと呼ばれるインタフェースを導入します。バウチャーはVTSAgentによって提供される方法を介してアクセスされます。

3) Use existing standards for the VTS branding mechanism (negotiation). This document assumes that the VTS to be used for sending a voucher has settled the VTS-APIs are called. Negotiation can be done within the upper application layer using other standards (e.g., [IOTP] or [ECML]), if necessary.

3)VTSブランディングメカニズム(交渉)のための既存の規格を使用してください。この文書では、バウチャーを送信するために使用されるVTSは、VTS-APIが呼ばれて落ち着いていることを前提としています。ネゴシエーションは、他の規格を使用して、上位アプリケーション層(例えば、[IOTP]または[ECML])、必要に応じて内で行うことができます。

4) Support only the push-type voucher transfer interface, in which the voucher transfer session is initiated by the transferor side. A pull-type voucher transfer interface can be implemented on top of the push-type VTS interface at the application level.

4)伝票転送セッションは、譲渡側によって開始されただけプッシュ型伝票転送インタフェースをサポートします。プル型伝票転送インタフェースは、アプリケーション・レベルでプッシュ型VTSインターフェースの上に実装することができます。

4. Concepts
4.概念

The VTS-API consists of the following interfaces. A VTS is required to implement all of the interfaces except ReceptionListener, which is intended to be implemented by wallets or other applications that use VTS.

VTS-APIは、次のインターフェイスで構成されています。 VTSは、財布やVTSを使用する他のアプリケーションによって実装されることが意図されるReceptionListener、を除いてすべてのインターフェイスを実装するために必要とされます。

VTSManager Provides the starting point for using a VTS plug-in. All of the objects needed to manipulate vouchers can be directly or indirectly acquired via the VTSManager. A VTSManager maintains the two repositories: a ParticipantRepository and a VoucherComponentRepository, both of which are described below.

VTSManagerはVTSプラグインを使用するための出発点を提供します。バウチャーを操作するのに必要なすべてのオブジェクトは、直接的または間接的にVTSManagerを介して取得することができます。以下に記載されている両方ともParticipantRepositoryとVoucherComponentRepository:VTSManagerは2つのリポジトリを維持します。

ParticipantRepository Provides the access points of participants that are to be trading partners. A ParticipantRepository maintains Participants and acts as an "address book" of trading partners.

ParticipantRepositoryは、取引先であることをしている参加者のアクセスポイントを提供します。 ParticipantRepositoryは、取引先の「アドレス帳」と参加者との行為を維持します。

Participant Represents a participant (such as an issuer, a holder, or a collector). A Participant interface knows how to obtain the corresponding VTSAgent described below.

参加者(発行者、所有者、又はコレクタなど)参加者を表します。参加者インターフェースは、対応VTSAgent後述する取得方法を知っています。

VTSAgent (extends Participant) Provides the access point of vouchers in the Valid Voucher Set (VVS) that is logically managed by the VTS. A VTSAgent provides a means of manipulating vouchers held by its holder according to basic trading methods; i.e., issue, transfer, consume, and present. Before calling trading methods, the application must create a Session, which is described below.

VTSAgent(参加者を拡張する)は、論理的にVTSによって管理されている有効なクーポンセット(VVS)におけるバウチャーのアクセスポイントを提供します。 VTSAgentは、基本的な取引方法によれば、その保持部に保持されたバウチャーを操作する手段を提供します。すなわち、問題、転送、消費、そして本。取引方法を呼び出す前に、アプリケーションは、以下に記載されてセッションを作成する必要があります。

Session Represents the logical connection established by the trade. A Session has references to two Participant interfaces; i.e., those of the sender and the receiver. After trading methods are called using a Session, the Session holds a reference to the Vouchers to be traded.

セッションは、貿易によって確立された論理的な接続を表します。セッションは、二つの参加者インターフェースへの参照を有します。すなわち、送信側と受信側のものです。取引方法は、セッションを使用して呼び出された後、セッションが取引されるバウチャーへの参照を保持しています。

Voucher Represents one or more vouchers in which all of the issuer and promise parts of the vouchers are the same. A Voucher holds references to the Participant interface who issued the voucher (issuer) and to a VoucherComponent (promise), which is described below.

バウチャーは、バウチャーの発行者と約束部品のすべてが同一である1つの以上のバウチャーを表します。クーポンはクーポンを発行した参加者インターフェース(発行者)に、以下に説明されてVoucherComponent(約束)、への参照を保持しています。

VoucherComponent Represents a Voucher Component, described in [GVL]. It defines the promise part of the voucher.

VoucherComponentは[GVL]に記載のバウチャー成分を表します。これは、バウチャーの約束の一部を定義します。

VoucherComponentRepository Provides the access points of VoucherComponents. A VoucherComponentRepository maintains VoucherComponents and acts as a "voucher type book" managed by the VTS. This document assumes that a set of VoucherComponents has been acquired and stored in this repository. Delivery of VoucherComponents is beyond the scope of this document. It may be delivered within the VTS from the trading partners or manually acquired from a trusted third party (see Section 3 of [GVL]).

VoucherComponentRepositoryはVoucherComponentsのアクセスポイントを提供します。 VoucherComponentRepositoryは、VTSが管理し、「バウチャータイプの本」としてVoucherComponentsとの行為を維持します。この文書では、VoucherComponentsのセットを取得し、このリポジトリに格納されていることを前提としています。 VoucherComponentsの配達は、このドキュメントの範囲を超えています。これは、取引先からのVTS内で配信するか、手動で信頼できる第三者([GVL]のセクション3を参照)から取得することができます。

ReceptionListener Provides a listener function with regard to the receipt of a voucher by a VTSAgent to wallets or other applications that implement this interface. (This interface may not be implemented as part of the VTS.)

ReceptionListenerは、このインタフェースを実装財布や他のアプリケーションへのVTSAgentによってバウチャーの受け取りに関して、リスナー関数を提供します。 (このインタフェースは、VTSの一部として実装されなくてもよいです。)

5. Interface Definitions
5.インタフェースの定義

The interfaces defined in this document reside in the package named "org.ietf.vts". Wallets or other applications that use this API, should import this package as "import org.ietf.vts.*;".

この文書で定義されたインタフェースは、「org.ietf.vts」という名前のパッケージ内に存在します。財布やこのAPIを使用する他のアプリケーションは、このパッケージをインポートする必要があり、「輸入org.ietf.vts *;」。

5.1. VTSManager
5.1. VTSManager

public interface VTSManager

パブリックインターフェイスVTSManager

Provides the starting point for using a VTS plug-in.

VTSプラグインを使用するための出発点を提供します。

All of the objects needed to manipulate vouchers can be directly or indirectly acquired via a VTSManager so that wallets or other applications can make the VTS available by instantiating an object implementing this interface.

財布または他のアプリケーションがこのインターフェースを実装するオブジェクトをインスタンス化することによりVTSを利用可能にすることができるように伝票を操作するために必要なすべてのオブジェクトは、直接的または間接的にVTSManagerを介して取得することができます。

A class that implements the VTSManager interface must have a public default constructor (a constructor without any parameters). The VTS provides a name for such a constructor so that the implementation class can bootstrap the interface.

VTSManagerインタフェースを実装するクラスは、パブリックデフォルトコンストラクタ(パラメータなしのコンストラクタ)を持っている必要があります。実装クラスがインターフェイスをブートストラップすることができるように、VTSは、コンストラクタの名前を提供します。

5.1.1. getParticipantRepository
5.1.1. getParticipantRepository

public ParticipantRepository getParticipantRepository()

公共ParticipantRepository getParticipantRepository()

Returns a repository that maintains Participants.

参加者を維持してリポジトリを返します。

Returns:

返却値:

the ParticipantRepository of the VTS, or null if no ParticipantRepository is available.

何ParticipantRepositoryが利用できない場合VTSのParticipantRepository、またはnull。

5.1.2. getVoucherComponentRepository
5.1.2. getVoucherComponentRepository

public VoucherComponentRepository getVoucherComponentRepository()

公共VoucherComponentRepository getVoucherComponentRepository()

Returns a repository that maintains VoucherComponents.

VoucherComponentsを維持リポジトリを返します。

Returns:

返却値:

the VoucherComponentRepository of the VTS, or null if no VoucherComponentRepository is available.

何VoucherComponentRepositoryが利用できない場合VTSのVoucherComponentRepository、またはnull。

5.2. ParticipantRepository
5.2. 参加者のリポジトリ

public interface ParticipantRepository

パブリックインターフェイスParticipantRepository

Provides the access points of Participants. A ParticipantRepository maintains Participants and acts as an "address book" of trading partners.

参加者のアクセスポイントを提供します。 ParticipantRepositoryは、取引先の「アドレス帳」と参加者との行為を維持します。

The object implementing this interface maintains Participants (or holds a reference to an object maintaining Participants), which are to be trading partners.

このインタフェースを実装するオブジェクトは、パートナー取引される参加者(または参加を維持するオブジェクトへの参照を保持している)を、維持します。

The implementation of a ParticipantRepository may be either (an adaptor to) "yellow pages", which is a network-wide directory service like LDAP, or "pocket address book", which maintains only personal acquaintances.

ParticipantRepositoryの実装では、LDAP、または唯一の個人的な知人を維持し、「ポケットアドレス帳」、などのネットワーク全体のディレクトリサービスである「イエローページ」を、(変換アダプタ)のいずれであってもよいです。

5.2.1. lookup
5.2.1. 調べる

public Participant lookup(String id)

公共の参加者のルックアップ(文字列ID)

Retrieves the participant that has the specified id.

指定されたIDを持つ参加者を取得します。

Returns:

返却値:

the participant associated with the specified id, or null if the id is null or the corresponding participant cannot be found.

IDがnullであるか、または対応する参加者が見つからない場合、参加者は、指定されたIDに関連付けられた、またはnull。

5.3. Participant
5.3. 参加者

public interface Participant

パブリックインターフェイス参加

Represents the participants (such as issuers, holders, and collectors).

(例えば発行者、所有者、およびコレクターなど)の参加者を表します。

This interface is used as a representation of the trade partners and issuers of vouchers. Anyone can retrieve objects that implement Participants from the participant repository.

このインタフェースは、バウチャーの貿易パートナーや発行体の表現として使用されています。誰でも参加リポジトリからの参加者を実装するオブジェクトを取得することができます。

5.3.1. getIdentifier
5.3.1. getIdentifier

public String getIdentifier()

公共のString getIdentifier()

Returns the identifier of the participant. Each participant must have a unique identifier.

参加者の識別子を返します。各参加者は、一意の識別子を持っている必要があります。

The identifier can be used for looking up and retrieving the participant via the ParticipantRepository.

識別子は、見上げると、参加者のリポジトリへの参加者を取得するために使用することができます。

The format of the identifier is implementation-specific.

識別子の形式は実装固有です。

Returns:

返却値:

the identifier string of the participant.

参加者の識別子の文字列。

5.3.2. getVTSAgent
5.3.2. getVTSAgent

VTSAgent getVTSAgent()

VTSAgent getVTSAgent()

Returns a VTSAgent, whose identifier is the same as the identifier of the participant.

その識別子参加者の識別子と同じであるVTSAgentは、返します。

Returns:

返却値:

an object that implements the VTSAgent.

VTSAgentを実装するオブジェクト。

5.4. VTSAgent
5.4. VTSAgent

public interface VTSAgent extends Participant

パブリックインターフェイスVTSAgentは、参加者を拡張します

Represents contact points to access vouchers in a Valid Voucher Set (VVS) that is managed by the VTS.

VTSによって管理されている有効なクーポンセット(VVS)にバウチャーにアクセスするための接点を表します。

Each VTSAgent is associated with a holder and provides a means for managing vouchers owned by the holder. The holder must be authenticated using the login() method before being called by any other method, otherwise, a VTSSecurityException will be issued.

各VTSAgentはホルダーに関連付けられているとホルダーが所有するバウチャーを管理するための手段を提供しています。ホルダーは、そうでない場合は、VTSSecurityExceptionが発行されます、他の方法によって呼び出される前に、login()メソッドを使用して認証する必要があります。

Before any trading method is called, e.g., issue(), transfer(), consume(), and present(), the application must establish a session by the prepare() method.

任意の取引方法が呼び出される前に、例えば、問題()、転送()、)(消費、及び現在()は、アプリケーションが準備()メソッドによって、セッションを確立しなければなりません。

Due to network failure, sessions may often be suspended when the voucher is sent via a network. The suspended sessions can be restarted by the resume() method. Details on the state management of a session are described in Section 5.5.

バウチャーは、ネットワークを介して送信されたときにネットワーク障害のために、セッションが頻繁に中断することができます。懸濁セッションが再開()メソッドによって再起動することができます。セッションの状態管理の詳細については、5.5節で説明されています。

Some VTSAgents may not have all of the trading methods; a voucher collecting system doesn't require its VTSAgent to provide a method for issuing or creating vouchers. A VTSAgent returns a FeatureNotAvailableException when an unsupported method is invoked.

いくつかのVTSAgentsは、取引方法のすべてを持っていないかもしれません。バウチャー収集システムは、バウチャーの発行または作成するための方法を提供するために、そのVTSAgentを必要としません。 VTSAgentはサポートされていないメソッドが呼び出されるFeatureNotAvailableExceptionを返します。

5.4.1. login
5.4.1. ログインする

public void login(String passphrase) throws VTSException

公共ボイドログイン(文字列のパスフレーズ)がVTSExceptionを投げます

Authenticates the VTSAgent. The passphrase is specified if the VTS requires it for authentication, otherwise it must be null. Nothing is performed if the VTSAgent has already been logged-in. The authentication scheme is implementation-specific. Examples of the implementation are as follows:

VTSAgentを認証します。 VTSは、認証のためにそれを必要とする場合、パスフレーズは、それ以外の場合はnullでなければなりません、指定されています。 VTSAgentがすでにログインしているされている場合は何も実行されません。認証方式は、実装固有です。以下のような実装の例は以下のとおりです。

1) Vouchers are managed on a remote centralized server (centralized VTS), which requires a password to login. In this case, the application may prompt the user to input the password and the password can be given to the VTSAgent through this method. For further information, see the Implementation Notes below.

1)バウチャーは、ログインするためのパスワードを必要とする、遠隔集中管理サーバー(集中管理VTS)で管理されています。この場合、アプリケーションは、パスワードの入力をユーザに促すことができるとパスワードがこの方法を介してVTSAgentに与えることができます。詳細については、以下のインプリメンテーションノートを参照してください。

2) Vouchers are managed on a remote centralized server (centralized VTS), which requires challenge-and-response authentication using smartcards held by users. In this case, the passphrase may be null because access to the smartcard can be done without contacting the application or user (i.e., the VTSAgent receives the challenge from the server, sends the challenge to the smartcard (within the VTS), and returns the response from the smartcard to the server). Note that a PIN to unlock the smartcard may be given through this method, depending on the implementation.

2)バウチャーは、ユーザによって保持されたスマートカードを使用して、チャレンジアンドレスポンス認証を必要とする遠隔集中サーバ(集中VTS)で管理されています。スマートカードへのアクセスは、アプリケーションまたはユーザに接触することなく行うことができるので、この場合には、パスフレーズがヌルであってもよい(すなわち、VTSAgentは、サーバーからチャレンジを受け取る)VTS内(スマートカードにチャレンジを送信し、返さサーバーへのスマートカードからの応答)。スマートカードのロックを解除するためのPINは、実装に応じて、この方法を介して与えられてもよいことに留意されたいです。

3) Each user holds their own smartcard in which their own vouchers are stored (distributed VTS). In this case, the passphrase may be null because no authentication is required. Note that a PIN to unlock the smartcard may be given, though this depends on the implementation.

3)各ユーザは、自分の伝票が保存されている自分のスマートカード(分散VTS)を保持します。認証が不要なので、この場合には、パスフレーズはNULLであってもよいです。これは、実装にもよるが、スマートカードのロックを解除するためのPINが与えられてもよいことに留意されたいです。

Implementation Notes:

実装上の注意:

A VTS is responsible for providing secure ways for users to login(). It is strongly recommended that secure communication channels such as [TLS] be used if secret or private information is sent via networks. Fake server attacks, including the so-called MITM (man-in-the-middle), must be considered as well.

VTSは、()をログインするユーザーのための安全な方法を提供する責任があります。強く秘密や個人情報がネットワークを介して送信されている場合、このような[TLS]などの安全な通信チャネルを使用することをお勧めします。いわゆるMITM(のman-in-the-middle)を含む偽のサーバー攻撃は、同様に考慮しなければなりません。

Throws:

例外:

VTSSecurityException - if authentication fails.

VTSSecurityException - 認証が失敗した場合。

5.4.2. logout
5.4.2. ログアウト

public void logout() throws VTSException

公共ボイドログアウト()はVTSExceptionを投げます

Voids the authentication performed by the login() method.

login()メソッドによって実行される認証は無効になります。

After this method is called, calling any other method (except login()) will cause a VTSSecurityException.

この方法は、他の方法で呼び出し、呼び出された後(ログイン除く())をVTSSecurityExceptionの原因になります。

The VTSAgent can login again by the login() method.

VTSAgentは、login()メソッドで再度ログインすることができます。

Throws:

例外:

VTSSecurityException - if the VTSAgent is not authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証されない場合。

5.4.3. prepare
5.4.3. 作ります

public Session prepare(Participant receiver) throws VTSException

公開セッションの準備(参加者受信機)がVTSExceptionをスロー

Establishes a session that is required for trading vouchers. The trading partner who receives the vouchers is specified as the receiver. The vouchers to be traded will be specified later (when a trading method is called).

取引バウチャーために必要なセッションを確立します。バウチャーを受け取り、取引相手が受信機として指定されています。 (取引メソッドが呼び出されたとき)で取引される商品券は、後に指定されます。

The establishment of a session is implementation-specific. A centralized VTS implementation may start a transaction, while a distributed VTS implementation may get the challenge needed to create an authentic response from the receiver in the following trading method.

セッションの確立は、実装固有です。分散VTSの実装は、以下の取引方法で受信機からの本格的な応答を作成するために必要な課題を得ることができながら、集中VTSの実装では、トランザクションを開始することができます。

If the VTSAgent does not have the ability to establish a session with the specified receiver (permanent error), the VTSAgent throws an InvalidParticipantExeption. If the VTSAgent cannot establish a session due to network failure (transient error), the VTSAgent throws a CannotProceedException.

VTSAgentは、指定された受信機(永久エラー)とのセッションを確立する能力を持っていない場合は、VTSAgentはInvalidParticipantExeptionをスローします。 VTSAgentは、ネットワーク障害(一時的なエラー)によるセッションを確立できない場合、VTSAgentはCannotProceedExceptionにスローされます。

Parameters:

パラメーター:

receiver - the trading partner who receives vouchers.

受信機 - バウチャーを受け取り、貿易相手国。

Returns:

返却値:

an established session whose state is "prepared" (see Section 5.5).

その状態が「準備」で確立されたセッションは、(5.5節を参照してください)。

Throws:

例外:

CannotProceedException - if the preparation of the session is aborted (e.g., network failures).

CannotProceedException - セッションの製造が中止された場合(例えば、ネットワーク障害)。

FeatureNotAvailableException - if the VTSAgent does not provide any trading methods.

FeatureNotAvailableException - VTSAgentは、任意の取引方法を提供しない場合。

InvalidParticipantException - if the specified participant is invalid.

InvalidParticipantException - 指定された参加者が無効な場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.4. issue
5.4.4. 問題

public void issue(Session session, VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイド問題(セッションセッション、VoucherComponentの約束、java.lang.Number型numが)VTSExceptionを投げます

Issues vouchers. This method creates the specified number of vouchers <this, promise, receiver> and adds them to the VVS. If the VTS is distributed, this method would create a "response" that corresponds to the challenge received in the prepare() method and send it to the receiver. Note that the receiver is specified when prepare() is called. Nothing is performed if the specified number is 0.

問題のバウチャー。このメソッドは、バウチャー<この、約束、受信機>の指定された数を作成し、VVSに追加します。 VTSが分散されている場合、この方法は、準備()メソッドで受信したチャレンジに対応する「応答」を作成し、受信機に送信することになります。準備()が呼び出されたときに受信機が指定されていることに留意されたいです。指定された数が0の場合は何も実行されません。

The session MUST be "prepared" when calling this method. The state of the session will be "activated" when the vouchers are created, and it will be "completed" when the transaction is successfully completed or "suspended" if the transaction is interrupted abnormally (e.g., network failures).

このメソッドを呼び出すと、セッションが「準備」しなければなりません。伝票が作成されるときに、セッションの状態は、「活性化」され、トランザクションが正常に完了またはトランザクションが異常(例えば、ネットワーク障害)中断された場合、「中断」されたときには、「完了」します。

Parameters:

パラメーター:

session - the session used by the issue transaction.

セッション - 問題のトランザクションによって使用されるセッション。

promise - the promise part of the voucher.

約束 - バウチャーの約束の一部。

num - the number of vouchers to be issued.

NUM - バウチャーの番号が発行されます。

Throws:

例外:

CannotProceedException - if the transaction cannot be successfully completed.

CannotProceedExceptionに - トランザクションが正常に完了できない場合。

FeatureNotAvailableException - if the VTSAgent does not provide a means of issuing vouchers.

FeatureNotAvailableException - VTSAgentは、バウチャーを発行する手段を提供しない場合。

InvalidStateException - if the session is not "prepared".

InvalidStateException - セッションが「準備」ではない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.5. transfer
5.4.5. 転送

public void transfer(Session session, Participant issuer, VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイド転送(セッションセッション、参加者の発行者、VoucherComponentの約束、java.lang.Number型numが)VTSExceptionを投げます

Transfers vouchers. This method rewrites the specified number of vouchers <issuer, promise, this> to <issuer, promise, receiver> in the VVS; i.e., deletes the vouchers from the sender and stores them for the receiver. Similar to issue(), this method would create and send the response to the receiver if the VTS is distributed. The VTSAgent must have sufficient vouchers in the VVS. Nothing is performed if the specified number is 0.

転送券。この方法は、VVSの<発行者、約束、受信機>にバウチャー<発行者、約束、本>の指定された数を書き換えます。すなわち、送信者からのバウチャーを削除し、受信機のためにそれらを格納します。 VTSが分散されている場合()を発行すると同様に、この方法は、受信機への応答を作成して送信します。 VTSAgentはVVSで十分なバウチャーを持っている必要があります。指定された数が0の場合は何も実行されません。

The session MUST be "prepared" when calling this method. The state of the session will be "activated" when the voucher are retrieved from the sender, and it will be "completed" when the transaction is successfully completed or "suspended" if the transaction is interrupted abnormally (e.g., network failures).

このメソッドを呼び出すと、セッションが「準備」しなければなりません。バウチャーは、送信者から取得され、トランザクションが正常に完了またはトランザクションが異常(例えば、ネットワーク障害)中断された場合、「中断」されたとき、それは「完了」されるときに、セッションの状態は、「活性化」されます。

If null is specified for the issuer parameter, it indicates "any issuer". This method selects vouchers to be transferred from the set of vouchers returned by the getContents(null, promise).

ヌルが発行者パラメータに指定されている場合は、「任意の発行者」を示しています。この方法は、のgetContents(ヌル、約束)によって返された伝票のセットから転送される伝票を選択します。

Parameters:

パラメーター:

session - the session used by the transfer transaction.

セッション - 転送トランザクションによって使用されるセッション。

issuer - the issuer part of the voucher, or null.

発行者 - 発行者のバウチャーの一部、またはnull。

promise - the promise part of the voucher.

約束 - バウチャーの約束の一部。

num - the number of vouchers to be transferred.

NUM - バウチャーの数が転送されます。

Throws:

例外:

CannotProceedException - if the transaction cannot be successfully completed.

CannotProceedExceptionに - トランザクションが正常に完了できない場合。

FeatureNotAvailableException - if the VTSAgent does not provide a means of transferring vouchers.

FeatureNotAvailableException - VTSAgentは、バウチャーを転送する手段を提供しない場合。

InsufficientVoucherException - if the VTSAgent does not have a sufficient number of vouchers to transfer.

InsufficientVoucherException - VTSAgentを転送するためにバウチャーのに十分な数を持っていない場合。

InvalidStateException - if the session is not "prepared".

InvalidStateException - セッションが「準備」ではない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.6. consume
5.4.6. 消費します

public void consume(Session session, Participant issuer, VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイドは消費(セッションセッションは、参加者の発行者は、VoucherComponentの約束、java.lang.Number型numが)VTSExceptionを投げます

Consumes vouchers. This method deletes the specified number of vouchers <issuer, promise, this> from the VVS and notifies the receiver of the deletion. Similar to issue() and transfer(), the response would be created and sent to the receiver if the VTS is distributed so that the receiver can obtain proof of the deletion. The VTSAgent must have a sufficient number of vouchers in the VVS. Nothing is performed if the specified number is 0.

バウチャーを消費します。この方法は、VVSからバウチャー<発行者、約束、本>の指定された数を削除し、削除の受信を通知します。 VTSが分散されている場合、受信機は、欠失の証拠を得ることができるように、問題と同様()及び転送()、応答が作成されると、受信機に送信されます。 VTSAgentはVVSにおけるバウチャーのに十分な数を持っている必要があります。指定された数が0の場合は何も実行されません。

The session MUST be "prepared" when this method is called. The state of the session will be "activated" when the vouchers are deleted, and it will be "completed" when the transaction is successfully completed or "suspended" if the transaction is interrupted abnormally (e.g., network failures).

セッションは、このメソッドが呼び出されたときに「準備」でなければなりません。伝票が削除され、トランザクションが正常に完了またはトランザクションが異常(例えば、ネットワーク障害)中断された場合、「中断」されたとき、それは「完了」されるときに、セッションの状態は、「活性化」されます。

If null is specified for the issuer parameter, it indicates "any issuer". This method selects vouchers to be consumed from the set of vouchers returned by the getContents(null, promise).

ヌルが発行者パラメータに指定されている場合は、「任意の発行者」を示しています。この方法は、のgetContents(ヌル、約束)によって返された伝票のセットから消費される伝票を選択します。

Parameters:

パラメーター:

session - the session used by the consume transaction.

セッション - 消費トランザクションによって使用されるセッション。

issuer - the issuer part of the voucher, or null.

発行者 - 発行者のバウチャーの一部、またはnull。

promise - the promise part of the voucher.

約束 - バウチャーの約束の一部。

num - the number of vouchers to be consumed.

NUM - バウチャーの数が消費されます。

Throws:

例外:

CannotProceedException - if the transaction cannot be successfully completed.

CannotProceedExceptionに - トランザクションが正常に完了できない場合。

FeatureNotAvailableException - if the VTSAgent does not provide a means of consuming vouchers.

FeatureNotAvailableException - VTSAgentは、バウチャーを消費する手段を提供しない場合。

InsufficientVoucherException - if the VTSAgent does not have a sufficient number of vouchers to consume.

InsufficientVoucherException - VTSAgentが消費するバウチャーのに十分な数を持っていない場合。

InvalidStateException - if the session is not "prepared".

InvalidStateException - セッションが「準備」ではない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.7. present
5.4.7. 現在

public void present(Session session, Participant issuer, VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイド存在(セッションセッション、参加者の発行者、VoucherComponentの約束、java.lang.Number型numが)VTSExceptionを投げます

Presents vouchers. This method shows that the sender has the specified number of vouchers <issuer, promise, this> in the VVS to the receiver of the session; no modification is performed to the VVS. However, the response would be sent to the receiver as well as consume() in order to prove that the VTS has been distributed. The VTSAgent must have a sufficient number of vouchers in the VVS. Nothing is performed if the specified number is 0.

バウチャーを提示します。この方法は、送信者は、セッションの受信機にVVSにバウチャー<発行者、約束、本>の指定された数を有することを示しています。何も変更はVVSに実行されません。しかし、応答はVTSが分散されていることを証明するために)(受信機に送信されるだけでなく、消費することになります。 VTSAgentはVVSにおけるバウチャーのに十分な数を持っている必要があります。指定された数が0の場合は何も実行されません。

The session MUST be "prepared" when this method is called. The state of the session will be "activated" when the vouchers are retrieved, and it will be "completed" when the transaction is successfully completed or "suspended" if the transaction is interrupted abnormally (e.g., by network failures).

セッションは、このメソッドが呼び出されたときに「準備」でなければなりません。バウチャーを取得するときに、セッションの状態が「活性化」され、トランザクションが正常に完了または「中断」されたとき、それは「完了」するトランザクション(例えば、ネットワーク障害により)異常に中断された場合。

If null is specified for the issuer parameter, it indicates "any issuer". This method selects vouchers to be presented from the set of vouchers returned by the getContents(null, promise).

ヌルが発行者パラメータに指定されている場合は、「任意の発行者」を示しています。この方法は、のgetContents(ヌル、約束)によって返された伝票のセットから提示される伝票を選択します。

Parameters:

パラメーター:

session - the session used by the present transaction.

セッション - 現在のトランザクションによって使用されるセッション。

issuer - the issuer part of the voucher, or null.

発行者 - 発行者のバウチャーの一部、またはnull。

promise - the promise part of the voucher.

約束 - バウチャーの約束の一部。

num - the number of the voucher to be presented.

NUM - バウチャーの数が提示されます。

Throws:

例外:

CannotProceedException - if the transaction cannot be successfully completed.

CannotProceedExceptionに - トランザクションが正常に完了できない場合。

InsufficientVoucherException - if the VTSAgent does not have a sufficient number of vouchers to present.

InsufficientVoucherException - VTSAgentが提示するバウチャーのに十分な数を持っていない場合。

InvalidStateException - if the session is not "prepared".

InvalidStateException - セッションが「準備」ではない場合。

FeatureNotAvailableException - if the VTSAgent does not provide a means of presenting vouchers.

FeatureNotAvailableException - VTSAgentは、バウチャーを提示する手段を提供しない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.8. cancel
5.4.8. キャンセル

public void cancel(Session session) throws VTSException

公共のボイドキャンセル(セッションsession)はVTSExceptionを投げます

Releases the session. "Prepared" sessions MUST be canceled. An implementation MAY be permitted to cancel "activated" or "suspended" sessions.

セッションを解放します。 「準備」のセッションがキャンセルされなければなりません。実装は、「活性化」または「一時停止」のセッションをキャンセルできるようにしてもよいです。

Throws:

例外:

InvalidStateException - if the state of the session cannot be canceled.

InvalidStateException - セッションの状態を解除することができない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.9. resume
5.4.9. 履歴書

public void resume(Session session) throws VTSException

公共ボイド履歴書(セッションsession)VTSExceptionを投げます

Restarts the session. Only "suspended" sessions can be resumed. The state of the session will be re-"activated" immediately, and it will be "completed" when the transaction is successfully completed or "suspended" again if the transaction is interrupted abnormally (e.g., network failures).

セッションを再起動します。唯一の「一時停止」のセッションを再開することができます。セッションの状態が再なり直ちに「活性化」、およびトランザクションが異常(例えば、ネットワーク障害)中断された場合、トランザクションが正常に完了するか、再度「中断」されたときには、「完了」します。

Throws:

例外:

CannotProceedException - if the transaction cannot be successfully completed.

CannotProceedExceptionに - トランザクションが正常に完了できない場合。

InvalidStateException - if the session is not "suspended".

InvalidStateException - セッションがない場合は、「一時停止」。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.10. create
5.4.10. 作ります

public void create(VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイド(VoucherComponentの約束、java.lang.Number型NUM)を作成VTSExceptionを投げます

Creates vouchers where the issuer is the VTSAgent itself. This method creates the specified number of vouchers <this, promise, this> and adds them to the VVS. Nothing is performed if the specified number is 0.

発行者はVTSAgent自体でバウチャーを作成します。このメソッドは、バウチャーの指定された数<この、約束、この>を作成し、VVSに追加します。指定された数が0の場合は何も実行されません。

Throws:

例外:

FeatureNotAvailableException - if the VTSAgent does not provide a means of creating vouchers.

FeatureNotAvailableException - VTSAgentは、バウチャーを作成する手段を提供しない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.11. delete
5.4.11. 削除

public void delete(Participant issuer, VoucherComponent promise, java.lang.Number num) throws VTSException

公共ボイドが(参加者、発行者、VoucherComponentの約束、java.lang.Number型numが)VTSExceptionをスロー削除します

Deletes vouchers. This method deletes the specified number of vouchers <issuer, promise, this> from the VVS. The VTSAgent must have sufficient vouchers in the VVS. Nothing is performed if the specified number is 0.

バウチャーを削除します。この方法は、VVSからバウチャー<発行者、約束、この>の指定された数を削除します。 VTSAgentはVVSで十分なバウチャーを持っている必要があります。指定された数が0の場合は何も実行されません。

Throws:

例外:

InsufficientVoucherException - if the VTSAgent does not have a sufficient number of vouchers to delete.

InsufficientVoucherException - VTSAgentを削除するバウチャーのに十分な数を持っていない場合。

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.12. getContents
5.4.12. getContents

public java.util.Set getContents(Participant issuer, VoucherComponent promise) throws VTSException

公共java.util.SetののgetContents(参加者、発行者、VoucherComponent約束は)VTSExceptionを投げます

Returns the set of vouchers whose issuer and promise both match the issuer and promise specified in the parameters.

発行者との両方を約束パラメータで指定された発行者との約束と一致するバウチャーのセットを返します。

If null is specified for the issuer or promise parameter, it indicates "any issuer" or "any promise", respectively. If null is specified for both parameters, this method selects all vouchers owned by the holder from the VVS.

ヌルは、発行者または約束パラメータに指定されている場合は、それぞれ、「任意の発行者」または「任意の約束」を示しています。 nullが両方のパラメータに指定されている場合は、この方法は、VVSからホルダーが所有するすべてのバウチャーを選択します。

Returns:

返却値:

the set of vouchers held by the holder of the VTSAgent.

VTSAgentのホルダーによって保持されたバウチャーのセット。

Throws:

例外:

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.13. getSessions
5.4.13. getSessions

public java.util.Set getSessions() throws VTSException

公共java.util.Set getSessions()VTSExceptionを投げます

Returns a set of incomplete sessions prepared by the VTSAgent.

VTSAgentにより調製不完全なセッションのセットを返します。

Returns:

返却値:

the set of sessions prepared by the VTSAgent that are not yet completed.

まだ完了していないVTSAgentにより調製したセッションのセット。

Throws:

例外:

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.14. getLog
5.4.14. GETLOG

public java.util.Set getLog() throws VTSException

公共java.util.Set GETLOG()VTSExceptionを投げます

Returns a set of completed sessions prepared or received by the VTSAgent. This set represents the trading log of the VTSAgent. A VTS may delete an old log eventually, so that the entire log may not be returned; the amount of the log kept by the VTSAgent is implementation-specific.

VTSAgentにより調製または受信完了したセッションのセットを返します。このセットはVTSAgentの取引ログを表します。ログ全体が返されないようにVTSは、最終的に古いログを削除することができます。 VTSAgentによって保存されているログの量は、実装固有です。

Returns:

返却値:

the set of completed sessions prepared or received by the VTSAgent.

VTSAgentにより調製または受信完了したセッションのセット。

Throws:

例外:

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.15. addReceptionListener
5.4.15. addReceptionListener

public void addReceptionListener(ReceptionListener l) throws VTSException

公共ボイドaddReceptionListener(ReceptionListener L)はVTSExceptionを投げます

Adds a ReceptionListener to the listener list.

リスナーリストにReceptionListenerを追加します。

After a ReceptionListener l is registered by this method, l.arrive() will be called whenever the VTSAgent receives a voucher.

ReceptionListener Lは、この方法で登録された後、l.arriveは()VTSAgentバウチャーを受信するたびに呼び出されます。

Nothing is performed if the specified listener is null.

指定されたリスナーがnullの場合は何も実行されません。

Throws:

例外:

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.4.16. removeReceptionListener
5.4.16. removeReceptionListener

public void removeReceptionListener(ReceptionListener l) throws VTSException

公共ボイドremoveReceptionListener(ReceptionListener L)はVTSExceptionを投げます

Removes a ReceptionListener from the listener list.

リスナーリストからReceptionListenerを削除します。

Nothing is performed when the specified listener is null or not registered.

指定されたリスナーがnullまたは登録されていない場合は何も実行されません。

Throws:

例外:

VTSSecurityException - if the VTSAgent cannot be authenticated correctly.

VTSSecurityException - VTSAgentが正しく認証できない場合。

5.5. Session
5.5. セッション

public interface Session

パブリックインターフェイスセッション

Represents the logical connection established by the trade. Sessions are established by VTSAgent#prepare().

貿易によって確立された論理的な接続を表します。セッションはVTSAgent位によって確立される)(調製。

A session has four states: prepared, activated, suspended, and completed. The initial state of a session is "prepared", and the session will be "activated" immediately when any of the trading methods of VTSAgent is called. The "activated" session will be "completed" after the trading method is successfully completed. If the trading method fails transiently (e.g., network failure), the session will be "suspended". Suspended sessions can be re-"activated" and restarted by calling VTSAgent#resume().

セッションでは、4つの状態があります、調製した活性化、一時停止、および完成します。セッションの初期状態は「準備」され、セッションはVTSAgentの取引方法のうちのいずれかが呼び出されたときに直ちに「活性化」されます。取引方法が正常に完了した後に「活性化」セッションでは、「完成」されます。取引方法は、(例えば、ネットワーク障害)一過性に障害が発生した場合、セッションは「一時停止」されます。中断したセッションを再することができます)(VTSAgent番号の履歴書を呼び出すことによって「活性化」され、再起動。

A completed session may disappear from the VTSAgent; the session will be collected by the GC unless other objects keep its reference.

完成したセッションがVTSAgentから消えることがあります。他のオブジェクトがその参照を保持しない限り、セッションがGCによって収集されます。

5.5.1. getIdentifier
5.5.1. getIdentifier

public String getIdentifier()

公共のString getIdentifier()

Returns the identifier of the session. The generation scheme of the identifier is implementation-specific. An implementation may use a transaction ID as the identifier of the session.

セッションの識別子を返します。識別子の生成方式は、実装固有です。実装では、セッションの識別子としてトランザクションIDを使用することができます。

Returns:

返却値:

the string of the identifier of the session.

セッションの識別子の文字列。

5.5.2. getVoucher
5.5.2. getVoucher

public Voucher getVoucher()

公共クーポンgetVoucher()

Returns the voucher to be traded using the session, or returns null if the session has not been activated.

セッションを使用して取引されるためのバウチャーを返し、またはセッションがアクティブ化されていない場合はnullを返します。

Returns:

返却値:

the voucher to be traded, or null if the state of the session is "prepared".

セッションの状態は「準備」されている場合バウチャーは取引、またはnullします。

5.5.3. getSender
5.5.3. getSender

public Participant getSender()

公共の参加者getSender()

Returns the sender of the session (i.e., the creator who prepared the session).

セッション(セッションを用意し、すなわち、作成者)の送信者を返します。

Returns:

返却値:

the sender of the session.

セッションの送信者。

5.5.4. getReceiver
5.5.4. getReceiver

public Participant getReceiver()

公共の参加者getReceiver()

Returns the receiver of the session (i.e., the participant specified when preparing the session (by the VTSAgent#prepare() method)).

(セッションを調製する場合、すなわち、参加者)VTSAgent#準備()メソッドによって(指定)セッションの受信を返します。

Returns:

返却値:

the receiver of the session.

セッションの受信機。

5.5.5. isPrepared
5.5.5. isPrepared

public boolean isPrepared()

isPreparedパブリックブール値()

Verifies if the session is "prepared".

セッションが「準備」されるかどうかを確認します。

Returns:

返却値:

true if the session is in the "prepared" state, otherwise, false.

セッションは、「準備」状態でない場合はfalseである場合はtrue。

5.5.6. isActivated
5.5.6. isActivated

public boolean isActivated()

isActivatedパブリックブール値()

Verifies if the session is "activated".

セッションは「活性化」されるかどうかを確認します。

Returns:

返却値:

true if the session is in the "activated" state, otherwise, false.

セッションは、「活性化」状態でない場合はfalseである場合はtrue。

5.5.7. isSuspended
5.5.7. isSuspended

public boolean isSuspended()

パブリックブールisSuspended()

Verifies if the session is "suspended".

セッションは、「一時停止」されるかどうかを確認します。

Returns:

返却値:

true if the session is in the "suspended" state, otherwise, false.

セッションは、「一時停止」状態でない場合はfalseである場合はtrue。

5.5.8. isCompleted
5.5.8. 完成されました

public boolean isCompleted()

パブリックブール完了する()

Verifies if the session is "completed".

セッションは、「完了」されるかどうかを確認します。

Returns:

返却値:

true if the session is in the "completed" state, otherwise, false.

セッションは、そうでない場合は、「完了」状態に偽である場合はtrue。

5.6. Voucher
5.6. 伝票

public interface Voucher

パブリックインターフェイスバウチャー

Represents voucher(s) described in [VTS]. An object implementing this interface can represent more than one voucher if all of the issuer part and the promise part of the vouchers are the same.

[VTS]に記載のバウチャー(複数可)を表します。発行体の一部とバウチャーの約束部分の全てが同じであれば、このインタフェースを実装するオブジェクトは、複数のバウチャーを表すことができます。

5.6.1. getIssuer
5.6.1. getIssuer

public Participant getIssuer()

公共の参加者getIssuer()

Returns the issuer part of the voucher(s).

バウチャー(S)の発行者の一部を返します。

Returns:

返却値:

the participant who issued the voucher(s).

バウチャー(複数可)を発行した参加者。

5.6.2. getPromise
5.6.2. getPromise

public VoucherComponent getPromise()

公共VoucherComponent getPromise()

Returns the promise part of the voucher(s).

バウチャー(S)の約束の一部を返します。

Returns:

返却値:

the voucher component that defines the promise of the voucher.

バウチャーの約束を定義するバウチャーコンポーネント。

5.6.3. getCount
5.6.3. 同様にgetCount

public java.lang.Number getCount()

公共java.lang.Number型同様にgetCount()

Returns the number of the voucher(s).

バウチャー(S)の数を返します。

Returns:

返却値:

the positive (>0) number of the voucher(s).

バウチャーの正(> 0)の数(S)。

5.7. VoucherComponentRepository
5.7. VoucherComponentRepository

public interface VoucherComponentRepository

パブリックインターフェイスVoucherComponentRepository

Maintains VoucherComponents.

VoucherComponentsを維持します。

An object implementing VoucherComponentRepository provides a means of retrieving the voucher components that are the promises of vouchers in the VVS.

VoucherComponentRepositoryを実装するオブジェクトは、VVSにおけるバウチャーの約束であるバウチャー成分を取り出す手段を提供します。

Before issuing a voucher, the promise of the voucher must be registered with this repository. The repository can be implemented as either a network-wide directory service or personal storage like the ParticipantRepository.

バウチャーを発行する前に、バウチャーの約束は、このリポジトリに登録する必要があります。リポジトリはネットワーク全体のディレクトリサービスまたはParticipantRepositoryなどの個人ストレージとして実装することができます。

5.7.1. register
5.7.1. 登録

public VoucherComponent register(org.w3c.dom.Document document)

公共VoucherComponentレジスタ(のorg.w3c.dom.Document文書)

Creates a voucher component associated with the specified DOM object and registers the voucher component with the repository.

指定されたDOMオブジェクトに関連付けられたバウチャーコンポーネントを作成し、リポジトリと伝票のコンポーネントを登録します。

A voucher component of the voucher to be issued must be registered using this method.

発行するバウチャーのバウチャーコンポーネントは、このメソッドを使用して登録する必要があります。

Nothing is performed (and the method returns null) if the specified document is null or the syntax of the document does not conform to the VTS.

何も実行されません(とメソッドはnullを返します)指定された文書がnullであるか、文書の構文は、VTSに準拠していない場合。

The method returns the registered voucher component if the specified DOM object has been already registered (no new voucher component is created in this case).

この方法は、登録バウチャー成分指定DOMオブジェクトが既に登録されている場合(新しいバウチャー成分はこの場合には作成されない)を返します。

Returns:

返却値:

a registered voucher component associated with the specified document, or null if the document is null or has wrong syntax.

ドキュメントがnullであるか、間違った構文を持っている場合、指定された文書に関連付けられた、またはnull登録バウチャーコンポーネント。

5.8. VoucherComponent
5.8. VoucherComponent

public interface VoucherComponent

パブリックインターフェイスVoucherComponent

Represents the voucher component that defines the promise of the voucher.

バウチャーの約束を定義するバウチャーコンポーネントを表します。

Each VoucherComponent object has its own unique identifier and is associated with an XML document that describes the promise made by the issuer of the voucher (e.g., goods or services can be claimed in exchange for redeeming the voucher).

各VoucherComponentオブジェクトは、独自の一意の識別子を有しており(例えば、商品またはサービスがバウチャーを償還するための交換に記載することができる)、バウチャーの発行者によって行われた約束を記述するXMLドキュメントに関連付けられています。

This interface can be implemented as sort of a "smart pointer" to the XML document. An implementation may have a reference to a voucher component repository instead of the voucher component, and it may retrieve the document dynamically from the repository when the getDocument() method is called.

このインタフェースは、XML文書を「スマートポインタ」の一種として実装することができます。インプリメンテーションではなく伝票成分のバウチャーコンポーネントリポジトリへの参照を有していてもよく、それはのgetDocument()メソッドが呼び出されたリポジトリから動的に文書を取り出すことができます。

5.8.1. getIdentifier
5.8.1. getIdentifier

public String getIdentifier()

公共のString getIdentifier()

Returns the identifier of the voucher component. Each voucher component must have a unique identifier. The identifier may be used to check for equivalence of voucher components.

バウチャーコンポーネントの識別子を返します。各バウチャーコンポーネントは、一意の識別子を持っている必要があります。識別子は、バウチャー成分の等価性をチェックするために使用されてもよいです。

The format of the identifier is implementation-specific, however, it is RECOMMENDED that the hash value of the voucher component in the identifier be included to assure uniqueness. For generating the hash value, it is desirable to use a secure hash function (e.g., [SHA-1]) and to apply a canonicalization function (e.g., [EXC-C14N]) before applying the hash function to minimize the impact of insignificant format changes to the voucher component, (e.g., line breaks or character encoding).

識別子の形式は実装固有であるが、識別子でバウチャーコンポーネントのハッシュ値は一意性を保証するために含まれることが推奨されます。ハッシュ値を生成するためには、安全なハッシュ関数を使用することが望ましい(例えば、[SHA-1])と僅少の影響を最小限にするためにハッシュ関数を適用する前に、正規化関数(例えば、[EXC-C14N])を適用しますバウチャーコンポーネントへのフォーマットの変更、(例えば、改行や文字エンコーディング)。

Returns:

返却値:

the identifier string of the voucher component.

バウチャー成分の識別子ストリング。

5.8.2. getDocument
5.8.2. getDocument

public org.w3c.dom.Document getDocument()

公共のorg.w3c.dom.DocumentのgetDocument()

Returns a Document Object Model [DOM] representation of the document associated with the voucher component by the VoucherComponentRepository#register() method.

VoucherComponentRepository番号レジスタ()メソッドによってバウチャーコンポーネントに関連付けられた文書の文書オブジェクトモデル[DOM]表現を返します。

The DOM object to be returned may be retrieved from a VoucherComponentRepository on demand, instead of the VoucherComponent always keeping a reference to the DOM object.

返されるDOMオブジェクトはVoucherComponentは常にDOMオブジェクトへの参照を維持する代わりに、オンデマンドでVoucherComponentRepositoryから取り出すことができます。

The VTS must guarantee that the getDocument method will eventually return the DOM object, provided that the voucher associated with the corresponding voucher component exists in the VVS.

VTSは、のgetDocumentメソッドは、最終的にDOMオブジェクトを返すことを保証しなければならない、対応する伝票のコンポーネントに関連付けられたバウチャーVVSに存在することを条件とします。

Returns:

返却値:

a DOM representation of the document associated with the voucher component.

バウチャーのコンポーネントに関連付けられた文書のDOM表現。

Throws:

例外:

DocumentNotFoundException - if the associated DOM object cannot be retrieved.

DocumentNotFoundException - 関連付けられているDOMオブジェクトが取得できない場合。

5.9. ReceptionListener
5.9. レセプションリスナー

public interface ReceptionListener extends java.util.EventListener

たjava.util.EventListenerを拡張ReceptionListenerパブリックインターフェイス

Provides a listener interface with a notification that a VTSAgent has received a voucher.

VTSAgentは、バウチャーを受け取った通知とともにリスナーインタフェースを提供します。

When a voucher arrives at the VTSAgent, the VTSAgent invokes the arrive() method of each registered ReceptionListener. ReceptionListeners can obtain a Session object, which contains information about the received voucher and the sender of the voucher.

バウチャーはVTSAgentに到着すると、VTSAgentは、各登録ReceptionListenerの到着()メソッドを呼び出します。 ReceptionListenersは受信バウチャーとクーポンの送信者に関する情報が含まれてSessionオブジェクトを取得することができます。

This interface is intended to provide a means of notifying a wallet that "You have new vouchers", so that this interface may be implemented by wallets or other applications that use VTS.

このインタフェースは、このインタフェースは、財布やVTSを使用する他のアプリケーションによって実現することができるように、「あなたは新しいバウチャーを持っている」という財布に通知する手段を提供することを意図しています。

5.9.1. arrive
5.9.1. 着きます

public void arrive(Session session)

公共のボイドが到着(セッションsession)

Provides notification of the arrival of a voucher.

バウチャーの到着の通知を提供します。

After the listener is registered to a VTSAgent (by the VTSAgent#addReceptionListener() method), the VTSAgent invokes this method whenever it receives a voucher.

リスナーが(VTSAgent#addReceptionListener()メソッドによって)VTSAgentに登録された後、VTSAgentは、バウチャーを受信するたびに、このメソッドを呼び出します。

The specified session is equivalent to the session used by the sender to trade the voucher. The state of the session is "completed" when this method is called.

指定されたセッションは、バウチャーを交換するために、送信者によって使用されるセッションに相当します。このメソッドが呼び出されたときに、セッションの状態は「完成」されます。

5.10. Exceptions
5.10. 例外
      java.lang.Exception
        +-- VTSException
            +-- CannotProceedException
            +-- DocumentNotFoundException
            +-- FeatureNotAvailableException
            +-- InsufficientVoucherException
            +-- InvalidParticipantException
            +-- InvalidStateException
            +-- VTSSecurityException
        

VTSException This is the superclass of all exceptions thrown by the methods in the interfaces that construct the VTS-API.

VTSExceptionこれは、VTS-APIを構築するインタフェースのメソッドによってスローされるすべての例外のスーパークラスです。

CannotProceedException This exception is thrown when a trading is interrupted by network failures or other errors.

取引は、ネットワーク障害やその他のエラーにより中断された場合CannotProceedExceptionには、この例外がスローされます。

DocumentNotFoundException This exception is thrown when the document associated with a voucher component cannot be found.

バウチャーのコンポーネントに関連付けられたドキュメントが見つからない場合DocumentNotFoundExceptionこの例外がスローされます。

FeatureNotAvailableException This exception is thrown when the invoked method is not supported.

FeatureNotAvailableException呼び出されたメソッドがサポートされていない場合、この例外がスローされます。

InsufficientVoucherException This exception is thrown when the number of the voucher is less than the number specified for trading.

InsufficientVoucherExceptionバウチャーの数は、取引のために指定された数より少ない場合、この例外がスローされます。

InvalidParticipantException This exception is thrown when the specified participant cannot be located.

指定された参加者が配置できないときInvalidParticipantExceptionこの例外がスローされます。

InvalidStateException This exception is thrown when the state of the session is invalid and the operation cannot proceed.

セッションの状態が無効であると、操作を続行できない場合InvalidStateExceptionこの例外がスローされます。

VTSSecurityException This exception is thrown when authentication fails, or when a method that requires authentication in advance is called without authentication.

VTSSecurityException認証が失敗した場合に、この例外がスローされ、または事前に認証を必要とする方法は、認証なしで呼び出されたとき。

6. Example Code
6.サンプルコード

// Issue a voucher

//バウチャーを発行します

   VTSManager vts = new FooVTSManager();
   ParticipantRepository addrBook = vts.getParticipantRepository();
   VoucherComponentRepository vcr = vts.getVoucherComponentRepository();
        
   Participant you = addrBook.lookup("http://example.org/foo");
     // looks up a trading partner identified as
     // "http://example.org/foo".
   VTSAgent me = addrBook.lookup("myName").getVTSAgent();
     // a short-cut name may be used if VTS implementation allows.
        

VoucherComponent promise = vcr.register(anXMLVoucherDocument); // registers a voucher component that corresponds to the voucher // to be issued.

VoucherComponentの約束= vcr.register(anXMLVoucherDocument)。 //は//が発行するバウチャーに対応バウチャーコンポーネントを登録します。

   try {
     me.login();
       // sets up the issuer's smartcard (assuming distributed VTS).
     s = me.prepare(you);
       // receives a challenge from the partner.
     me.issue(s, promise, 1);
       // sends a voucher using the received challenge.
     me.logout();
   } catch (VTSException e) {
       // if an error (e.g., a network trouble) occurs...
     System.err.println("Sorry.");
     e.printStackTrace();
       // this example simply prints a stack trace, but a real wallet
       // may prompt the user to retry (or cancel).
   }
        

// Transfer all my vouchers

//すべての私のバウチャーを転送

   VTSManager vts = new FooVTSManager();
   ParticipantRepository addrBook = vts.getParticipantRepository();
        
   Participant you = addrBook.lookup("8f42 5aab ffff cafe babe...");
     // some VTS implementations would use a hash value of a public key
     // (aka fingerprint) as an identifier of a participant.
   VTSAgent me = addrBook.lookup("myName").getVTSAgent(); try {
     me.login();
     Iterator i = me.getContents(null, null).iterator();
        
     while (i.hasNext()) {
       Voucher v = (Voucher) i.next();
       s = me.prepare(you);
       me.transfer(s, v.getIssuer(), v.getPromise(), v.getCount());
     }
        
     me.logout();
   } catch (VTSException e) {
     System.err.println("Sorry.");
     e.printStackTrace();
   }
        

// Register an incoming voucher notifier (biff)

//入ってくるバウチャー通知(BIFF)を登録

VTSManager vts = new FooVTSManager();

VTSManagerのVTS =新しいFooVTSManager();

   ParticipantRepository addrBook = vts.getParticipantRepository();
   VTSAgent me = addrBook.lookup("myName").getVTSAgent();
        
   ReceptionListener listener = new ReceptionListener() {
     public void arrive(Session s) {
       System.out.println("You got a new voucher.");
     }
   };
        
   try {
     me.login();
     me.addReceptionListener(listener);
     me.logout();
   } catch (VTSException e) {
     System.err.println("Sorry.");
     e.printStackTrace();
   }
        
7. Security Considerations
7.セキュリティの考慮事項

Security is very important for trading vouchers. VTS implementations are responsible for preventing illegal acts upon vouchers (as described in [VTS]), as well as preventing malicious access from invalid users and fake server attacks, including man-in-the-middle attacks.

セキュリティは、取引伝票のために非常に重要です。 VTSの実装は、([VTS]で説明したように)バウチャー時に違法行為を防止するための責任だけでなく、man-in-the-middle攻撃などの不正なユーザーや偽のサーバー攻撃、悪意のあるアクセスを防止しています。

The means to achieve the above requirements are not specified in this document because they depend on VTS implementation. However, securing communication channels (e.g., using TLS) between client VTS plug-ins and the central server in a centralized VTS (as described in 5.4.1 login()), and applying cryptographic challenge-and-response techniques in a distributed VTS are likely to be helpful and are strongly recommended to implement a secure VTS.

彼らはVTSの実装に依存するため、上記の要件を達成するための手段は、この文書で指定されていません。しかしながら、通信チャネルを確保する(例えば、TLSを使用)(5.4.1ログイン()に記載されているように)クライアントVTSプラグイン集中VTS内の中央サーバとの間、および分散VTSに暗号チャレンジ・アンド・レスポンス技術を適用有用である可能性が高いと強く安全なVTSを実装することをお勧めします。

This document assumes that the VTS plug-in is trusted by its user. The caller application of a VTS should authenticate the VTS plug-in and bind it securely using the VTS Provider information specified in the Voucher Component. This document, however, does not specify any application authentication scheme and it is assumed to be specified by other related standards. Until various VTS systems are deployed, it is enough to manually check and install VTS plug-ins like other download applications.

この文書では、VTSプラグインは、そのユーザーによって信頼されていることを前提としています。 VTSの呼び出し側アプリケーションは、VTSプラグインを認証し、安全バウチャーコンポーネントで指定されたVTSプロバイダ情報を使用して結合すべきです。この文書では、しかし、任意のアプリケーションの認証方式を指定しないと、他の関連規格で指定されているものとします。様々なVTSシステムが配備されるまで、手動でチェックして、他のダウンロードアプリケーションなどのVTSプラグインをインストールするのに十分です。

8. Acknowledgements
8.謝辞

The following persons, in alphabetic order, contributed substantially to the material herein:

以下の者は、アルファベット順に、材料本明細書に実質的に貢献しました。

Donald Eastlake 3rd Iguchi Makoto Yoshitaka Nakamura Ryuji Shoda

どなld えあstぁけ 3rd いぐち まこと よしたか なかむら りゅじ しょだ

9. Normative References
9.引用規格

[DOM] V. Apparao, S. Byrne, M. Champion, S. Isaacs, I. Jacobs, A. Le Hors, G. Nicol, J. Robie, R. Sutor, C. Wilson, and L. Wood. "Document Object Model (DOM) Level 1 Specification", W3C Recommendation, October 1998, <http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/>

[DOM] V. Apparao、S.バーン、M.チャンピオン、S.アイザックス、I.ジェイコブス、A.ルオードブル、G.ニコル、J. Robie、R. Sutor、C.ウィルソン、およびL.ウッド。 "ドキュメントオブジェクトモデル(DOM)レベル1仕様"、W3C勧告、1998年10月、<http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/>

[GVL] Fujimura, K. and M. Terada, "XML Voucher: Generic Voucher Language", RFC 4153, September 2005.

[GVL]藤村、K.とM.寺田、 "XMLバウチャー:ジェネリッククーポン言語"、RFC 4153、2005年9月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。

10. Informative References
10.参考文献

[ECML] Eastlake 3rd, D., "Electronic Commerce Modeling Language (ECML) Version 2 Specification", RFC 4112, June 2005.

[ECML]イーストレイク3日、D.、 "電子商取引モデリング言語(ECML)バージョン2仕様"、RFC 4112、2005年6月。

[EXC-C14N] J. Boyer, D. Eastlake, and J. Reagle, "Exclusive XML Canonicalization Version 1.0", W3C Recommendation, July 2002, <http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/>

[EXC-C14N] J.ボワイエ、D.イーストレイク、およびJ. Reagle、 "独占XML正規化バージョン1.0"、W3C勧告、2002年7月、<http://www.w3.org/TR/2002/REC-xml -Exc-C14N-20020718 />

[GPSF] G. Lacoste, B. Pfitzmann, M. Steiner, and M. Waidner (Eds.), "SEMPER - Secure Electronic Marketplace for Europe," LNCS 1854, Springer-Verlag, 2000.

【GPSF] G.ラコステ、B. Pfitzmann、M.シュタイナー、及びM. Waidner(編)、 "SEMPER - ヨーロッパのためのセキュアな電子市場、" LNCS 1854、シュプリンガー・フェアラーク、2000年。

[IOTP] Burdett, D., "Internet Open Trading Protocol - IOTP Version 1.0", RFC 2801, April 2000.

[IOTP]バーデット、D.、 "インターネットオープン取引プロトコル - IOTPバージョン1.0"、RFC 2801、2000年4月。

[JCC] T. Goldstein, "The Gateway Security Model in the Java Electronic Commerce Framework", Proc. of Financial Cryptography '97, 1997.

[JCC] T.ゴールドスタイン、 "Javaの電子商取引Frameworkのゲートウェイ・セキュリティモデル"、PROC。金融暗号'97、1997年。

[SHA-1] Department of Commerce/National Institute of Standards and Technology, "FIPS PUB 180-1. Secure Hash Standard. U.S.", <http://csrc.nist.gov/publications/fips/fips180-2/ fips180-2withchangenotice.pdf>

コマース/米国国立標準技術研究所の[SHA-1]部門、 "FIPS PUB 180-1の。セキュアハッシュ標準。US"、<http://csrc.nist.gov/publications/fips/fips180-2/ fips180 -2withchangenotice.pdf>

[TLS] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC 2246, January 1999.

[TLS]ダークス、T.とC.アレン、 "TLSプロトコルバージョン1.0"、RFC 2246、1999年1月。

[VTS] Fujimura, K. and D. Eastlake, "Requirements and Design for Voucher Trading System (VTS)", RFC 3506, March 2003.

[VTS]藤村、K.、およびD.イーストレイク、 "要件およびクーポン取引システム(VTS)のためのデザイン"、RFC 3506、2003年3月。

Authors' Addresses

著者のアドレス

Masayuki Terada NTT DoCoMo, Inc. 3-5 Hikari-no-oka, Yokosuka-shi, Kanagawa, 239-8536 JAPAN

まさゆき てらだ んっt どこも、 いんc。 3ー5 ひかりーのーおか、 よこすかーし、 かながわ、 239ー8536 じゃぱん

Phone: +81-(0)46-840-3809 Fax: +81-(0)46-840-3705 EMail: te@rex.yrp.nttdocomo.co.jp

電話:+ 81-(0)46-840-3809ファックス:+ 81-(0)46-840-3705 Eメール:te@rex.yrp.nttdocomo.co.jp

Ko Fujimura NTT Corporation 1-1 Hikari-no-oka, Yokosuka-shi, Kanagawa, 239-0847 JAPAN

こ ふじむら んっt こrぽらちおん 1ー1 ひかりーのーおか、 よこすかーし、 かながわ、 239ー0847 じゃぱん

Phone: +81-(0)46-859-3053 Fax: +81-(0)46-859-1730 EMail: fujimura.ko@lab.ntt.co.jp

電話:+ 81-(0)46-859-3053ファックス:+ 81-(0)46-859-1730 Eメール:fujimura.ko@lab.ntt.co.jp

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2005).

著作権(C)インターネット協会(2005)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

この文書では、BCP 78に含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットソサエティおよびインターネット・エンジニアリング・タスク・フォース放棄すべての保証、明示または、(もしあれば)後援ISに設けられています。黙示、情報の利用は、特定の目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証含むがこれらに限定されません。

Intellectual Property

知的財産

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

IPRの開示のコピーが利用できるようにIETF事務局とライセンスの保証に行われた、または本仕様の実装者または利用者がそのような所有権の使用のための一般的なライセンスまたは許可を取得するために作られた試みの結果を得ることができますhttp://www.ietf.org/iprのIETFのオンラインIPRリポジトリから。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。