[要約] RFC 4154は、Voucher Trading System Application Programming Interface(VTS-API)に関する仕様書です。このRFCの目的は、VTS-APIの機能と操作方法を定義し、バウチャー取引システムの開発者がAPIを使用して相互運用可能なアプリケーションを作成できるようにすることです。

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).

Copyright(c)The Internet Society(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.

このドキュメントは、インターネット標準のレベルの候補ではありません。このドキュメントは、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.

VTSEは、集中化されたオンラインサーバーを使用してすべてのバウチャーを保存および管理する集中型VTS、または各ユーザーが所有するバウチャーを維持するために使用するバウチャーを使用する分散VTSなど、さまざまな方法で実装できます。ただし、VTS-APIにより、発信者アプリケーションはVTSの実装とは無関係に均一な方法でバウチャーを発行、転送、および引き換えることができます。一般的な支払いAPIを提供するためのいくつかの試みがなされています。たとえば、Java Commerceクライアント[JCC]および一般的な支払いサービスフレームワーク[GPSF]は、多様な種類の支払いモジュールをプラグインとして追加し、チェック様/キャッシュのような支払いモデルの両方をサポートできるモジュラーウォレットアーキテクチャを導入します。このドキュメントはこれらのアプローチに触発されていますが、その範囲はVTSモデルに限定されており、現金のような支払いモデルが想定され、バウチャーはVTSを介して送信者(譲渡者)と受信者(譲受人)の間で直接的または間接的に転送されます。このドキュメントは、VTSモデルに適合しないセット、eチェック、またはその他の支払いスキームの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 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.

金銭的値のみを転送するように設計されたJCCおよびGPSFで提供されるAPIとは異なり、このAPIはXMLベースのジェネリックバウチャー言語[GVL]を使用して幅広い値を転送できます。バウチャーの金銭的意味は、言語で説明されている情報を使用して、上部のアプリケーション層によって解釈されます。このアプローチにより、バウチャートランスファー層でよりシンプルなAPIを提供し、ランタイム効率を高めることができます。このドキュメントの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]

「必須」、「そうしない」、「必須」、「shall」、「shall "、" ingle "、" should "、" not "、" becommended "、" bay "、および「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が優先されることがよくありますが、債券または証券の場合、集中化されたオンラインVTが推奨されます。分散されたVTSEは、バウチャーを安全に取引するためにパブリック(非対称の)キーベースまたは共有(対称)キープトグラフィーの課題と応答プロトコルを利用しますが、集中化されたVTSEは、データベースのバウチャーの所有権を書き直すトランザクションを利用します。したがって、現時点でバウチャーを発行、転送、または償還するための標準プロトコルを定義することは実用的ではありません。

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).

実装の柔軟性を提供するために、このドキュメントは、複数のVTSをプラグインとして追加できるようにするモジュラーウォレットアーキテクチャを想定しています。このアーキテクチャでは、標準のバウチャー転送プロトコルを指定する代わりに、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

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

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)と呼ばれるバウチャーの論理的なビューを提供します。これは、VTS [VTS]によって管理されるバウチャー<i、P、H>を含むセットです。ユーザーのウォレットは、VTS-APIを介してVTSプラグインと対話することにより、ユーザーが所有するバウチャーのセットを含むVVSのサブセットにアクセスする(例:表示、転送、および引き換え)できます。同様に、発行システムはバウチャーを発行して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を提供します。たとえば、集中化されたVTSEと分布の両方のVTSEの両方に対して、一般的なAPIが提供されます。発行者とアプリケーション開発者は、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を使用するウォレットまたはその他のアプリケーションによって実装されることを目的としたRecenceListenerを除くすべてのインターフェイスを実装するために必要です。

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を介して直接的または間接的に取得できます。VTSMANAGERは、2つのリポジトリを維持しています。参加者の2つのリポジトリと、以下に説明するVoucherComponentRePositoryです。

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.

PationAnTrePositoryは、トレーディングパートナーになる参加者のアクセスポイントを提供します。参加者は参加者を維持し、取引パートナーの「アドレス帳」として機能します。

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.

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

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つ以上のバウチャーを表します。バウチャーは、バウチャー(発行者)を発行した参加者インターフェイスと、以下で説明するバウチャーコンポーネント(PROMIST)への参照を保持します。

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は、VoucherComponentsを維持し、VTSが管理する「バウチャータイプの本」として機能します。このドキュメントは、バウチャーコンポーネントのセットがこのリポジトリに取得および保存されていることを前提としています。バウチャーコンポーネントの配信は、このドキュメントの範囲を超えています。取引パートナーから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.)

RecenceListenerは、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を使用するウォレットまたはその他のアプリケーションでは、このパッケージを「Intemant 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.

バウチャーを操作するために必要なすべてのオブジェクトは、VTSManagerを介して直接的または間接的に取得でき、ウォレットまたはその他のアプリケーションがこのインターフェイスを実装するオブジェクトをインスタンス化することでVTを使用できるようにすることができます。

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. GetPartIcapantrePository

public ParticipantRepository getParticipantRepository()

Public Pationalantrepository getParticAntrePository()

Returns a repository that maintains Participants.

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

Returns:

戻り値:

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

VTSの参加者の参加者、またはnullが参加者が利用できない場合はnull。

5.1.2. getVoucherComponentRepository
5.1.2. getvouchercomponentrepository

public VoucherComponentRepository getVoucherComponentRepository()

public vouchercomponentrepository getvouchercomponentrepository()

Returns a repository that maintains VoucherComponents.

バウチャーコンポーネントを維持するリポジトリを返します。

Returns:

戻り値:

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

VOCHERCOMPONENTREPOSITORYが利用可能な場合は、VTSのVoucherComponentrePository、またはnull。

5.2. ParticipantRepository
5.2. 参加者のように

public interface ParticipantRepository

Public Interface PationalAntrePository

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

参加者のアクセスポイントを提供します。参加者は参加者を維持し、取引パートナーの「アドレス帳」として機能します。

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.

参加アントレポジットの実装は、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に関連付けられた参加者、またはIDがnullまたは対応する参加者が見つからない場合は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()

public 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

Public Interface 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は所有者に関連付けられており、所有者が所有するバウチャーを管理する手段を提供します。他の方法で呼び出される前に、ホルダーをlogin()メソッドを使用して認証する必要があります。そうしないと、VTSSeCurityExceptionが発行されます。

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

取引方法が呼び出される前に、例えば、ressure()、transf()、cushume()、and()と呼ばれる前に、アプリケーションはprepare()メソッドでセッションを確立する必要があります。

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.

ネットワークの障害により、バウチャーがネットワークを介して送信されると、セッションが停止されることがよくあります。中断されたセッションは、resume()メソッドによって再起動できます。セッションの国家管理の詳細については、セクション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.

一部のVTSagentは、すべての取引方法を持っていない場合があります。バウチャー収集システムでは、バウチャーを発行または作成する方法をVTSagentに提供する必要はありません。サポートされていないメソッドが呼び出されたときに、VTSagentはfeatureNotavaibleExceptionを返します。

5.4.1. login
5.4.1. ログイン

public void login(String passphrase) throws VTSException

public voidログイン(String PassPhrase)は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)で管理されています。この場合、スマートカードへのアクセスをアプリケーションまたはユーザーに連絡せずに実行できるため、パスフレーズはnullになる可能性があります(つまり、VTSAGENTはサーバーからチャレンジを受け取り、課題を(VTS内)に送信し、戻ります。SmartCardからサーバーへの応答)。実装に応じて、このメソッドを通じてスマートカードのロックを解除するピンを指定することができることに注意してください。

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)を保持しています。この場合、認証が不要なため、パスフレーズはヌルになる可能性があります。これは実装に依存しますが、スマートカードのロックを解除するピンが指定される可能性があることに注意してください。

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(中間者)を含む偽のサーバー攻撃も考慮する必要があります。

Throws:

スロー:

VTSSecurityException - if authentication fails.

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

5.4.2. logout
5.4.2. ログアウト

public void logout() throws VTSException

public void logout()は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.

このメソッドが呼び出された後、他のメソッド(login()を除く)を呼び出すと、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は無効なパートインティピタントセクチオンを投げます。VTSAGENTがネットワークの障害(過渡エラー)のためにセッションを確立できない場合、VTSAGENTはExanProceedExceptionをスローします。

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).

CaintedPro CeheyException-セッションの準備が中止されている場合(たとえば、ネットワークの障害)。

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

featurenotavailableexception -vtsagentが取引方法を提供していない場合。

InvalidParticipantException - if the specified participant is invalid.

InvalidPartIctIcAntException-指定された参加者が無効である場合。

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

パブリックボイドの問題(セッションセッション、バウチャーコンポーネントの約束、java.lang.Number num)

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.

バウチャーを発行します。このメソッドは、指定された数のバウチャー<this、Promise、Receiver>を作成し、VVSに追加します。VTSが分散されている場合、このメソッドは、prepare()メソッドで受信したチャレンジに対応する「応答」を作成し、受信者に送信します。prepare()が呼び出されるときに受信機が指定されることに注意してください。指定された数値が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.

Can Can CabnPro CheyException -Transactionが正常に完了できない場合。

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

featurenotavaibleexception -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

パブリックボイド転送(セッションセッション、参加者発行者、バウチャーコンポーネントの約束、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.

バウチャーを転送します。このメソッドは、指定された数のバウチャー<発行者、約束、この> to <発行者、約束、受信者>をVVSで書き換えます。つまり、送信者からバウチャーを削除し、レシーバー用に保存します。Issue()と同様に、このメソッドは、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).

発行者パラメーターにnullが指定されている場合、「任意の発行者」を示します。この方法では、GetContents(Null、Promise)によって返されたバウチャーのセットから転送されるバウチャーを選択します。

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.

Can Can CabnPro CheyException -Transactionが正常に完了できない場合。

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.

不十分なvtoucherexception -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

public void Consume(セッションセッション、参加者発行者、vouchercomponent Promise、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から削除し、削除の受信者に通知します。Issue()およびTransfer()と同様に、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).

発行者パラメーターにnullが指定されている場合、「任意の発行者」を示します。この方法は、GetContents(Null、Promise)によって返されるバウチャーのセットから消費されるバウチャーを選択します。

Parameters:

パラメーター:

session - the session used by the consume transaction.

セッション - 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.

Can Can CabnPro CheyException -Transactionが正常に完了できない場合。

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.

不十分なvtoucherexception -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

パブリックボイドプレゼント(セッションセッション、参加者発行者、バウチャーコンポーネントの約束、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が分散されていることを証明するために、応答は受信機とConsume()に送信されます。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).

発行者パラメーターにnullが指定されている場合、「任意の発行者」を示します。この方法は、GetContents(Null、Promise)によって返されたバウチャーのセットから提示されるバウチャーを選択します。

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.

Can Can CabnPro CheyException -Transactionが正常に完了できない場合。

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

不十分なvtoucherexception -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

public voidキャンセル(セッションセッション)は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

public void resume(セッションセッション)は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.

Can Can CabnPro CheyException -Transactionが正常に完了できない場合。

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

public void create(vouchercomponent promise、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自体であるバウチャーを作成します。このメソッドは、指定された数のバウチャーを作成します。指定された数値が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

public void delete(参加者発行者、vouchercomponent promise、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.

不十分なvtoucherexception -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

public java.util.set getContents(参加者発行者、バウチャーコンポーネントの約束)が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.

発行者またはPromiseパラメーターにnullが指定されている場合、それぞれ「発行者」または「約束」を示します。両方のパラメーターに対して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. getSesions

public java.util.Set getSessions() throws VTSException

public java.util.set getSesions()は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

public 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

public void addReceptionListener(RecenceListener L)はVtSexceptionをスローします

Adds a ReceptionListener to the listener list.

リスナーリストにレセプションリストナーを追加します。

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

この方法でレセプションのlistener lが登録された後、vtsagentがバウチャーを受け取るたびにl.arrive()が呼び出されます。

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. RemoverCeptionListener

public void removeReceptionListener(ReceptionListener l) throws VTSException

public void removereceptionlistener(RecenceListener L)はVtSexceptionを投げます

Removes a ReceptionListener from the listener list.

リスナーリストからレセプションリストナーを削除します。

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#PREPARE()によって確立されます。

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#resume()を呼び出すことにより、「アクティブ化」して再起動できます。

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()

public 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#prepare()メソッド)。

Returns:

戻り値:

the receiver of the session.

セッションの受信者。

5.5.5. isPrepared
5.5.5. ISPREPARED

public boolean isPrepared()

public boolean isprepared()

Verifies if the session is "prepared".

セッションが「準備」されている場合、検証します。

Returns:

戻り値:

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

セッションが「準備された」状態にある場合、そうでなければ偽り。

5.5.6. isActivated
5.5.6. isactivated

public boolean isActivated()

public boolean isactivated()

Verifies if the session is "activated".

セッションが「アクティブ化」されている場合、検証します。

Returns:

戻り値:

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

セッションが「アクティブ化された」状態にある場合、そうでなければ偽り。

5.5.7. isSuspended
5.5.7. 懸濁

public boolean isSuspended()

public boolean suspeded()

Verifies if the session is "suspended".

セッションが「一時停止」されている場合、検証します。

Returns:

戻り値:

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

セッションが「中断された」状態にある場合、そうでなければ偽り。

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

public boolean isCompleted()

public boolean iscompleted()

Verifies if the session is "completed".

セッションが「完了」されている場合、検証します。

Returns:

戻り値:

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

セッションが「完了した」状態にある場合、そうでなければ偽り。

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).

バウチャーの発行者部分を返します。

Returns:

戻り値:

the participant who issued the voucher(s).

バウチャーを発行した参加者。

5.6.2. getPromise
5.6.2. GetPromise

public VoucherComponent getPromise()

public vouchercomponent getPromise()

Returns the promise part of the voucher(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()

public java.lang.NumberGetCount()

Returns the number of the voucher(s).

バウチャーの番号を返します。

Returns:

戻り値:

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

バウチャーのプラス(> 0)数。

5.7. VoucherComponentRepository
5.7. VoucherComponentrePository

public interface VoucherComponentRepository

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

Maintains 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.

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

5.7.1. register
5.7.1. 登録レジスターレジ記名台帳音域帳簿書き記す登録する記帳する

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

public 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である場合、ドキュメントの構文がVTSに準拠していない場合、何も実行されません(およびメソッドはnullを返します)。

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. バウチャーコンポーネント

public interface 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).

各バウチャーコンポーネントオブジェクトには独自の識別子があり、バウチャーの発行者による約束を説明する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()

public 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()

public 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#Register()メソッドによって、バウチャーコンポーネントに関連付けられたドキュメントの表現[DOM]モデル[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オブジェクトは、バウチャーコンポーネントが常にDOMオブジェクトへの参照を維持する代わりに、バウチャーコンポンレポジトリのオンデマンドから取得できます。

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は、対応するバウチャーコンポーネントに関連付けられているバウチャーがVVSに存在する場合、GetDocumentメソッドが最終的にDOMオブジェクトを返すことを保証する必要があります。

Returns:

戻り値:

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

バウチャーコンポーネントに関連付けられたドキュメントのDOM表現。

Throws:

スロー:

DocumentNotFoundException - if the associated DOM object cannot be retrieved.

documentNotFoundException -Assosicive Domオブジェクトを取得できない場合。

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

public interface ReceptionListener extends java.util.EventListener

パブリックインターフェイスレセプションリーステナーは、java.util.eventlistenerを拡張します

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は各登録済みのRecomenceListenerの到着()メソッドを呼び出します。RecomenceListenersは、受信したバウチャーとバウチャーの送信者に関する情報を含むセッションオブジェクトを取得できます。

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)

パブリックボイド到着(セッションセッション)

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に登録された後(VTSAGENT#AddCeptionListener()メソッドによって)、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.

Cain can cable ceedcectionこの例外は、ネットワークの障害やその他のエラーによって取引が中断されるとスローされます。

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.

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

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

InvalidPartIctIctIcantExceptionこの例外は、指定された参加者を見つけることができない場合にスローされます。

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 Promise = 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();
        
   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]で説明されているように)、無効なユーザーや中間の攻撃を含む偽のサーバー攻撃からの悪意のあるアクセスを防ぎます。

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の実装に依存するため、このドキュメントでは指定されていません。ただし、クライアントVTSプラグインと集中型VTSの中央サーバー(5.4.1 Login()で説明)の間の通信チャネル(例:TLSを使用)を保護し、分散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

ドナルド・イーストレイク第3回門城井吉田村中村ryuji shoda

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。Byrne、M。Champion、S。Isaacs、I。Jacobs、A。LeHors、G。Nicol、J。Robie、R。Sutor、C。Wilson、およびL. Wood。「ドキュメントオブジェクトモデル(DOM)レベル1仕様」、W3C推奨、1998年10月、<http://www.w3.org/tr/1998/recdom-level-1-19981001/>>>>

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

[GVL] Fujimura、K。およびM. Terada、「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] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、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] EastLake 3rd、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. Boyer、D。Eastlake、およびJ. Reagle、「専用XML Canonicalizationバージョン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. Lacoste、B。Pfitzmann、M。Steiner、およびM. Waidner(編)、「Semper-ヨーロッパの安全な電子市場」、LNCS 1854、Springer -Verlag、2000。

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

[IOTP] Burdett、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. Goldstein、「Java Electronic Commerce 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 Pub180-1。SecureHashStandard。U.S.」、<http://csrc.nist.gov/publications/fips/fips180-2/ fips180-2/-2WithChangenotice.pdf>

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

[TLS] Dierks、T。およびC. Allen、「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] Fujimura、K。およびD. Eastlake、「バウチャー取引システム(VTS)の要件と設計」、RFC 3506、2003年3月。

Authors' Addresses

著者のアドレス

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

Masayuki terada ntt docomo、Inc。3-5 hikari-no-oka、konagawa、kanagawa、239-8536日本

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

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

Ko Fujimura ntt Corporation 1-1 Hikari-no-oka、Yokosuka-shi、Kanagawa、239-0847 Japan

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

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2005).

Copyright(c)The Internet Society(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.

このドキュメントとここに含まれる情報は、「現状のまま」に基づいて提供されています。また、貢献者、彼/彼女が代表する組織(もしあれば)が後援する組織、インターネット協会とインターネット工学タスクフォースは、すべての保証、明示的または明示的、またはすべての保証を否認します。本書の情報の使用が、商品性または特定の目的に対する適合性の権利または黙示的な保証を侵害しないという保証を含むがこれらに限定されないことを含む。

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.

IETF事務局に行われたIPR開示のコピーと、利用可能にするライセンスの保証、またはこの仕様の実装者またはユーザーによるそのような独自の権利の使用のための一般的なライセンスまたは許可を取得するための試みの結果を取得できます。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エディター機能の資金は現在、インターネット協会によって提供されています。