JP2006244471A - コマンドラインデータ型の検出および変換 - Google Patents

コマンドラインデータ型の検出および変換 Download PDF

Info

Publication number
JP2006244471A
JP2006244471A JP2006024863A JP2006024863A JP2006244471A JP 2006244471 A JP2006244471 A JP 2006244471A JP 2006024863 A JP2006024863 A JP 2006024863A JP 2006024863 A JP2006024863 A JP 2006024863A JP 2006244471 A JP2006244471 A JP 2006244471A
Authority
JP
Japan
Prior art keywords
data
command
downstream
upstream
accepted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006024863A
Other languages
English (en)
Other versions
JP5037828B2 (ja
Inventor
Hitesh Raigandhi
ライガンジー ヒテシュ
Jeffrey D Jones
ディー.ジョーンズ ジェフリー
Jeffrey P Snover
ピー.スノーバー ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006244471A publication Critical patent/JP2006244471A/ja
Application granted granted Critical
Publication of JP5037828B2 publication Critical patent/JP5037828B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F11/00Indicating arrangements for variable information in which the complete information is permanently attached to a movable support which brings it to the display position
    • G09F11/02Indicating arrangements for variable information in which the complete information is permanently attached to a movable support which brings it to the display position the display elements being secured to rotating members, e.g. drums, spindles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

【課題】コマンドラインデータ型の検出および変換を提供すること。
【解決手段】アップストリームコマンドとダウンストリームコマンドを有し、アップストリームコマンドが、ダウンストリームコマンドの入力として受け入れられない可能性がある型のデータを出力することができるコマンドラインの動作を可能にするために使用できるシステムおよび/または方法が提示される。
【選択図】図2

Description

本発明はコマンドラインおよびコマンドラインインタフェースに関する。
コンピュータユーザは一般に、情報を検出し使用する必要がある。多くの場合、ユーザはグラフィカルユーザインタフェースまたはコマンドラインインタフェースによって情報を検出し使用する。ユーザが自分のオフィスの近くにあるカラープリンタを検出しそのプリンタを構成したいと考えた場合、ユーザは、例えばグラフィカルユーザインタフェースのメニュー、ドロップダウンリストなどによって、あるいはコマンドラインインタフェースのコマンドライン入力によってそれを実施することができる。
ユーザがグラフィカルユーザインタフェースによってカラープリンタを検出し構成することを選択したと想定する。この会社が、例えば10棟のビルに分散された127台のプリンタを有している場合、使用可能なプリンタのドロップダウンリストはこれら127台の各プリンタを表示することができる。これらのリストされた各プリンタの特性を一覧することによってユーザは、これらのプリンタのうち18台がカラー印刷可能であり、その18台のうちの1台がユーザの居るビル内に設置されていることを確認する。このカラープリンタの名前を用意して、次いでユーザはグラフィカルユーザインタフェースなどによってこのプリンタを構成することを選択することができる。完了した後で、ユーザはこのプリンタにカラー印刷のジョブを送信することができる。
多くの場合、コマンドラインインタフェースを用いると、グラフィカルユーザインタフェースと比べてユーザはより高速、高効率、かつ高性能に情報を検出し使用することができる。上記の例では、ユーザは127台のプリンタの特性を調査して必要な1台を検出している。このためには、かなりの時間を必要とすることがある。
その代わりとして、ユーザがコマンドラインインタフェースによってカラープリンタを検出し構成するものと想定する。このような状況では、多くの場合ユーザには2つの選択肢がある。第1の選択肢では、ユーザは第1のコマンドライン(例えば、「get_printer」)を入力し、その出力を読み取り、探しているプリンタを検出し、検出した情報を第2のコマンド(例えば、「Configure−Printer printername」)の入力として使用して他のコマンドを打ち込む。この方法は、様々な問題を含んでいる。その1つは、第1のコマンドの出力をユーザが読み取り、理解できることが必要になることである。このことは、多くの場合第1のコマンドラインが特定の形式の(人間可読の)テキストコード化されたデータを出力し、ユーザがそれを読み取らなければならないことを意味する。このことはまた、ユーザが第2のコマンドを入力しなければならないこと、および検出した情報を第2のコマンドによって使用可能な形式およびコード化で入力しなければならないことも意味する。多くの場合、この第1の選択肢もまたかなりの時間を必要とする。
第2の選択肢では、コマンドラインインタフェースはしばしば、その「シェル」によって、スクリプトを用いてユーザ動作の多くを自動化する。この場合ユーザは、全体として、プリンタを検出し構成するために使用される第1および第2のコマンド(および新しい第3のコマンド)、ならびに他の情報を含むコマンドラインを入力する。この場合、コマンドラインは以下のように書くことができる。
Figure 2006244471
ここではユーザは、すべてのプリンタについての情報を取得するための第1のコマンド「get_printer」を呼び出すスクリプトを書いている。次いでこのスクリプトは、どのプリンタがビル番号9にあり、カラーで印刷できるか(「get_printername 9 color」)に基づいて出力を解析する。このプリンタの名前が検出された後で、シェルはこのプリンタの名前を用いてコマンド「Configure−Printer」を呼び出してそのプリンタを構成する。
この第2の選択肢は強力で効率的であるが、この選択肢にも問題がある。各コマンドは型指定のものになる。すなわち、各コマンドは一般に特定の型のデータ(例えば、XMLでコード化されフォーマットされたデータ)を受け入れ、出力する。第1のコマンド「get_printer」はテキストコード化されフォーマットされたデータを生成するが、「Configure−Printer」コマンドがテキストコード化されフォーマットされたデータを正しく受け入れない場合は、Configure−Printerコマンドは失敗することになる。
この問題に取り組むために、コマンドラインの各コマンドの作成者の多くは、データがテキストコード化されている場合に限り、各コマンドを標準化してデータを出力し入力データを受け入れてきた。しかし、テキストコード化されたデータには標準のフォーマットが無いので、解析が困難になることがありかつ/または解析によってエラーが生じ易くなる傾向があった。
アップストリームコマンドとダウンストリームコマンドを有し、アップストリームコマンドが、ダウンストリームコマンドの入力として受け入れられない可能性がある型のデータを出力することができるコマンドラインの動作を可能にするために使用できるシステムおよび/または方法を提供すること。
このシステムおよび/または方法は、例えば、コマンドライン中のアップストリームコマンドからの出力が、その出力に関係するデータ型の判別を可能にするのに十分なタグを含む形で受信されるコマンドラインデータストリームプロトコルを含むことができる。データ型を知ることによって、関係するデータをダウンストリームコマンドの入力として受け入れることができるデータ型に変換することができる。
概要
アップストリームコマンドとダウンストリームコマンドを有し、アップストリームコマンドがダウンストリームコマンドの入力として受け入れられない型のデータを出力するコマンドラインの動作を可能にするために使用できるシステムおよび/または方法(「ツール」)が提示される。
一例示的実施形態では、コマンドラインデータストリームプロトコルはコマンドライン中のアップストリームコマンドからの出力を受信する。受信した出力は、出力のデータ型の判別を可能にするのに十分なタグを有する。その出力を入力として受信する、コマンドライン中のダウンストリームコマンドの受け入れ可能なデータ型も判別される。出力のデータ型がダウンストリームコマンドのデータ型に適合しない場合は、その出力のデータ型はダウンストリームコマンドに適合するデータ型に変換される。
他の例示的実施形態では、コマンドラインシェルが、アップストリームコマンドが出力できるデータの型およびダウンストリームコマンドが入力として受け入れられるデータの型を判別する。出力できるデータの型の1つがダウンストリームコマンドの入力として受け入れられる場合は、シェルはアップストリームコマンドにその型でデータを出力するよう指示する。一方、出力できるどの型のデータもダウンストリームコマンドの入力として受け入れられないとコマンドラインシェルが判定した場合は、コマンドラインシェルは入力として受け入れられるデータの型の1つに変換できる型のデータを出力するようアップストリームコマンドに指示することもできる。次にシェルは変換コマンドを呼び出して、出力のデータ型を入力として受け入れられる型に変換することができる。
他の例示の実施形態では、コマンドからの出力はタグを含むようにコード化することができる。このタグは出力データのプリアンブルを含むことができる。このプリアンブルは、出力のデータ型が、例えば特定のスキーマを有するCSV(コンマ区切り)やXML(拡張マークアップ言語)などの構造化されたデータであることの判別を可能にするのに十分な情報を含む。
例示的アーキテクチャ
各ツールの態様を詳細に説明する前に、例示的アーキテクチャについての以下の議論は、ツールの様々な態様がどこでどのように使用できるかを読者が理解することを助けるために提供するものである。以下で示す説明が単なる例示に過ぎず、ツールの適用を特定のアーキテクチャまたは環境に制限することを意図したものではないことを理解されたい。
図1は、コンピュータ装置102、およびそのコンピュータ装置に含まれるまたはそれによってアクセス可能な様々なコンポーネントを含むアーキテクチャ100を一般的に示したものである。この特定の例では、コンピュータ装置は1つまたは複数のプロセッサ104、およびコンピュータ可読媒体106を含む。このコンピュータ可読媒体は、コマンドラインインタフェース108、コマンドラインシェル110、コマンド112、およびコンバータ114を提供するソフトウェアコードを実施する。
様々な可能な入力および出力の型を有する複数のコマンド112が示されている。例えば、get printerコマンド116はテキストおよびCSV型のデータを受け入れかつ出力することができ、configure printerコマンド118はCSVおよびXML型のデータを受け入れかつ出力することができ、またpause printerコマンド120はASN.1およびXML型のデータを受け入れかつ出力することができる。
CSV−XML変換器122、XML−CVS変換器124、TEXT−XML変換器126、ASN.1−XML変換器128、XML−ANS.1変換器130など複数の変換器114もまた示されており、これらの変換器により1つまたは複数のコマンド112の出力を、あるデータ型から他のデータ型に変換することができる。
以下でより詳細に説明するように、コマンドラインインタフェースはコマンドライン入力、例えばコンピュータ装置のユーザによって入力された入力などを受信し、関係するコマンドを実施または実行する。コマンドラインシェルは、コマンドライン中の各コマンドに対するプロセスを生成し、それらのコマンドに対する各プロセス間の入力と出力を管理することによって、コマンドライン中の各コマンドを管理する。
コマンドラインの動作を可能にする
上記および下記のツールは、アップストリームコマンドとダウンストリームコマンドを含み、アップストリームコマンドがダウンストリームコマンドの入力として受け入れられない型のデータを出力することができるコマンドラインの動作を可能にすることができる。以下で説明するいくつかの例示の実施形態では、各ツールはコード化および変換プロトコルによってそれを実施する。プロトコルの変換態様は、コマンドラインそれ自体の中で、あるいは外部的にコマンドラインシェルなどによって呼び出すことができる。他の例示の実施形態では、各ツールはコード化および変換プロトコルなしで動作を可能にする。
これらの実施形態は、単独でまたは組合せて使用することができる。したがってコマンドラインは、第1のアップストリーム−ダウンストリームペアに関してコマンドライン内部で呼び出される変換、第2のアップストリーム−ダウンストリームペアに関してシェルによって呼び出される他の変換、および第3のアップストリーム−ダウンストリームペアに関してアップストリームコマンドの出力を検出し指示することによって自動的に受け入れ可能になされたダウンストリームコマンドへの入力を含むことができる。
これらの様々な実施形態は例示のために記載したものであり、ツールの適用可能性を制限することを意図したものではない。
コード化およびプロトコル:外部的に呼び出される変換
図2を参照すると、プロセス200には例示的なコード化およびロトコルが示されている。ただし、この変換プロトコルの変換は外部的に呼び出される。プロセス200は、コマンドラインインタフェース108、コマンドラインシェル110、コンバータ114など、コンピュータ装置の各要素によって実施される個々の動作または処理を表す一連のブロックとして示されている。本明細書に記載のこのプロセスおよび他のプロセスは、任意の適切なハードウェア、ソフトウェア、ファームウェア、およびそれらの組合せとともに実装することができる。ソフトウェアおよびファームウェアの場合は、これらのプロセスは、コンピュータ実行可能な命令として実装された動作の組を表す。
ブロック202で、コマンドラインが受信される。このコマンドラインはコンピュータ装置102のユーザ、例えばコマンドラインインタフェース108にコマンドラインを打ち込んだユーザから受信することができる。コマンドラインは、1つまたは複数のアップストリームコマンドおよび1つまたは複数のダウンストリームコマンドなど複数のコマンドを含むことができる。
例示の実施形態では、以下の構文を有するコマンドラインが受信される。
Figure 2006244471
この実施例では、コマンドラインにはアップストリームコマンド「GET−PRINTER」とダウンストリームコマンド「PAUSE−PRINTER」が含まれる。これらのコマンドは図1の116と120に示されている。このコマンドラインは、システム名「PRINTSRV10」を有するコンピュータ装置によってアクセス可能なプリンタに関するデータを要求する。さらに、このコマンドはプリンタを休止させるよう要求する。このコマンドラインを実行するために、アップストリームコマンドの出力(「PRINTSRV10」に関するプリンタのデータ)を、可能な場合には、pause printerコマンドに入力としてパイプすることができる。
しかし、get printerコマンドの出力のデフォルト型がCSV(コンマ区切り)であると想定する。また、pause printerコマンドはASN.1(抽象構文記法1)またはXML型(拡張マークアップ言語型)入力だけを受け入れると想定する。この場合、アップストリームコマンドは、ダウンストリームコマンドの入力として受け入れられない型を有するデータを出力することになる。
次にアップストリームコマンド(「GET_PRINTER」)の出力が以下の通りであると想定する。
Figure 2006244471
ここでは、get printerコマンドはシステム名「PRINTSRV10」を有する6台のプリンタを検出し,その出力をCSV形式で生成する。このCSV型のデータがダウンストリームのpause printerコマンドに提供された場合、pause printerコマンドはこのデータを受け入れないので、このコマンドラインは失敗することになる。しかし、以下で説明するコード化および変換プロトコルを使用すると、pause printerコマンドがCSV形式を受け入れない場合であってもコマンドラインの動作を可能にすることができる。
ブロック204で、データ出力の型が、例えばCSV、XMLであることを判別可能にするのに十分な情報を含むようにアップストリームコマンドの出力がコード化される。このコード化は、データストリームタグなどを含む出力それ自体のデータストリームの内部に存在する。一実施形態では、データストリームタグはデータのプリアンブルを含む。このプリアンブルは、データの型を指示する情報、およびデータ等を規定するスキーマなどデータについての他の情報を含むことができる。
このプリアンブルを用いると、アップストリームのget printerコマンドのコード化された出力は、代わりとして以下のようになる。
Figure 2006244471
このコード化は様々な方法で実施することができる。ある場合には、アップストリームコマンドは、自動的にその出力をコード化するように作成または変更される。他の場合には、シェルが出力を受信し、その出力をコード化する。
多くの場合、コマンドラインシェルは、例えばコマンドラインを各コマンドに対するプロセスに分割し、それらのプロセスを管理するように動作することによって、コマンドライン中の各コマンドを管理する。シェルは、例えば各アップストリームコマンドの出力を、後続のダウンストリームに入力として送信することができる。
例示の実施形態において、アップストリームコマンドによって出力が上記のプリアンブルを含むようにコード化されていると想定する。このプリアンブルはナンバー記号(「#」)で始まる4つの行を含む。これらの各行は、必ずしも出力データそのものを含む必要はないが、データに関する情報を含むことができる。プリアンブルの最初の行は、ナンバー記号に続く大なり記号とスペース(「#> 」)を含む。この3文字の構文は、この行の後続の情報が出力のデータ型を示すことを出力の読み手に示す。したがってこの例示では、次の文字列「CSV」が、出力がコンマ区切り型であることを示す。他の3行もまた、データに関する追加の情報を示す。第2の行は以下の形をしている。
Figure 2006244471
この行は、CSVデータの構造が、第1のカラムがプリンタの位置、第2がプリンタの名前、第3がプリンタの状態、第4がプリンタの状況、第5がプリンタの共有名、第6がプリンタのシステム名からなることを示す。出力の第1行目を見ると、以下のように示されている。
Figure 2006244471
したがって、最初にリストされているプリンタの位置は、第1行の第1カラムに存在する「USA/REDMOND,WA/40/FLOOR2/2015」である。名前は「PRINTSRV10\b40−2015−a」である。このプリンタの状態は「0」、状況は「3」、共有名は「b40−2015−a」である。最後に、このプリンタのシステム名は「PRINTSRV10」である。
4つの行の第3番目の行は以下のように示されている。
Figure 2006244471
この行はカラムの文字型が文字列または整数であることを示す。この行はこのデータをどのように処理するかを決定するときに有用になり得るものであり、アップストリームコマンドの出力に関する情報のもう1つの例である。ここで、出力の第1行目に注目すると、以下のように示されている。
Figure 2006244471
各カラムには、プリアンブルに示されているように、カラム1から6のそれぞれに、文字列、文字列、整数、整数、文字列、文字列の各文字が含まれている。
第4行はナンバー記号の後が空白であるが、実施形態によっては追加の情報を含めることができる。第5行は空白であり、開始のためのナンバー記号文字も含まれていない。このことは、その次の行がデータであり、そのデータに関する情報ではないことを示している。
ブロック206で、この方法はコード化されたデータのデータ型を判別する。いくつかの実施形態では、データを受信するダウンストリームコマンドおよび/またはシェルはコード化されたデータのデータ型、例えばそのデータのコード化スキーマなどを判別することができる。ここでは、データ型はコード化されたデータのプリアンブルの第1行を読み出すことによって判別される。この行はデータのデータ型がCSVであることを示す。出力に関する追加の情報、ここでは各カラムにどのような情報が含まれているか、およびそのカラムの文字の型は何かを判別するために他の情報を読み出すこともできる。
例示の実施形態を続けると、次にダウンストリームコマンドおよび/またはシェルは、入力としてダウンストリームコマンドに送られることになっているデータのデータ型を認識する。
ブロック208で、ダウンストリームコマンドによって受け入れられるデータ型が判別される。場合によっては、この判別は、ダウンストリームコマンドがアップストリームコマンドからのデータを受信し、受信したデータのデータ型をそのダウンストリームコマンドにとって受け入れられるデータ型と比較するときなどに内在的に実施される。シェルもまた、ダウンストリームコマンドと、各コマンドの入力として受け入れられる型をリストしたデータベースを比較することなどによってこのデータ型を判別することができる。
アップストリームコマンドの出力のデータ型がダウンストリームコマンドに受け入れられる場合は、ブロック212でダウンストリームコマンドはそのデータを受信し、それを実行する。このことは、判定ブロック210に続くブロック212への「Yes」パスで示されている。データ型がダウンストリームコマンドにとって受け入れられない場合は、シェルまたはダウンストリームコマンドは、「No」パスに沿ってブロック214に進むか、または場合によっては、ブロック214をスキップしてブロック216に進む。
一実施形態では、シェルは、ブロック216でアップストリームデータのデータ型をダウンストリームコマンドによってアクセス可能なものに変換できるコンバータが使用可能かどうか判定し、ブロック218でそのコンバータを呼び出すことができる。その結果、ブロック210から216をスキップすることができる。あるいは、コンバータが使用可能でない場合は、ブロック220でエラーメッセージを生成することができる。コンバータを呼び出したとき、シェルはアップストリームコマンドの出力をコンバータに入力として送り、コンバータの出力を取り出し、それをダウンストリームコマンドに送ることができる。
コンバータはまた、ダウンストリームコマンドによって生成できる名前または標識によって呼び出すこともできる。例えば、ダウンストリームコマンドは、プリアンブル中のデータ型の名前、例えば「CSV」などを取り出し、そのデータ型名と、そのダウンストリームコマンドが受け入れられる型の名前とを用いてコンバータを呼び出すためのコマンドを生成することができる。
例示の実施形態では、ダウンストリームコマンドが、アップストリームコマンドのデータがCSVで出力されたことを判別する。ダウンストリームコマンドはまた、それ自体がASN.1またはXMLを受け入れることができることを認識している。したがって、ブロック214で、ダウンストリームコマンドは以下のどちらかのコマンドを生成することができる。
Figure 2006244471
または
Figure 2006244471
ダウンストリームコマンドは特定の規則に従ってコンバータの名前を生成し、その名前を有するコンバータを照合することができる。この場合、規則は「CONVERT」で始まり、その後にスペース「 」と変換される型の名前「CSV」が続き、その後にスペース「 」と「TO」が続き、さらにスペース「 」と必要とされる型の名前「XML」または「ANS.1」が続く。
ダウンストリームコマンドまたはシェルは、ブロック216で、これらのコンバータのどちらかが使用可能かどうかを判定する。これらのコマンドのどちらかが使用可能な場合は、ダウンストリームコマンドは「Yes」パスに従ってブロック218に進み、上記のコンバータを呼び出す。どちらもが使用可能でない場合は、ダウンストリームコマンドまたはシェルは、「No」パスに従ってブロック220に進む。
例示の実施形態を続けると、シェルまたはダウンストリームコマンドは、図1のCSV−XMLコンバータ122が使用可能であると判定する。次いでブロック218で、そのコンバータが呼び出される。変換されたデータのその出力は、ダウンストリームコマンド(図1のPause Printerコマンド120)に送られる。
場合によっては、正確かつ/または効率的に出力を変換するためにアップストリームコマンド出力のコード化部分の情報が有用であることもある。前述のように、プリアンブルには、この追加の情報を含めることができる。コンバータは、この情報を使用してデータを次のダウンストリームコマンドに受け入れられる形に変換することができる。例えば、データをCSVからXMLに変換するとき、どのデータをどこに置くか、およびその場所での文字の形式を知ることが有用な場合もある。XML出力が、例えば、各プリンタの位置、名前、状態、状況、共有名、およびシステム名の順に配列されることになっている場合は、コード化された情報を使用して、データをアップストリームコマンドから特定の構造に適合するように配列することができる。
この情報はまた、アップストリームコマンドの出力を解析してその出力の各部の位置を求めるための助けとして有用なこともある。特に、出力データの一部だけがダウンストリームコマンドに送られる場合には有用である。このような場合には、追加のコード化された情報により、アップストリームコマンドの出力をより効率的かつ/または正確に解析することが可能になる。
継続中のこの例示では、アップストリームコマンドは、システム名「PRINTSRV10」を有する6台のプリンタを出力する。ダウンストリームコマンドがプリンタの共有名を受信することになっている場合は、プリアンブルの第2行および第3行の情報を使用してより容易にその共有名を見つけることができる。アップストリームコマンドのコード化された出力の第2および3行は以下の通りである。
Figure 2006244471
次にコンバータは、このコード化に基づいて、第5カラムに所要の共有名が含まれることを判別し、またこのカラムの文字が文字列であることを判別することができる。
コマンドラインの動作が完了した場合には、例示の実施形態の場合はプロセスが終了する。ダウンストリームコマンドの出力が、さらに他のダウンストリームコマンドで使用される場合は、このプロセスを繰り返すか、またはプロセス300に続くことができる。
プロセス200にもどって、コンバータが使用できない場合は、ブロック220で、(コマンドラインインタフェースまたはコマンドラインシェルを有しているかどうかにかかわらず)ダウンストリームコマンドは、ユーザによって入力されたコマンドラインを完了するためにコンバータが必要であることを指示するエラーメッセージを生成する。場合によっては、このメッセージはコンバータをダウンロードすることができるインターネット上の場所を指示することもできる。
コード化および変換プロトコル/内部的に呼び出される変換
場合によっては、ユーザはコマンドラインそれ自体の中からコンバータを呼び出したいと考えることがある。そうすることによって、プロセス200の動作のいくつかをスキップすることができる。
一実施形態では、以下の構文を有するコマンドラインが受信される。
Figure 2006244471
ここでは、アップストリームコマンドの出力はCSVである。もっともこの場合に、ユーザは、出力がCSVであることを要求しているのだが。このアップストリームコマンドのダウンストリームとなるコマンドは、「CONVERT −CSV−TO−XML」である。このコマンドは、図1の122に示されている。
このプロセスでは、ユーザがコンバータを選択している。したがって、ユーザは最終のダウンストリームコマンド(pause printer 120)がXMLデータを受け入れることを知っている可能性が高い。ここでは、シェルはCSVの形のアップストリームコマンドの出力を、CSVの形の入力としてコンバータ122に送るように動作する。次いでシェルは、ダウンストリームコンバータの出力をXMLの形の入力としてpause printerコマンド120に送ることができる。
前と同様に、アップストリームコマンドのデータストリームにおけるコード化部分の情報は、コンバータにとって出力を変換する際に有用になることがある。この場合およびその他の場合において、困難な場合もありエラーを生ずることも多いテキスト形式出力の解析は、(CSVなどの)構造化された形式でのデータ出力を選択することによって回避することができる。
検出/指示によってコマンドライン動作を自動的に可能にする
プロセス300はアップストリームコマンドおよびダウンストリームコマンドを有するコマンドラインの動作を可能にする。このプロセスは、アップストリームコマンドによって出力できるデータ型で、ダウンストリームコマンドにとって受け入れられるデータ型を自動検出し指示することによってコマンドラインの動作を可能にすることができる。場合によっては、このプロセスはアップストリームコマンドの出力をコード化すること無しに実施することができる。プロセス300は、コマンドラインシェル110やコンバータ114などコンピュータ装置の各要素によって実施される個々の動作または処理を表す一連のブロックとして示される。
ブロック302で、プロセスはコマンドラインを受信する。このコマンドラインはユーザから受信することができ、図2のブロック202の部分で説明したと同様に構成することができる。
ブロック304で、コマンドラインシェル110はアップストリームコマンドによって出力できるデータの型を判別する。例示の実施形態では、受信されるコマンドラインは以下の通りである。
Figure 2006244471
図1に関する説明で述べたように、get printerコマンド116はテキストおよびCSV型のデータを受け入れかつ出力することができる。ブロック304で、コマンドラインシェルがこれを判別する。
ブロック306で、シェルはダウンストリームコマンドにとって受け入れられる入力データ型を判別する。例示の実施形態を続けると、シェルはconfigure printerコマンド118がCSVおよびXMLデータ型を受け入れ、かつ出力できることを判別する。
ブロック308で、シェルはアップストリームコマンドのいずれかの出力型がダウンストリームコマンドの入力として受け入れられる型であるかどうかを判定する。いずれかの型が受け入れられる場合は、シェルは「Yes」パスに従ってブロック310に進む。いずれの型も受け入れられない場合は、シェルは「No」パスに従ってブロック312に進む。
ブロック310で、シェルは、ダウンストリームコマンドに可読の形式でデータを出力するようにアップストリームコマンドに指示する。このように指示することによって、アップストリームコマンドの出力がダウンストリームコマンドにとって可読でない可能性がある場合でも、シェルは自動的にコマンドラインの動作を可能にすることができる。アップストリームコマンドであるget printerが、デフォルトで、例えばテキスト形式のデータを出力する場合でも、シェルにより、さもなければ失敗した可能性があるコマンドラインの動作が可能になる。
例示の実施形態では、シェルはコマンドラインを、受信したものからその代わりとなる以下のものに変更する。
Figure 2006244471
ブロック312で、シェルはアップストリームコマンドに、ダウンストリームコマンドによって可読のフォーマットに変換可能なフォーマットでデータを出力するよう指示する。
ブロック302で受信したコマンドラインが以下の通りだと想定する。
Figure 2006244471
ブロック304、306、および308に戻って、この実施形態のシェルは、アップストリームコマンドの出力のいずれもが、ダウンストリームコマンドにとって受け入れられるデータ型にならないことを判別する。上述のように、get printerコマンド116はTEXTまたはCSV形式でデータを出力することができ、pause printerコマンド120はASN.1またはXML形式のデータを受け入れることができる。
次にブロック312で、シェルはアップストリームコマンドに、ダウンストリームコマンドによって可読のフォーマットに変換できる形式でデータを出力するよう指示する。図1に示されたCSV−XMLコンバータ122が使用可能であることに基づき、シェルはアップストリームコマンドにデータをCSVの形で出力するよう指示する。
ブロック314で、シェルは適切なコンバータを呼び出す。例示の実施形態を続けると、シェルはCSV−XMLコンバータを呼び出してCSV出力をXMLに変換する。シェル(または他のアプリケーション)は、コマンドラインを変更せずにこのことを実施することもできるし、あるいはその代わりにコマンドラインを以下のように変更することによって実施することもできる。
Figure 2006244471
代替実施形態では、アップストリームコマンドの出力は、潜在的により高い精度で動作させるためおよび/またはその出力をより容易にもしくは正確に解析するために、CSV−XML変換を可能にするようにコード化される。このコード化を上述のいずれかの方法で実施することができる。
ブロック316で、ダウンストリームコマンドが実施される。例示の実施形態では、プリンタが検出され休止されるか、または検出され構成される。
プロセス200もしくは300、またはそれらの別法の動作は、複数回実施することができる。以下のコマンドを含むコマンドラインが受信されると想定する。
Figure 2006244471
ここでは、コマンドは、A、B、C、D、およびEである。コマンドAはコマンドBのアップストリームであり、BはCのアップストリームであり、以下同様に続く。ツールは、例えばAからDによって生成された先行データを用いてコマンドEを実行することによって所望の結果を得るなどのコマンドライン動作を可能にすることができる。各ツールは、以下のような状況においてもコマンドラインの動作を可能にすることができる。すなわち、AはBで受け入れられない出力型をデフォルトとしているが、ツールがBによって受け入れられる型のデータを出力するようAに指示する場合、BがCによって受け入れられる型に変換可能な型を出力し、ツールがBの出力のコード化を呼び出してその出力を変換し、それをCに送る場合、CがデフォルトでDによって可読の型を出力する場合、DはEによって可読の型に変換できる型をEに出力するが、Dの出力のコード化はまったく実施されない場合などである。これらの例は、ツールの柔軟性を示すために提供されたものである。コマンドライン中の各コマンドの数および複雑さはほぼ任意であり、やはり本明細書に記載したツールを使用してコマンドラインを動作させることができる。
結論
上述のシステムおよび/または方法を使用すると、アップストリームコマンドとダウンストリームコマンドを有しアップストリームコマンドがダウンストリームコマンドの入力として受け入れられない型のデータを出力するコマンドラインの動作を可能にすることができる。これらのシステムおよび/または方法は、コード化および変換プロトコルによって、あるいはアップストリームコマンドから出力されたデータ型を自動的に検出しダウンストリームコマンドにとって受け入れ可能な型になるように指示するプロセスによってコマンドラインの動作を可能にすることができる。
本発明を、構造上の機能および/または方法論的なステップに特化して説明してきたが、添付の特許請求の範囲に定義された本発明が、必ずしも記載したこの特定の機能またはステップに制限されるものではないことを理解されたい。正確にいえば、特定の機能およびステップは、特許請求の範囲に記載の発明を実装するための好ましい形態として開示したものである。
ツールの様々な実施形態を動作させることができる例示的アーキテクチャを示す図である。 コマンドラインの動作を可能にする例示的プロトコルを含む例示的プロセスの流れ図である。 アップストリームコマンドのデータ型の判別および指示によりコマンドラインの動作を可能にする例示的プロセスの流れ図である。
符号の説明
100 アーキテクチャ
102 コンピュータ装置
104 プロセッサ(群)
106 コンピュータ可読媒体
108 コマンドラインインタフェース
110 コマンドラインシェル
112 コマンド
114 コンバータ
116 GET PRINTER
118 CONFIGURE PRINTER
120 PAUSE PRINTER
122 CSV−XML
124 XML−CSV
126 TEXT−XML
128 ANS.1−XML
130 XML−ASN.1
200 プロセス
202 コマンドラインを受信する
204 アップストリームコマンドのデータストリームをコード化する
206 コード化されたデータストリームのデータ型を判別する
208 ダウンストリームコマンドに受け入れられる入力データの型を判別する
210 受け入れられるか?
212 データを受信しコマンドを実行する
214 コンバータ名を生成する
216 コンバータは使用可能か?
218 コンバータを呼び出す
220 エラーメッセージを作成する
300 プロセス
302 コマンドラインを受信する
304 アップストリームコマンドによって出力できるデータの型を判別する
306 ダウンストリームコマンドによって受け入れられるデータの型を判別する
308 出力の型が入力の型にマッチするかどうかを判定する
310 対応する型を出力するようアップストリームに指示する
312 変換可能な型を出力するようアップストリームに指示する
314 コンバータを呼び出す
316 ダウンストリームコマンドを実行する

Claims (20)

  1. コンピュータ装置によって実行されるときに前記コンピュータ装置に諸動作を実施させるコンピュータ可読命令を含む1つまたは複数のコンピュータ可読媒体であって、前記諸動作は、
    コマンドライン中のアップストリームコマンドからデータを受信する動作であって、前記データは前記コマンドライン中のダウンストリームコマンドに受け入れられることも受け入れられないこともあるデータ型を有する動作と、
    前記データ型が前記ダウンストリームコマンドに受け入れられるかどうかを判定する動作と、
    前記データ型が前記ダウンストリームコマンドに受け入れられない場合は、前記データを処理して前記データを前記ダウンストリームコマンドに受け入れられるデータ型に変換する動作と
    を備えることを特徴とするコンピュータ可読媒体。
  2. 前記データを処理する前記動作はテキスト形式のデータを解析することなく実施されることを特徴とする請求項1に記載の媒体。
  3. 前記アップストリームコマンドから前記データをコード化する動作であって、前記アップストリームコマンドは前記データのデータ型の判別を可能にするのに十分なタグを有する動作をさらに備え、
    前記データ型が受け入れられるかどうかを判定する前記動作は、前記タグを使用して前記データのデータ型を判別する動作を含むことを特徴とする請求項1に記載の媒体。
  4. 前記アップストリームコマンドから前記データをコード化して、前記データの前記データ型を指示する標識を提供する動作をさらに備えることを特徴とする請求項1に記載の媒体。
  5. 前記アップストリームコマンドから前記データをコード化する前記動作は、前記標識の前に付けられた「#<」の引用符内の構文をさらに含むことを特徴とする請求項4に記載の媒体。
  6. 前記コマンドライン中の第2のアップストリームコマンドから第2のデータを受信する動作であって、前記第2のデータは前記コマンドライン中の第2のダウンストリームコマンドに受け入れられることも受け入れられないこともある第2のデータ型を有する動作と、
    前記第2のデータ型が前記第2のダウンストリームコマンドに受け入れられるかどうかを判定する動作と、
    前記第2のデータ型が前記第2のダウンストリームコマンドに受け入れられない場合は、前記第2のデータを処理して前記第2のデータを前記第2のダウンストリームコマンドに受け入れられるデータ型に変換する動作と
    をさらに備えることを特徴とする請求項1に記載の媒体。
  7. 前記データを処理する前記動作は、コンバータを呼び出す前記ダウンストリームコマンドによって起動されることを特徴とする請求項1に記載の媒体。
  8. 前記コンバータを呼び出す前記動作は、前記コンバータのコンバータ名を生成する動作を含み、前記コンバータ名は、前記アップストリームコマンドから前記データ中にコード化されたデータ型名と、前記ダウンストリームコマンドに受け入れられる前記データ型の受け入れられるデータ型名とを用いて生成されることを特徴とする請求項7に記載の媒体。
  9. データストリーム中のデータを受信する動作であって、前記データストリームは前記データのデータ型の判別を可能にするのに十分なタグを有する動作と、
    前記タグを使用して、前記データのデータ型を判別する動作と、
    あるコマンドの入力として受け入れられる他のデータ型を判別する動作と、
    前記データストリーム中の前記データを前記データのデータ型から、前記コマンドの入力として受け入れられる前記他のデータ型に変換する動作と
    を備えることを特徴とする方法。
  10. 前記コマンドは、前記コマンドラインのあるアップストリームコマンドに対するダウンストリームであり、前記データストリーム中のデータを受信する前記動作は前記アップストリームコマンドから前記データを受信する動作を含むことを特徴とする請求項9に記載の方法。
  11. 前記タグは、コマンドラインシェルによって前記データストリーム中にコード化されることを特徴とする請求項9に記載の方法。
  12. 前記データのデータ型を判別する前記動作は、前記コマンドによって実施されることを特徴とする請求項9に記載の方法。
  13. 前記コマンドの入力として受け入れられる前記他のデータ型を判別する前記動作は、コマンドラインシェルによって実施されることを特徴とする請求項9に記載の方法。
  14. 前記データを変換する前記動作は、
    前記データのデータ型を、前記コマンドの入力として受け入れられると判別された前記他のデータ型に変換することができるコンバータを呼び出す動作を含むことを特徴とする請求項9に記載の方法。
  15. 前記タグは前記データのプリアンブルを含み、前記プリアンブルは4行以上を含み、第1行は「#<」の引用符内の構文で始まることを特徴とする請求項9に記載の方法。
  16. 前記タグは、前記データのデータ型に加えて、前記データストリーム中の前記データがフォーマット設定されているスキーマを指示する情報を含むことを特徴とする請求項9に記載の方法。
  17. 前記同一のコマンドライン中の他のデータストリームと他のコマンドに対し、前記諸動作を再度実施する動作をさらに含むことを特徴とする請求項9に記載の方法。
  18. コンピュータ装置によって実行されるときに前記コンピュータ装置に諸動作を実施させるコンピュータ可読命令を含む1つまたは複数のコンピュータ可読媒体であって、前記諸動作は、
    コマンドライン中のアップストリームコマンドによって出力できる1つまたは複数のデータ型を検出する動作と、
    前記コマンドラインのダウンストリームコマンドの入力として受け入れられる1つまたは複数のデータ型を検出する動作と、
    出力できる前記1つまたは複数のデータ型の1つが前記ダウンストリームコマンドの入力として受け入れられるデータ型であった場合は、前記アップストリームコマンドに前記データ型のデータを出力するように指示する動作と
    を含むことを特徴とする媒体。
  19. 出力できるデータ型のいずれもが前記ダウンストリームコマンドの入力として受け入れられない場合は、
    コンバータを呼び出して、前記アップストリームコマンドによって出力されたデータを、前記アップストリームコマンドによって出力できる前記1つまたは複数のデータ型の1つから、入力として受け入れられる前記1つまたは複数のデータ型の1つであるデータ型に変換する動作をさらに含むことを特徴とする請求項18に記載の媒体。
  20. 出力することができる前記1つまたは複数のデータ型を検出する動作、および前記アップストリームコマンドに指示する動作は、コマンドラインシェルによって実施されることを特徴とする請求項18に記載の媒体。
JP2006024863A 2005-03-04 2006-02-01 コマンドラインデータ型の検出および変換 Expired - Fee Related JP5037828B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/072,095 2005-03-04
US11/072,095 US8566806B2 (en) 2005-03-04 2005-03-04 Command-line data-type discovery and conversion

Publications (2)

Publication Number Publication Date
JP2006244471A true JP2006244471A (ja) 2006-09-14
JP5037828B2 JP5037828B2 (ja) 2012-10-03

Family

ID=36616871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024863A Expired - Fee Related JP5037828B2 (ja) 2005-03-04 2006-02-01 コマンドラインデータ型の検出および変換

Country Status (5)

Country Link
US (1) US8566806B2 (ja)
EP (1) EP1698969A3 (ja)
JP (1) JP5037828B2 (ja)
KR (1) KR20060096271A (ja)
CN (1) CN1828591B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527054A (ja) * 2006-02-16 2009-07-23 マイクロソフト コーポレーション シェル・セッション
US8745489B2 (en) 2006-02-16 2014-06-03 Microsoft Corporation Shell input/output segregation
JP2016524204A (ja) * 2014-03-28 2016-08-12 小米科技有限責任公司Xiaomi Inc. アプリケーションリスト実行方法、アプリケーションリスト実行装置、プログラム及び記録媒体

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101021416B1 (ko) * 2009-08-03 2011-03-14 한국광기술원 파장변환기둥들을 구비하는 발광다이오드 및 이의 제조방법
US9244706B2 (en) * 2010-05-27 2016-01-26 Microsoft Technology Licensing, Llc Command line shell command generation based on schema
JP6115025B2 (ja) * 2012-05-22 2017-04-19 セイコーエプソン株式会社 媒体処理装置、及び、posシステム
CN103455307B (zh) * 2012-05-29 2018-02-23 腾讯科技(深圳)有限公司 对命令行输出的信息进行处理的方法和装置
CN106339272B (zh) * 2015-07-07 2020-10-02 中兴通讯股份有限公司 一种恢复设备数据的方法和装置
US10114907B2 (en) * 2015-11-13 2018-10-30 International Business Machines Corporation Query processing for XML data using big data technology
CN106802882B (zh) * 2016-12-29 2020-03-06 杭州迪普科技股份有限公司 一种检测命令行界面编码方式的方法及装置
US10545737B2 (en) * 2017-06-13 2020-01-28 Microsoft Technology Licensing, Llc Model binding for command line parsers
US11426633B2 (en) 2019-02-12 2022-08-30 Ifit Inc. Controlling an exercise machine using a video workout program
CN110008003A (zh) * 2019-04-10 2019-07-12 苏州浪潮智能科技有限公司 一种命令行有效性检测方法及相关装置
US20230244464A1 (en) * 2022-01-31 2023-08-03 Hewlett Packard Enterprise Development Lp Environment establishment for a program in a server system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259304A (ja) * 1997-10-27 1999-09-24 Sun Microsyst Inc プラグインメディアデコ―ダ供給方法及び装置
JP2002351709A (ja) * 2001-05-28 2002-12-06 Yamaha Corp 入力データの変換方法、入力データの変換プログラム、および入力データの変換システム
JP2004013578A (ja) * 2002-06-07 2004-01-15 Nec Soft Ltd グラフィカル・ユーザ・インタフェースの構築方法及びプログラム
JP2004342108A (ja) * 2003-05-12 2004-12-02 Microsoft Corp コマンドへの入力パラメータに対するリフレクションベース処理
JP2004342107A (ja) * 2003-05-12 2004-12-02 Microsoft Corp オブジェクト指向パイプラインを用いるシステム及び方法
WO2005045570A2 (en) * 2003-10-24 2005-05-19 Microsoft Corporation Mechanism for providing data driven command line output

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987504A (en) * 1996-12-31 1999-11-16 Intel Corporation Method and apparatus for delivering data
CN1087454C (zh) * 1998-02-27 2002-07-10 英业达股份有限公司 WinCE作业环境下的数据结构处理方法
CN1146821C (zh) * 2000-02-21 2004-04-21 国际商业机器公司 面向用户的数据库查询方法及系统
US7168063B2 (en) * 2003-06-10 2007-01-23 Microsoft Corporation Systems and methods for employing tagged types in a dynamic runtime environment
US7290012B2 (en) * 2004-01-16 2007-10-30 International Business Machines Corporation Apparatus, system, and method for passing data between an extensible markup language document and a hierarchical database

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259304A (ja) * 1997-10-27 1999-09-24 Sun Microsyst Inc プラグインメディアデコ―ダ供給方法及び装置
JP2002351709A (ja) * 2001-05-28 2002-12-06 Yamaha Corp 入力データの変換方法、入力データの変換プログラム、および入力データの変換システム
JP2004013578A (ja) * 2002-06-07 2004-01-15 Nec Soft Ltd グラフィカル・ユーザ・インタフェースの構築方法及びプログラム
JP2004342108A (ja) * 2003-05-12 2004-12-02 Microsoft Corp コマンドへの入力パラメータに対するリフレクションベース処理
JP2004342107A (ja) * 2003-05-12 2004-12-02 Microsoft Corp オブジェクト指向パイプラインを用いるシステム及び方法
WO2005045570A2 (en) * 2003-10-24 2005-05-19 Microsoft Corporation Mechanism for providing data driven command line output

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527054A (ja) * 2006-02-16 2009-07-23 マイクロソフト コーポレーション シェル・セッション
US8745489B2 (en) 2006-02-16 2014-06-03 Microsoft Corporation Shell input/output segregation
JP2016524204A (ja) * 2014-03-28 2016-08-12 小米科技有限責任公司Xiaomi Inc. アプリケーションリスト実行方法、アプリケーションリスト実行装置、プログラム及び記録媒体
US9740524B2 (en) 2014-03-28 2017-08-22 Xiaomi Inc. Method and terminal device for executing application chain

Also Published As

Publication number Publication date
US8566806B2 (en) 2013-10-22
JP5037828B2 (ja) 2012-10-03
CN1828591B (zh) 2011-07-27
EP1698969A2 (en) 2006-09-06
EP1698969A3 (en) 2007-11-07
US20060197967A1 (en) 2006-09-07
CN1828591A (zh) 2006-09-06
KR20060096271A (ko) 2006-09-11

Similar Documents

Publication Publication Date Title
JP5037828B2 (ja) コマンドラインデータ型の検出および変換
JP4179553B2 (ja) 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
CN106126157B (zh) 基于医院信息系统的语音输入方法及装置
JP2004342108A5 (ja)
US8214514B2 (en) Auto-generation or auto-execution of web service description language call flow implementation
CN117749899A (zh) 协议转换框架、设备通讯方法、装置和计算机存储介质
CN115408169A (zh) 远程过程调用方法、装置、设备及可读存储介质
JP2007122631A (ja) プログラムの規約違反を判断する装置、およびその方法
JP2004342107A (ja) オブジェクト指向パイプラインを用いるシステム及び方法
US8997116B2 (en) Event logging application programming interface (API)
CN109857910B (zh) Xml文件的生成方法、装置、计算机设备及存储介质
JP7225082B2 (ja) 情報処理装置、情報処理方法およびプログラム
US8232901B2 (en) Determining an alternative character string
JP2006277560A (ja) ソフトウェア開発支援装置、設計文書生成プログラム及び設計文書生成方法
JP2010067019A (ja) 画像処理装置、情報処理方法、コンピュータプログラム、及び、情報記録媒体
CN113157546B (zh) 基于视频流的虚拟仿真测试方法及系统
JP5103338B2 (ja) 電子ファイルの解析技術
JP2007122278A (ja) 文書処理装置及びその方法、プログラム
JP2012150740A (ja) プログラム生成装置及び方法
JP2005038244A (ja) プログラム自動生成装置
CN112988164A (zh) 文本转换方法、文本转换装置、文本转换设备及存储介质
CN114090012A (zh) 基于dsl的tsx文件生成方法、系统、设备及介质
CN113743060A (zh) 可定制的报表生成方法、装置、计算机设备及存储介质
JP2004334848A (ja) 2レベル形態規則をコンパイルするための方法及びその装置
CN116760910A (zh) 一种基于数据网关的系统对接方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees