(57)【特許請求の範囲】
【請求項１】
クライアントがサーバに格納された文書オブジェクトを遠隔編集するためのコンピュータ実行方法に於いて、クライアントとサーバがHTTPプロトコルを使用して接続部を経て交信する場合に於いて、
クライアントとサーバとの間の接続を確立する段階と、
クライアントがサーバとのTCP/IP接続を経て、文書オブジェクトの検索と格納を要求可能な種類のHTTP要求メッセージを送る段階であって、HTTP要求メッセージが、文書オブジェクトと、クライアントが文書オブジェクトの検索を要求しているという表示とを指定する場合に於いて、メッセージを送る段階と、
サーバがHTTP要求メッセージを受け取って、スクリプトを呼び出す段階と、
スクリプトが文書オブジェクトのコピーを検索する段階と、
サーバが文書オブジェクトのコピーをHTTP応答メッセージ中でTCP/IP接続を経てクライアントに送る段階と、
クライアントが文書オブジェクトのコピーを含むHTTP応答メッセージを受け取る段階と、
クライアントが文書オブジェクトのコピーの編集を可能にする段階と、
クライアントがHTTP要求メッセージをサーバに送る段階であって、HTTP要求メッセージが編集済みの文書オブジェクトのコピーと、編集済みの文書オブジェクトのコピーの格納を要求することを示す表示とを格納するためのサーバ上の格納位置の表示とを含む場合に於ける、段階と、
HTTP要求メッセージを受け取り、スクリプトを呼び出す段階と、
スクリプトが前記編集済みの文書オブジェクトのコピーを、HTTP要求メッセージ中に含まれる格納位置の表示に従って、サーバに格納する段階と、
接続を終了させる段階と、
を含むことを特徴とするコンピュータ実行方法。
【請求項２】
請求項１に記載の方法に於いて、更にスクリプト検査を確認する段階を有し、スクリプトの前記文書オブジェクトを検索する段階が、前記文書オブジェクトへのアクセス権があることが確認されている時にのみ前記コピーを検索することを特徴とする方法。
【請求項３】
請求項１に記載の方法に於いて、更に前記文書オブジェクトの格納位置の表示をマッピングする段階を含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法に於いて、更にクライアントプログラムに対するHTTP応答メッセージに応答して、文書が正しくセーブされたことを示し、且つエラー表示を与える段階を含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法に於いて、前記文書オブジェクトがワールドワイドウエッブ上のオンラインサービスの一部であることを特徴とする方法。
【請求項６】
請求項１に記載の方法に於いて、前記文書オブジェクトがHTMLファイルを含むことを特徴とする方法。
【請求項７】
請求項１に記載の方法に於いて、前記文書オブジェクトがコンピュータプログラミング言語で書かれたコンピュータプログラムであることを特徴とする方法。
【請求項８】
請求項１に記載の方法に於いて、検索要求と格納要求のいずれをも処理し、クライアントからの格納要求または検索要求のいずれかに応答してサーバによって呼び出される単一のコンピュータプログラムであることを特徴とする方法。
【請求項９】
請求項１に記載の方法に於いて、HTTPプロトコルがクライアントからサーバへの任意のデータの転送を表示する名前付きメッセージ方法を含んでおり、またクライアントが検索要求と格納要求の両方に対する名前付きメッセージ方法の名前を含むメッセージをサーバに送ることを特徴とする方法。
【請求項１０】
請求項９に記載の方法に於いて、名前付きメッセージ方法がHTTP”PUT”メッセージであることを特徴とする方法。
【請求項１１】
請求項９に記載の方法に於いて、名前付きメッセージ方法がHTTP”POST”メッセージであることを特徴とする方法。
【請求項１２】
請求項１に記載の方法に於いて、サーバおよびクライアントが同一のコンピュータに在ることを特徴とする方法。
【請求項１３】
請求項１に記載の方法に於いて、サーバおよびクライアントがネットワークに依って相互結合された別々のコンピュータに在ることを特徴とする方法。
【請求項１４】
請求項１に記載の方法に於いて、ネットワークがローカルネットワークであることを特徴とする方法。
【請求項１５】
請求項１に記載の方法に於いて、ネットワークがインターネットであることを特徴とする方法。
【請求項１６】
請求項１に記載の方法に於いて、サーバが複数のスクリプトの１つを呼び出すことを特徴とする方法。
【請求項１７】
請求項１に記載の方法に於いて、確立される接続がTCP/IP接続であることを特徴とする方法。
【請求項１８】
請求項１に記載の方法に於いて、更にサーバが応答メッセージを送る段階の後にTCP/IP接続を終了する段階を有することを特徴とする方法。
【請求項１９】
請求項１に記載の方法に於いて、文書オブジェクトが組み込み図形画像を含むHTMLファイルであることを特徴とする方法。
【発明の詳細な説明】
発明の分野
本発明は電子文書その他の情報およびコンピュータ・プログラムの編集用コンピュータ編集システムに関する。さらに詳しくは、本発明はクライアント-サーバ情報システムにおけるオンラインサービス開発用のコンピュータ編集システムに関する。
発明の背景
オンライン情報システムは典型的に、他のコンピュータ・システム（クライアント）が情報にアクセスできるような情報提供可能な１つのコンピュータ・システム（サーバ）を含んでいる。サーバは情報へのアクセスを管理し、１組の独立オンラインサービスのような構造をとることができる。サーバとクライアントは、通信プロトコルに従ったメッセージおよびコンピュータ・ネットワークなどの通信チャネルもしくはダイアルアップ接続により送信されるメッセージを介して通信する。
典型的なオンラインサービスは文書閲覧、電子商取引、ディレクトリ探索、オンラインで分類された広告、資料サービス、電子掲示板、文書検索、電子出版、製品の技術的サポート、およびオンラインサービスの各種ディレクトリなどを含んでいる。このサービスは情報を無料または有料で提供する。
サーバが管理する情報サービスは、ファイル、データベース、およびサービスシステムもしくは外部システムについてのアプリケーションを含んでいることもある。サーバが提供する情報は、単にサーバに格納されていることもあるが、他のフォーマットから手動的または自動的に変換されたり、クライアントの要求に応答してサーバ上で計算されたり、データおよびアプリケーションからサーバその他のマシン上に誘導されたり、またはこれらの技術の組み合わせにより誘導されることもある。
オンラインサービスのユーザは、クライアント・システム上で実行されるプログラムを使用して、オンラインサービスが管理する情報にアクセスする。ユーザはサーバが管理している情報を閲覧、探索、ダウンロード、印刷、およびファイルすることができる。またユーザは、オンラインサービスを通して提供されるサービスもしくは商品について、価格を問い合わせたり購入、賃借または予約することができる。
例えば、カタログショッピングのためのオンラインサービスは次のように行なわれる。ユーザはクライアント・システムのプログラムを実行し、双方が知っているかまたはディレクトリで見つけることができるサービス名を使用したカタログショッピング・サービスに接続するよう要求する。サーバはこの要求を受け取ると、識別名とパスワードを求める初期ページを返信する。クライアント・プログラムがこのページを表示し、ユーザが前に画面訪問したときに割り当てられた識別名とパスワードを入力すると、ユーザの情報はサーバに送られる。サーバは許可データベースに対して識別名とパスワードを照合して、ユーザにメニューページを送り返す。ユーザがメニューの品目を選択する度にユーザの選択はサーバに送られ、サーバはカタログ・データベースから検索したその品目の説明や価格を含めた適切な新しい情報ページで応答する。１連のメニュー品目を選択することによりユーザはカタログ中の希望する品目にたどりつき、その品目の注文要求を出す。サーバは注文要求を受けると、配送および請求書について若干の情報をユーザに求める書式を送り返す。ユーザの応答がサーバに送られると、サーバはこの注文情報を注文データベースに入力する。
オンラインサービスは、きわめて多数のコンピュータ、即ち複数のサイトを相互接続する大域Internet上で作動するWorld-Wide Web（WWW）上で利用できる。WWWはInternet上の所々のサイトに置かれた相互接続文書オブジェクトの「Web」である。WWWは、また「The World-Wide Web」、T.Berners-Lee、R.Cailliau、A.Luotonen, H.F.Nielsen,およびA.Secret著、Communication of the ACM、37（8）, 76-82ページ、１９９４年８月、ならびに「World-Wide Web: The Information Universe」、Berners-Lee,T.その他、Electronic Networking: Research Applications and Policey、Vol. 1、No. 2、Meckler、Westport、Conn.、１９９２年春季、に記載されている。ＷＷＷ上の文書オブジェクトの種類に文書およびスクリプトがある。WWW上で出版される文書は、Hypertext Markup Language Specification -2.0、T.Berners-Lee、およびD.Connolly著、Internet Draft Document、１９９４年１０月、ならび「World-Wide Web & HTLM」、Douglas C. McArthur著、Dr. dobbs Journal,１９９４年１２月、１８−２０、２２、２４、２６および８６ページに記載されているような、Hypertext Markup Language語（HTML）で書かれている。このように格納されたHTML文書は、一般に静的であり、その内容はサービス・ディベロッパーが文書を変更しない限り時間が経過しても変化しない。スクリプトとは、実行させることによりHTML文書を発生することができるプログラムのことである。
HTMLはハイパーテキスト文書を書くために使用する言語である。正式の定義では、HTML文書は、特定のDocument Type Definition（DTD）に合致するStandard Generalized Markup Language（SGML）文書である。HTML文書は１組の階層的なマークアップ・エレメントを含んでおり、ほとんどのエレメントは開始タグを有し、内容と終了タグがこれに続く。内容はテキストおよびネストされたマークアップ・エレメントの組み合わせである。タグ類は角付きかっこ（「＜」および「＞」）で囲われており、文書の構造および文書の表示のしかた、ならびにハイパーテキスト・リンクのための宛先とラベルを示す。タイトル、ヘッダ、太文字やイタリックなどのテキスト属性、リスト、パラグラフ境界、他の文書もしくは同じ文書の他の部分へのリンク、インライン・グラフィック画像など、その他の多くの機能についてのマークアップ・エレメント用のタグがある。
例えば、ここに数行のHTMLを示す。
Some words are <B>bold</B>, others are <I>italic</I>. Here we start a new paragraph. <P>Here′s a link to the <A HREF=“http://www.vermeer.com”>Vermeer Technologies、Inc.</A>home page
このサンプル文書は、「HREF=」によって提供される他の文書への「リンク」を含んでいるので、ハイパーテキスト文書である。このリンクのフォーマットを以下に説明する。ハイパーテキスト文書は同じ文書の他の部分へのリンクも持っている。リンク文書は通常インターネット上のどこに存在していてもよい。ユーザがWebブラウザ（下記に説明）を使用して文書を閲覧しているときには、そのリンクは強調単語または強調フレーズとして表示される。例えば、Webブラウザを使用すると、上記のサンプル文書はユーザのスクリーン上に次のように表示されるであろう。
１部の単語は太文字で、その他はイタリック。ここで新しいパラグラフを開始する。
Vermeer Technologies、Inc.ホームページへリンク。
Webブラウザ内では、リンクは、例えばマウスで強調された部分をクリックすることにより選択することもできる。リンクを選択することにより連想文書が表示される。従って、強調テキスト「Vermeer Technologies、Inc.」をクリックするとそのホームページを表示する。
WWW上のもう１つの文書オブジェクトはスクリプトである。スクリプトは実行可能プログラム、即ちファイルに格納されている１組のコマンドであり、Webサーバ（下記に説明）により実行されてHTML文書を生成する。HTML文書は次にWebブラウザに送り返される。典型的なスクリプトの動作には、ファイルまたはデータベースから情報を取り出すためのライブラリ・ルーチンその他のアプリケーション、または他のマシンから情報を取り出すための要求の開始、または選択したハイパーテキスト・リンクに対応する文書の検索が含まれる。スクリプトは、例えば、最終ユーザがWebブラウザで特定のハイパーテキスト・リンクを選択するかまたはHTML書式要求を提出すると、ウェブサーブ上で実行される。スクリプトは、通常はサービス・ディベロッパーが、BasicやTool Control Language（Tcl）またはUnixオペレーティング・システム・シェル言語のうちの１つの言語などの翻訳語で書いているが、「C」プログラミング言語などのプログラミング言語で書かれた後に実行可能プログラムにコンパイルされることもある。Tclでのプログラミングについては、Tcl and the Tk Toolkit、John K.著、Ousterhout、Addison-Wesley、Reading、MA、USA、1994年、に詳しく記載されている。ＷＷＷ中の各文書オブジェクトは、Uniform Resource Identifies（URI）と呼ばれる識別名を持っている。これらの識別名については、Universal Resource Identifiers for the World Wide Web, T. Berners-Lee著，Internet Request for Comments（RFC）（未だ番号が付されてない）として提出されたものに詳しく記載されている。URIによって、上記のHTML文書中のリンクにおけるように、インターネット上のいかなるオブジェクトも、名前もしくはアドレスによって引用することが許可される。URIには２つの種類がある：Universal Resource Name（URN）およびUniform Resource Locator（URL）である。URNは所定の名前のスペース内で名前によりオブジェクトを参照する。Internet共同体はまだURNのシンタックスを定義していない。URLはネットワーク・プロトコルを使用してアクセス・アルゴリズムを定義することによりオブジェクトを引用している。URLの１例は“http://www. vermeer. com”である。URLはシンタックス”scheme://host: port/path?search”を有しており、ここで”scheme”は（HTTP、FTPまたはGOPHERのような）アクセス・プロトコルを定義し；
”host”はプロトコルをサポートするマシンのInternetドメイン名であり；
”port”は適切なサーバの転送制御プロトコル（TCP）ポート番号（デフォルト値と異なる場合）；
”path”はオブジェクトのスキーム特定識別であり、また
”search”はオブジェクトの内容を問い合わせるためのオプションのパラメータを含んでいる。
ネットワーク・ユーザに文書を入手して欲しいインターネット・サイトは、「Webサイト」と呼ばれており、文書へのアクセスを提供する「Webサーバ」プログラムを実行しなければならない。Webサーバ・プログラムは、ネットワーク上のコンピュータに対しその他のWWWの全てが文書を入手できるようにするコンピュータ・プログラムである。これらの文書はＨＴＭＬ言語のハイパーテキスト文書であることが多いが、他種の文書であったり、画像やオーディオ情報またはビデオ情報の場合もある。Webサーバが管理する情報には、サーバ上に格納されているものか、またはWebサーバ上でスクリプトによって動的に発生させたハイパーテキスト文書が含まれる。ウェブ上に情報を提供するWebサーバ・ソフトウエア・パッケージとして、Conseil Europeen pour la Recherche Nucleaire（CERN, the European Laboratory for Particle Physics）サーバ、またはthe National Center for Supercomputing Applications（NCSA）サーバなどがある。Webサーバは、Unixオペレーティング・システムを実行するSun Sparc IIワークステーション、ならびにMicrosoft MS-DOSオペレーティング・システムおよびMicrosoft Windowsオペレーティング環境を実行するIntel Pentiumプロセッサを内蔵したパーソナルコンピュータなどの若干の異なるプラットホームについて実行されてきた。WebサーバはまたCommon Gateway Interface（CGI）と呼ばれる外部プログラムを実行するためのの標準インターフェースを備えている。ゲートウェイは、入情報要求を処理して、適切な文書を返送するかまたは動的に文書を発生させる。例えば、ゲートウェイは、問合わせを受け取ると、SQLデータベースの中から答えを探して、サーバがその結果をクライアントに送れるように返答をHTMLのページの中に翻訳する。ゲートウェイ・プログラムは、「Ｃ」などの言語、またはPractical ExtractionおよびReport Language（Perl）もしくはTclか、Unixオペレーティング・システム・シェル言語のうちの１つのようなスクリプティング言語で書いてもよい。Perlについては、Programming Perl、Larry WallおよびRandal L. Schwartz著、O′Reilly & Associates、Inc.、Sebastopol、CA, USA、１９９２年、に詳しく記載されている。CGI標準は、スクリプトおよびアプリケーションの入力およびパラメータの受取り方を指定し、また出力のフォーマットおよびサーバへの返送について指定する。
一般的に、セキュリティのために、Webサーバ・マシンはファイルへのアクセスを制限することがある。Webサーバ上のファイルへの全アクセスに対して、サーバ・マシン上で実行するWebサーバ・プログラムは、通常のファイル・システムよりも上位のところでセキュリティのための特別層を提供してサーバ・マシン上のオペレーティング・システムのセキュリティ手順をログインすることもできる。Webサーバ・プログラムはさらに次のようなセキュリティ規則を加えることができる：１）オペレーティング・システムがユーザアカウントに有している正規のユーザ名およびパスワードとは全く別個のオプションとしてユーザの名前およびパスワードを要求する、２）オペレーティング・システムのユーザグループ定義とは別個にセキュリティの目的でのユーザグループを定義する、３）各文書オブジェクトに対するアクセスを制御して、指定されたユーザ（オプションのパスワードを使用）もしくはユーザのグループのみがオブジェクトにアクセスできるようにするか、または特定のネットワーク・アドレスにおけるクライアントのみがアクセスできるようにするか、または、これらの規則の組み合わせによりアクセスを制御する、４）HTTP法の指定サブセットを通してのみ文書オブジェクトへのアクセスを可能にする、５）一部の文書オブジェクトのみをHTML文書とマークすることを認め、他の文書オブジェクトはHTML文書を発生することができる実行可能スクリプトとして印し、その他は画像のような多種のオブジェクトとして印す。ネットワーク・ファイル・システムによるオンラインサービス文書オブジェクトへのアクセスは、Webサーバ・プログラムのセキュリティ機能とは一致せず、Webサーバが提供するセキュリティをのぞく文書へアクセスする方法を提供するであろう。Webサーバ・プログラムはまた、典型的に、サーバ・ファイル・システム上に名前をファイルするために、クライアントに知られている文書オブジェクト名をマップする。このマッピングは散在的に複雑なこともあるので、Webサーバ上の文書に直接アクセスしようとする作成者やプログラムはこのネーム・マッピングを理解しなければならないであろう。
Webサイトのネットワーク上で入手可能な文書へのアクセスを望むユーザ（典型的にWebサーバが使用している以外のマシンを使用）は、「Webブラウザ」と呼ばれるクライアント・プログラムを実行しなければならない。ブラウザ・プログラムはユーザがWebサーバから文書を検索して表示することを許可する。よく知られているWebブラウザ・プログラムとしては、Navigatorブラウザ、NetScape Communications, Corp.、マウンテン  ビュー、カリフォルニア州；Mosaicブラウザ、National Center for Supercomputing Applications（NCSA）；Win Webブラウザ，Microelectronics and Computer Technology Corp.オースチン、テキサス州；Internet Worksブラウザ，BookLink Technology,ニードハム、マサチューセッツ州、などがある。ブラウザは、Microsoft MS-DOSオペレーティングシステムおよびMicrosoft Windowsオペレーティング環境を実行するIntel Pentiumプロセッサを内蔵したパーソナルコンピュータ、およびApple Macintoshパーソナルコンピュータを含む多くのプラットフォームに対して存在している。
WebサーバおよびWebブラウザは、Hypertext Transfer Protocol（HTTP）メッセージ・プロトコルおよびInternetの基本TCP/IPデータ転送プロトコルを使用して通信する。HTTPは、Hypertext Transfer Protocol - HTTP/1.0、T.Berners-Lee、R.T. Fielding、H. Frystyk Nielsen著，Internet Draft Document,１９９４年１２月１９日に詳しく記載されており、現在標準化されつつある。HTTPに於いて、WebブラウザはWebサーバへの接続を確立し、WebサーバへHTTP要求メッセージを送る。Webサーバは、HTTP要求メッセージに応答して、許可してよいかどうかを確認し、要求された動作を実行した後に、要求された動作から生じたHTML文書を含むHTTP要求メッセージもしくはエラーメッセージを送り返す。返されるHTML文書は、単にWebサーバ上に格納されている静的ファイルであることも、またHTTP要求メッセージに応答して呼び出されたスクリプトを使用して動的に作成されたものであることもある。例えば、静的文書を検索するために、WebブラウザはHTTP要求メッセージを指示されたWebサーバに送り、そのURIにより文書を要求する。Webサーバは文書を検索してHTTP応答メッセージでWebブラウザに送り返す。文書がハイパーテキストリンクを持っているときには、ユーザは再度リンクを選択して新しい文書の検索と表示を要求することができる。もう１つの例として、ユーザがデータベース探索を要求する書式に記入すると、Webブラウザは、探索するデータベースの名前および探索スクリプトの探索パラメータとURLを含むHTTP要求メッセージをWebサーバに送る。Webサーバはプログラムもしくはスクリプトを呼び出し、探索パラメータを検討する。プログラムはパラメータを調べ、おそらくデータベース・インタフェースに問い合わせを送ることにより、問い合わせに答えようとする。問い合わせ結果を受け取ると、プログラムはWebサーバに送り返すHTML文書を構築し、WebサーバはこれをWebブラウザにHTTP応答メッセージで送る。
HTTPでのメッセージは、サーバが実行する動作の種類を示す「方法名」、Webサーバ上の目標オブジェクト（文書かスクリプトのいずれか）を示すURL、その他の制御情報を含んでいる。応答メッセージは状態表示行、サーバ情報およびデータ内容を含んでいる。Multipurpose Internet Mail Extensions（MIME）は、ネットワーク上を通過するメッセージの内容を説明するための標準化された方法である。HTTP要求および応答メッセージは、MIMEヘッダラインを使用してメッセージのフォーマットを指示する。MIMEは、MIME（Multipurpose Internet Mail Extensions）：Mechanisms for Specifying and Describing the Format of Internet Message Bodies, Internet RFC 1341、１９９２年６月、に詳しく記載されている。
現行版HTTPプロトコルで定義されている要求方法は、GET、HEAD、POST、PUT、DELETE、LINK、およびUNLINKを含んでいる。GET方法は、サーバに対し、所定のURLが指示しているオブジェクトを検索してクライアントに送るよう要求する。URLが或る文書に言及すると、サーバはこれに応答してその文書を送り返す。URLが或る実行可能なスクリプトに言及すると、サーバはそのスクリプトを実行して、スクリプトの実行により生成されたデータを送り返す。Webブラウザ・プログラムは通常GET方法を使用してHTML文書を検索するためにWebサーバに要求メッセージを送り、WebサーバはこのHTML文書をクライアントのコンピュータの画面に表示する。
HTTP仕様によれば、PUT方法は、当要求中に含まれているオブジェクトは所定のURLが指示したサーバ上の位置に格納されるべきである、と定めている。しかし、現在のサーバの実行方法はこの仕様に従っていない；現サーバ実行方法は単に単一のPUTスクリプトを通して全PUT要求を取り扱う。このPUTスクリプトは通常は定義されておらず、サービス作成者が作成しなければならない。Webブラウザは一般的にはPUT方法を使用しない。
POST方法は、通常はHTML書式からのユーザ入力パラメータであるデータをサーバに送る。POST要求はまたサーバ上で実行されるスクリプトのURLも含んでいる。サーバがスクリプトを実行して要求中のパラメータをパスすると、スクリプトはクライアントに応答して返送するHTML出力を発生する。クライアント・プログラムが現行のHTTPプロトコルを使用してWebサーバに任意のデータを送信するためには、クライアント・プログラムはPUT方法かPOST方法のいずれかを使用しなければならない。なぜなら、Webサーバにデータ転送できるのはこの２つの方法のみであるからである。World Wide Webについて説明したので、これからWWW上の典型的なオンラインサービスを説明する。
World Wide Web上のオンラインサービスは、Webサーバ・マシン上で実行するWebサーバ・プログラム、およびWebサーバ・マシン上に格納されるオンラインサービスに特性を与える１組のサービス・ファイルを含んでいる。このサービス・ファイルは、HTML文書、HTML文書を動的に生成する実行可能スクリプトもしくはプログラム、およびこのスクリプトとプログラムにより引用および更新されるサービス情報の他のファイルを含んでいる。HTML文書およびスクリプト・プログラムを含む特定のオンラインサービスを形成する実際のデータおよびスクリプトは、通常、各サービスについて別々のエリア内のサーバ上に格納されている、サービスの名前、作成者の名前、改訂経過記録、サービスについてのコメント、許可情報などのデータを含むサービスについての大域情報も格納される。オンラインサービスの最終ユーザは、クライアント・マシン上のWebブラウザを使用してオンラインサービスへ要求を送り、オンラインサービスから応答を受け取る。オンラインサービスの最終ユーザのサービス・ファイルへの全アクセスは、Webサーバ・プログラムに管理され且つ制御される。例えば、オンラインサービスは、静的文書であるコーポレート・ホームページから成り、商店カタログを探索するための書式である第２文書へのリンクを備えていることもある。探索書式は「サブミット」ボタンを備えており、Webサーバ上でスクリプトを実行させて価格を含めた製品説明リストを生成させることができる。これはHTML文書としてWebブラウザに送り返えされる。各HTML文書は、注文された品目を集めて表示する第２スクリプトへのリンクを有している場合もある。このサービスは、また、サービスを許可されたユーザとそのパスワードのリストなどの構成情報も有している。
図１は、クライアント・マシン上におけるオンラインサービス最終ユーザから見たオンラインサービス利用時のステップを示している。最終ユーザはステップ１０でWebブラウザ・プログラムを開始し、このプログラムはステップ１２で初期文書を表示するためのURLを決定する。初期文書のURLは構成ファイルから決定されても、Webブラウザ内にプログラムされても、またユーザが入力してもよい。ブラウザは次にステップ１４でWebサーバにHTTP GET要求を送り、希望する文書のURLを与える。ブラウザは次いでステップ１６でWebサーバからの応答を待つ。ブラウザはステップ１８でこの応答を試験し、応答がエラーメッセージを示しているか否かを決定する。Webサーバからのメッセージが、例えば要求した文書が見つからないなどのエラーを示しているときには、ブラウザはステップ２２で最終ユーザにそのエラーを報告する。エラーを示してないときには、Webサーバからの応答メッセージは要求された文書を含んでおり、Webブラウザは、HTML言語規約に従って、ステップ２０で文書をフォーマットして表示する。いずれの場合についても、次にブラウザは、ユーザが次のコマンドを入力するのを待つ（ステップ２４）。例えば、ユーザは、文書へのハイパーテキスト・リンクを選択するか、既に画面訪問したことのある文書のリストから或る文書を要求するか、またはその他の手段でユーザが取得した文書のURLをタイプ入力することにより、新しい文書の閲覧を要求することもあろう。ブラウザはユーザのコマンドを試験し、ステップ２６において、ユーザが新しい文書を要求しているか否かを決定する。ユーザが新しい文書を要求している場合には、処理は既に説明したステップ１４に戻って続けられる。ユーザが新しい文書を要求していない場合には、ブラウザはステップ３０でコマンドを試験して、プログラムを終了することを要求しているか否かを決定する。プログラムを終了することを要求している場合には、処理は停止する。プログラムを終了することを要求していない場合には、コマンドは、ステップ２８でHTTP要求を送らずにブラウザが処理するローカルコマンドである。最終ユーザは、文書内をスクロールするためのコマンドや文書内の特定のテキスト・ストリングを探索するためのコマンドなどのローカル閲覧コマンドを使用することもある。ブラウザはローカル文書を処理した後、既に説明したように再びステップ２４で次のユーザ・コマンドを待つ。
図２は、Webサーバ・プログラム側から見たWorld Wide Web上のオンラインサービスの操作を示す。サーバを開始させると、サーバは連続実行し、ステップ４０において、ネットワーク接続を経てクライアントWebブラウザ・プログラムからのコマンドを受け取るために待機する。ステップ４４においてサーバは受け取ったコマンドを試験して、GET要求か否かを決定する。GET要求である場合には、サーバは、ステップ５２で、要求中に含まれているURLを調べ、URLがサーバ上に格納されている静的HTML文書を示しているか否かを決定する。URLが静的文書を示している場合には、ステップ５８において、HTTP応答によりその文書をWebブラウザに送る。URLが静的文書を示していない場合には、URLはサーバ上に格納されているスクリプトを示しており、Webサーバはステップ５６でHTML文書を生成し、前述のようにステップ５８でこれをWebブラウザに送り返す。ステップ４４の試験がコマンドはGET要求ではないと決定すると、サーバはステップ４８でコマンドを試験してPOST要求か否かを決定する。POST要求である場合には、サーバはステップ５４でPOST要求からパラメータを検索する。POST要求はスクリプトのためのURLおよびスクリプトのパラメータを含んでいる。サーバは次にステップ５６で指示されたスクリプトを実行してHTML文書を生成し、前述のようにHTML文書をステップ５８でWebブラウザに送り返す。HTML文書がWebブラウザに送り返えされると、処理はステップ４０に戻って続けられる。ステップ４８の試験でコマンドがPOST要求でないと決定された場合には、サーバはステップ５０でHTML文書としてフォーマットされたエラーメッセージをWebブラウザに返す。処理はステップ４０に戻り、サーバは再び次の要求を待ち、この処理を繰り返す。
上記のようなオンラインサービスは需要が高い。残念なことに、オンラインサービスを開発するタスクは、現在のところ常に広範なプログラミング技術と高度な専門知識を要求する。オンラインサービス構築処理の処理時間を短縮でき、エラーを起こす傾向が少なく、またプログラマーでない者によっても遂行できるように、この処理を単純化できるツールに対する必要性が高まっている。サービスのための内容データを、固有フォーマットからサーバの要求するフォーマットへ変換するための支援ソフトウエア・ツールもあるが、これらのツールは静的データファイルのみを変換するにとどまっている。
例えば、World Wide Webのためのオンラインサービスを構築するために、サービス作成者は、オンラインサービスに含まれるハイパーテキストのページのための新しいHTML文書の創作、オンラインサービスに含まれる新しいスクリプトの作成、Webサーバ・マシンからの既存HTML文書の検索と変更、Webサーバ・マシンからの既存スクリプトの検索と変更、およびWebサーバ・プログラムがアクセスできるようにWebサーバ・マシン上にHTML文書もしくはスクリプトを格納するなどのタスクの組み合わせ行なう。
Web上でオンラインサービスの文書およびスクリプトを構築し、また上記タスクを遂行するための先行技術の手法は複数存在する。第１の手法は、サービス作成者はWebサーバ・マシン上のテキストまたはHTML編集プログラムを実行して、サーバ上に格納されているオンラインサービス文書およびスクリプトを創作もしくは変更する。
第１の手法の問題点は、サービス作成者はWebサーバ・マシンの所で働いているか、または少なくともこのサーバ・マシンに直接接続している端末装置の所で働いていなければならない。サービス作成者はサーバ・マシンから物理的に離れた所で働いていることもあるので、この手法は必ずしも実際的ではない。またサーバ・マシンの若干数のユーザ間で共同所有するリソースの性質からサーバ・マシンが高水準のセキュリティを要求することもある。このような場合、マシンへアクセスできるのはシステム管理者のみに限られていることも多く、セキュリティ保護のためにサービス作成者がマシンへアクセスできないこともある。例えば、Webサーバが使用しているファイルへアクセスできるのは、唯一Webサーバを介してのアクセスのみとなることもある。
第２の手法として、サービス作成者はクライアントのマシン上で端末エミュレーション・プログラムを実行して、ネットワーク接続またはモデム回線によりサーバ・マシンへの接続を確立することもできる。端末エミュレーション・プログラムにより、ユーザはサーバ・マシン上のプログラムを、あたかもユーザがサーバ・マシン上で直接作業しているかのように実行することができ、またこの配置によりユーザはサーバ上でテキストやHTML編集プログラムを実行して、前手法のように、オンラインサービス文書およびスクリプトを創作もしくは変更することができる。
第２の手法の問題点は、サーバのマシンとクライアントのマシンがともに追加プログラムを実行して、ネットワークによりプログラムの端末エミュレーションおよび遠隔実行をさせなければならないことである。これは両方のマシンを複雑化し、またサービス作成者は、典型的に、非専門家向けではない難しいユーザ・インターフェースを備えた端末エミュレーション・プログラムに詳しいことが要求される。この手法は他のマシンから別のルートをサーバ・マシンに加えることになり、セキュリティ上好ましくない。第１の手法と同様に、サービス作成者は、セキュリティの理由によりサーバ・マシンにアクセスできないか、サーバ・マシンにファイルを書く許可を与えられないであろう。
第３の手法は、サービス作成者は初めに、手動によるかネットワークファイル転送プログラムを介して、既存のサービス文書およびスクリプトをサーバ・マシンからクライアント・マシンに転送する。作成者は次いでクライアント・マシン上のテキストもしくはHTML編集プログラムを実行してそのマシン上で文書を創作または変更し、次いで、手動によるかファイル転送プロトコルもしくはkermit,即ちモデムによる通信用の端末エミュレーション・プログラムと共に使用するファイル転送方法、などのネットワーク・ファイル転送プログラムを介して、完成した文書をサーバ・マシンへ転送する。
第３の手法は、文書をサーバからクライアントへ転送し、また編集完成後にその文書をまたサーバに転送するという分離ステップを必要とするので、取り扱いずらい。この手法もまた他の手法と同様にセキュリティに問題がある。
これら３種の手法は各々、また、Webサーバが文書に使用したファイル名がその文書の実際のファイル名と必ずしも同じでないという問題がある。オンラインサービスの作成者は、Webサーバが使用しているURLへのファイル名のマッピングを学習しなければならない。また、Webサーバからファイルを検索することができるクライアント・ブラウザ・プログラムおよび検索したファイルを編集することができるクライアントHTMLエディタから成り、NeXTコンピュータと合わせて使用する、World Wide Webコンピュータプログラムである。しかし、このプログラムは編集したファイルをWebサーバに保存することができない。その代わり、この手法は、編集した文書をWebサーバ上に戻すためにファイル転送プログラムが必要である点で、上記の第３の手法に類似している。この手法もまた、このような方法で編集した文書の種類はサーバが処理することのない静的HTML文書に限られるため、Web用オンラインサービスの作成を完全に解決するものではない。
発明が解決しようとする課題
World Wide Web上でオンラインサービスを新たに作成するときの現行方法の欠点を克服するために、本発明の１つの実施形態では、メッセージがサーバとクライアント間でTCP/IP接続を経て送られる通信プロトコルを使用してWebサーバ上の文書オブジェクトを検索し格納させることにできるクライアント作成ツールを提供する。１つの実施の形態では、通信プロトコルはHTTPであり、Webブラウザが使用している通信プロトコルと同じである。このシステムの体系は、他の通信プロトコルおよびクライアント／サーバ・オンラインサービスに適用することができる。
クライアント・プログラムにHTTPを使用してるWebサーバへのファイル保存を実現させることの難しさ１つは、CERNサーバおよびNCSAサーバなどの既存のWebサーバは，HTTP PUTおよびPOST方法に対する支援機能を備えはているが、いまだにPUTおよびPOST方法のいずれかをも取り扱うためにサーバ上のスクリプトの開発と導入を必要としている。
HTTPプロトコルによりオンラインサービスを遠隔作成および編集するための方法を実行することのもう１つの難しさは、Webサーバ上に格納されているオンラインサービス用構成オブジェクトに２種類あることである。これらは静的HTML文書、および要求に応じて動的にHTML文書を発生させるスクリプトである。作成プログラムがHTTPプロトコルを使用してサーバからスクリプトを検索したい場合、オンラインサービス操作時に文書の検索およびスクリプトへのアクセスに通常使用しているHTTP GET方法を単純に使用することはできない。その理由は、HTTP GET方法は、スクリプトへのアクセスに使用されたときは、スクリプトを実行して、そのスクリプトを実行して発生させたHTML文書を送り返してくるためである。
この環境でオンラインサービスのために文書を編集することの別の難しさは、クライアント作成プログラムは一般にサーバ上のオンラインサービスの文書オブジェクトの全ファイル名を包含するようなファイル名スペースを備えていないことである。ファイル名スペースがこのように複数にある場合は、通常ネットワーク・ファイル・システムを使用するよう要求する。サーバ上の全オンラインサービスの作成者を含むネットワーク・ファイル・システムの創設は一般的に非実際的である。このようなシステムは一般的に複雑すぎて簡単に設定できず、またInternetのような大規模の混成公衆ネットワーク上では非実際的であるところの必要以上に近接したシステム間相互関係を要求する。多くの場合、クライアント作成システムは、ネットワーク・ファイル・システムを設定することができるようなサーバへのアクセスを備えていないと考えられる。
これらの難事を全体的に克服するため、本発明の１つの態様として、サーバ・コンピュータ上に格納した電子文書をクライアントのコンピュータを使用して遠隔編集するためのコンピュータ実行処理があり、この処理ではサーバ・コンピュータとクライアント・コンピュータは通信チャネルにより接続されており通信プロトコルを用いてメッセージを送る。この処理では、クライアント・コンピュータは、通信チャネルにより通信プロトコルを用いて、電子文書のコピーを要求する要求メッセージをサーバに送る。次に、クライアントはサーバから応答メッセージを通信チャネルを経て通信プロトコルで受け取る。この場合において、この応答メッセージは要求された電子文書を含んでいる。クライアントは、ユーザに対し、クライアントのコンピュータでこの電子文書を編集することを許可する。サーバにこの電子文書を格納するために、クライアントは、編集済み電子文書を含んだ通信プロトコルでのメッセージを通信チャネルを経てサーバに送る。この場合において、このメッセージは、この電子文書をサーバ・コンピュータ上の特定の位置に格納させることを要求する指示を含んでいる。典型的には、サーバはこの文書の格納を試みた結果を示す状態応答メッセージを送る。
実施形態の１つでは、これらの難事を克服するために、作成ツールは、スクリプトもしくは文書の検索を要求し、また編集済みか新しい文書もしくはスクリプトの格納を要求するために、PUTかまたはPOST HTTP要求メッセージのいずれかを使用する。現在入手可能な作成ツールでも、簡単に変更でき、既存の「開く」および「保存」機能を入れ替えて本能力を提供できるものもある。このサーバは、CERNサーバまたはNCSAサーバなどの標準Webサーバ・プログラムであればさしつかえない。本発明者らの発明は制御スクリプトを提供するものであり、サーバは、入PUTまたは入POST HTTP要求メッセージの各々についてこの制御スクリプトを実行することにより、或る文書を検索するか入れ替えるかを決定する。作成ツール・プログラムはHTTPプロトコルを使用してサーバ・マシン上で実行しているサーバ・プログラムと通信する。通信チャネルはサーバ・プログラムに要求を送っている作成ツールの書式を取り込み、またサーバ・プログラムは制御スクリプトを実行して指示された動作を実施してその結果を出力ファイルに書き込み、さらにサーバは作成クライアントにこの出力ファイルと応答メッセージとを送り返す。この出力は、動作の実施が成功したことを示す状態メッセージか、検索した文書もしくはスクリプトの内容か、または動作を実施できなかった理由を示すエラーメッセージのいずれかであろう。サーバ・プログラムは、作成ツールが使用中であってもなおブラウザと通信することができる。入PUTまたは入POST HTTP要求が作成ツールからの要求でないときには、Webブラウザなど他のクライアント・プログラムからの他の入PUTまたは入POST HTTP要求メッセージと同様に取り扱われる。作成ツールからの要求であれば、サーバは要求パラメータを制御スクリプトにパスする。制御スクリプトは、パラメータを確認して要求が妥当であることを確証し、また作成ツールのユーザが適切な許可を得ていることを確認する。制御スクリプトは次いで要求を実行して、要求通りに適切なオンラインサービスのファイルを検索、創作または変更する。
実施形態における本発明のもう１つの態様として、サーバ上に格納された文書をクライアントが遠隔編集するためのコンピュータによる実行処理がある。この場合、クライアントおよびサーバは、HTTPプロトコルを使用し、TCP/IP接続を経て、メッセージを送る。本処理では、クライアントはサーバとTCP/IP接続を確立する。次にクライアントは、TCP/IP接続を経て、HTTP要求メッセージをサーバに送る。ここで、HTTP要求メッセージは、文書オブジェクトを指定し、またクライアントがその文書オブジェクトの検索を要求している旨を指示する。サーバはHTTP要求メッセージを受け取ると制御スクリプトを呼び出す。制御スクリプトは、確認をチェックし、アクセスが認証されるとその文書を検索する。サーバは、TCP/IP接続を経て、HTTP応答メッセージで文書オブジェクトのコピーをクライアントに送る。クライアントは文書オブジェクトのコピーを含んだHTTP応答メッセージを受け取る。TCP/IP接続を終了したのちクライアントはユーザに文書のコピーを編集することを許可する。編集した文書、または新しい文書をサーバ上に格納させるときには、クライアントは、サーバとTCP/IP接続を確立して、サーバにHTTP要求メッセージを送る。この場合、HTTP要求メッセージは、編集した文書のコピー、および編集済み文書オブジェクトのコピーを格納させるサーバ上の位置の指示、およびクライアントはこの編集済み文書オブジェクトの格納を要求している旨の指示を含んでいる。サーバはHTTP要求メッセージを受け取ると、制御スクリプトを呼び出す。制御スクリプトは、HTTP要求メッセージが指定したサーバ上の位置に編集済み文書オブジェクトのコピーを格納する。サーバは、編集済み文書オブジェクトを格納することを認めたHTTP応答メッセージを送る。これでTCP/IP接続は終了する。
本発明のもう１つの態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納できるようにするためのコンピュータによる実行処理である。この処理では、サーバは、TCP/IP接続を経てクライアントからHTTP要求メッセージを受け取る。この場合、HTTP要求メッセージは、文書オブジェクトのコピー、および文書オブジェクトのコピーを格納するサーバ上の位置の指示、およびクライアント・コンピュータが文書オブジェクトの格納を要求している旨の指示を含んだ内容を持つ。サーバは、HTTP要求メッセージの内容を使用して処理を実行し、またHTTP要求メッセージに含まれている位置の指示に従って、サーバ上に文書オブジェクトのコピーを格納する。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システムである。サーバ・コンピュータはクライアント・コンピュータからTCP/IP接続を経てHTTP要求メッセージを受け取る機構を含むが、この場合にはHTTP要求メッセージは文書オブジェクトのコピー、ならびにその文書オブジェクトのコピーを格納するためのサーバ・コンピュータ上の位置の表示およびクライアント・コンピュータが文書オブジェクトの格納を要求することを示す表示を含む内容を有する。サーバ・コンピュータはまた、HTTP要求メッセージ中に含まれる位置の表示に従って、文書オブジェクトのコピーをサーバ・コンピュータ上に格納するためのHTTP要求メッセージの内容を使用して処理を実行する機構を含む。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システム内のサーバ・コンピュータである。サーバ・コンピュータは、コンピュータによる読み出し・書き込み可能格納媒体およびTCP/IP機構を含み、クライアント・コンピュータとのTCP/IP接続を確立するための、且つ、TCP/IP接続を確立するクライアント・コンピュータから要求を受け取るための入力部を有する。サーバ・コンピュータはまた、TCP/IP機構によってクライアント・コンピュータからTCP/IP接続を経てHTTP要求メッセージを受け取るための入力部を有するHTTPサーバを含むが、この場合にはHTTP要求メッセージは文書オブジェクトのコピー、ならびに格納媒体上に格納されるときに文書オブジェクトを検索するためにHTTPサーバによって使用される名前の表示、およびクライアント・コンピュータが文書オブジェクトの格納を要求することを示す表示、ならびにHTTP要求メッセージ中に含まれる名前に従って、HTTP要求メッセージからの文書オブジェクトのコピーを、ファイルとしてコンピュータによる読み出し・書き込み可能格納媒体上に格納するための出力部を含む内容を有する。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータによる実行処理である。この処理において、クライアント・コンピュータは、サーバ・コンピュータとのTCP/IP接続を確立する。次に、クライアント・コンピュータは、TCP/IP接続を経てサーバ・コンピュータにHTTP要求メッセージを送るが、この場合にはHTTP要求メッセージは、文書オブジェクトのコピー、ならびに文書オブジェクトのコピーを格納するためのサーバ・コンピュータ上の位置の表示およびクライアント・コンピュータが文書オブジェクトの格納を要求することを示す表示を含む内容を有する。クライアント・コンピュータは次に、文書オブジェクトのコピーを格納するためのサーバ・コンピュータによる試みの結果を示すHTTP応答メッセージをサーバ・コンピュータから受け取る。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータによる実行処理である。この処理において、サーバ・コンピュータは、クライアント・コンピュータから要求メッセージを受け取るが、この場合には要求メッセージは文書オブジェクトのコピー、サーバ・コンピュータ上の文書オブジェクトにアクセスするためにその他のクライアントによって使用される汎用名である表示名を定義するサーバ・コンピュータ上の位置の表示、および文書オブジェクトがサーバ・コンピュータ上の表示された位置に格納されるべきであることを示す表示を含む内容を有する。サーバ・コンピュータは次に表示された名前を、サーバ・コンピュータのファイル名スペース内のファイル名に変換し、その文書オブジェクトをサーバ・コンピュータのファイル名スペース内のファイル名を使用して、サーバ・コンピュータ上にファイルとして格納する。サーバ・コンピュータは次に、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを送る。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システムである。サーバ・コンピュータは、クライアント・コンピュータから要求メッセージを受け取るための機構を含むが、この場合にはその要求メッセージは文書オブジェクトのコピー、文書オブジェクトを検索するためにその他のクライアントによって使用されるべき汎用名である表示名を定義するサーバ・コンピュータ上の位置の表示、および文書オブジェクトがサーバ・コンピュータ上の表示位置に格納されるべきであることを示す表示を含む内容を有する。サーバ・コンピュータはまた、表示された名前をサーバ・コンピュータのファイル名スペース内のファイル名に変換し、その文書オブジェクトをサーバ・コンピュータのファイル名スペース内のファイル名を使用してサーバ・コンピュータ上にファイルとして格納する機構を含んでいる。サーバ・コンピュータはまた、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを送るための機構を含む。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システムである。サーバ・コンピュータは、コンピュータによる読み出し・書き込み可能格納媒体およびサーバ・コンピュータ上で実行されるサーバ・プログラムを含む。実行されるサーバ・プログラムは、クライアント・コンピュータからの要求メッセージを受け取るために接続された入力部を有しており、この場合には要求メッセージは、文書オブジェクトのコピー、文書オブジェクトを検索するためにその他のクライアントによって使用される汎用名である文書オブジェクトを検索するためにサーバ・プログラムによって使用されるべき名前の表示、およびその文書オブジェクトがコンピュータによる読み出し・書き込み可能格納媒体上に格納されるべきであることを示す表示を含む内容を有する。実行されるサーバ・プログラムは、さらに、受け取ったメッセージ内に表示した名前から変換されたサーバ・コンピュータのファイル名スペース内にファイル名を提供するための第１の出力部、およびサーバ・コンピュータのファイル名スペース内のファイル名を使用して、コンピュータによる読み出し・書き込み可能格納媒体上にファイルとしてその文書オブジェクトを格納するためのサーバ・コンピュータに対するコマンドを有する。実行されるサーバ・プログラムは、さらに、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを提供するために、クライアント・コンピュータに接続された第２の出力部を有する。
サーバが汎用名を受け取る本発明の別の態様において、汎用名はURLまたは同等の標識であることができる。斯かる汎用名は、例えばFTPによって使用されるファイル名とは異なるが、その理由はFTPにおいてメッセージはサーバ上に実際の名前を含み、またサーバにログしたユーザの現在実行中のディレクトリ情報を維持するためである。さらに、斯かる汎用名は、ネットワーク・ファイルシステム（NFS）によって使用されるときなどのファイル名とは異なる。NFSにおいて、メッセージは物理的ファイル名を含み、現在実行中のディレクトリ情報を維持することができる。NFSにおいて、ファイル名およびディレクトリのマッピングはクライアント依存型であってクライアント独立型ではない。対照的に、HTTPもしくは汎用名またはクライアント独立名を使用するその他のサーバを用いて、メッセージはマッピング段階を通過するプロトコル：//host/pathを含むURLを使用する。その結果、ファイルは、URLに対するディレクトリのトリーに整合するサーバのマッピング・テーブル中に載っている場合のみ、サーバにアクセスが可能である。URL自体は典型的にはFTP内で使用されるファイル名とは違って、ファイルを識別するためのサーバがないと使用することが出来ない。FTTPはまた、NFS内のファイル名とは違って、サブディレクトリの複数のマッピングを可能にするさらなる規則を有する。異なるセキュリティがHTTPを使用して異なるサブディレクトリ上に提供されることもできる。言い換えると、HTTPおよびURLを使用して、ディレクトリxを用いる名前およびサブディレクトリx/yを用いる名前は、サーバ上の異なる位置にマップすることが出来る。さらに、ディレクトリxおよびサブディレクトリx/yに関係する許可は、サーバ上で異なることが出来る。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータによる実行処理である。この処理において、サーバ・コンピュータは、クライアント・コンピュータから要求メッセージを受け取るが、この場合には要求メッセージは、文書オブジェクトのコピー、メッセージを送るアプリケーションの表示、サーバ・コンピュータ上の位置の表示、および文書オブジェクトがサーバ・コンピュータ上の位置に格納されるべきであることを示す表示を含む内容を有する。サーバは次に、要求メッセージの内容中のアプリケーションの表示を受け取ったアプリケーションと比較することによって、その要求メッセージが許可されたソースに由来するものであるか否かを決定する。要求メッセージが許可されたソースに由来するときには、サーバは、要求メッセージ中に表示された位置を用いて、且つ、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを送ることによって、サーバ・コンピュータ上に文書オブジェクトを格納する。要求メッセージが許可されたソースに由来しないときには、サーバは、サーバ・コンピュータ上に文書オブジェクトを格納しないで、クライアント・コンピュータに応答メッセージを送る。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システムである。サーバ・コンピュータは、クライアント・コンピュータから要求メッセージを受け取るための機構を含むが、この場合には要求メッセージは、文書オブジェクトのコピー、メッセージを送るアプリケーションの表示、サーバ・コンピュータ上の位置の表示、および文書オブジェクトがサーバ・コンピュータ上の位置に格納されるべきであることを示す表示を含む内容を有する。別の機構は、要求メッセージの内容中のアプリケーションの表示を受け取ったアプリケーションと比較することによって、要求メッセージが許可されたソースに由来するものか否かを決定する。サーバはさらに、要求メッセージ中に表示された位置を使用して、且つ、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを送ることによって、サーバ・コンピュータ上に文書オブジェクトを格納するための、要求メッセージが許可されたソースに由来するときに有効な機構を含む。別の機構は、要求メッセージが許可されたソースに由来するものではなく、また、サーバ・コンピュータ上に文書オブジェクトを格納せずに応答メッセージをクライアント・コンピュータに送るときには有効である。
本発明の別の態様は、クライアント・コンピュータが文書オブジェクトをサーバ・コンピュータ上に格納することを可能にするためのコンピュータ・システムである。サーバ・コンピュータは、コンピュータによる読み出し・書き込み可能格納媒体およびサーバ・コンピュータによって実行されるサーバ・プログラムを含む。実行されるサーバ・プログラムは、クライアント・コンピュータから要求メッセージを受け取るための入力部を有するが、この場合には要求メッセージは、文書オブジェクトのコピー、メッセージを送るアプリケーションの表示、サーバ・コンピュータ上の位置の表示、および文書オブジェクトがサーバ・コンピュータ上の位置に格納されるべきであることを示す表示を含む内容を有する。実行されるサーバ・プログラムは、また、アプリケーションの表示を受け取るための第１の入力部および許可されたソースの表示を受け取るための第２の入力部、ならびにその要求メッセージが許可されたソースに由来するものであるか否かの表示を提供する出力部を有する比較器を含む。サーバ・プログラムはサーバ・コンピュータにコマンドを提供する第１の出力部を有しており、要求メッセージが許可されたソースに由来するときには、要求メッセージ内に表示した名前を使用して、ファイルとしてコンピュータによる読み出し・書き込み可能格納媒体上に文書オブジェクトを格納する。サーバ・プログラムはまた、第２の出力部を有しており、要求メッセージが許可されたソースに由来するときには、文書オブジェクトの格納を容認するクライアント・コンピュータに応答メッセージを提供し、また、要求メッセージが許可されたソースに由来しないときには、文書オブジェクトの格納を容認しないクライアント・コンピュータに応答メッセージを提供する。
本発明の別の態様は、クライアント・コンピュータがサーバ・コンピュータ上で文書オブジェクトを編集することを可能にするためのコンピュータにより実行される処理である。この処理では、第１のHTTP要求メッセージがクライアント・コンピュータからTCP/IP接続を経てサーバ・コンピュータに伝送されるが、この場合には第１のHTTP要求メッセージは、文書オブジェクトおよびクライアント・コンピュータがサーバ・コンピュータから文書オブジェクトの検索を要求することを示す表示を指定する。処理は文書オブジェクトのコピーを検索する第１のHTTP要求メッセージを使用してサーバ・コンピュータ上で実行される。文書オブジェクトのコピーは、サーバ・コンピュータから第１のHTTP応答メッセージ内のTCP/IP接続を経てクライアント・コンピュータに伝送される。文書オブジェクトは次にクライアント・コンピュータ上で編集される。第２のHTTP要求メッセージは、クライアント・コンピュータからTCP/IP接続を経てサーバ・コンピュータに伝送されるが、この場合には第２のHTTP要求メッセージは、文書オブジェクトのコピー、ならびに文書オブジェクトのコピーを格納するためのサーバ・コンピュータ上の位置の表示およびクライアント・コンピュータが文書オブジェクトの格納を要求することを示す表示を含む。処理は、第２のHTTP要求メッセージ内に含まれる位置の表示に従って、サーバ・コンピュータ上に文書オブジェクトのコピーを格納する第２のHTTP要求メッセージを使用して、サーバ・コンピュータ上で実行される。
本発明の別の態様は、サーバ・コンピュータおよびクライアント・コンピュータで構成される、文書オブジェクトを編集するためのコンピュータ・システムである。クライアント・コンピュータは、第１のHTTP要求メッセージをTCP/IP接続を経てサーバ・コンピュータに送るための機構を含むが、この場合には第１のHTTP要求メッセージは、文書オブジェクトおよびクライアント・コンピュータがサーバ・コンピュータからの文書オブジェクトの検索を要求することを示す表示を指定する。クライアント・コンピュータはまた、要求された文書オブジェクトのコピーを含むHTTP応答メッセージをサーバから受け取るための機構、およびクライアント・コンピュータ上で文書オブジェクトを編集するための機構を含む。クライアント・コンピュータはさらに、第２のHTTP要求メッセージをTCP/IP接続を経てサーバ・コンピュータに送るための機構を含むが、この場合には第２のHTTP要求メッセージは、編集された文書オブジェクト、ならびに文書オブジェクトのコピーを格納するためのサーバ・コンピュータ上の位置の表示、およびクライアント・コンピュータが文書オブジェクトの格納を要求することを示す表示を含んでいる。サーバ・コンピュータは、文書オブジェクトのコピーを検索する第１のHTTP要求メッセージを使用して、サーバ・コンピュータ上で処理を実行するための機構を含む。サーバ・コンピュータはまた、HTTP応答メッセージ内の文書オブジェクトのコピーを、サーバ・コンピュータからTCP/IP接続を経てクライアント・コンピュータに伝送するための機構を含む。サーバ・コンピュータはさらに、第２のHTTP要求メッセージ中に含まれる位置の表示に従って、文書オブジェクトのコピーをサーバ・コンピュータ上に格納する第２のHTTP要求メッセージを使用して、サーバ・コンピュータ上で処理を実行するための機構を含んでいる。
本発明の別の態様は、クライアント・コンピュータがサーバ・コンピュータ上で文書オブジェクトを編集できるようにするためのコンピュータによる実行処理である。この処理には、クライアント・コンピュータからサーバ・コンピュータに読み取り要求メッセージを送ることが伴うが、この場合、この読み取り要求メッセージは、サーバ上の位置の指示（文書オブジェクトを検索するために他のクライアントによって用いられる汎用名である指示名を定義する）およびクライアント・コンピュータが文書オブジェクトの検索を要求しているという指示を用いて文書オブジェクトを指定する。サーバ・コンピュータ上では、文書オブジェクトの指示はサーバ・コンピュータのファイル名スペース中のファイル名に変換され、このファイル名を用いてサーバ・コンピュータから文書オブジェクトのコピーを検索する。この文書オブジェクトのコピーは、読み取り応答メッセージ中に入れてサーバ・コンピュータからクライアント・コンピュータに送られる。次に、この文書オブジェクトのコピーはクライアント・コンピュータ上で編集される。書き込み要求メッセージがクライアント・コンピュータからサーバ・コンピュータに送出されるが、この場合、この書き込み要求メッセージには、文書オブジェクトのコピー、文書オブジェクトにアクセスする他のクライアントが用いる文書オブジェクトの汎用名およびこのメッセージ中の汎用名を用いてクライアント・コンピュータがアクセスできるように文書オブジェクトをサーバ・コンピュータ上に格納することを示す指示が含まれる。サーバ・コンピュータ上では、この指示された名称は、サーバ・コンピュータのファイル名スペース中でファイル名に変換され、文書オブジェクトを、ファイル名スペース中のファイル名を用いたファイルとして格納する。書き込み応答メッセージは、文書オブジェクトのクライアント・コンピュータの肯定応答メモリに送られる。
本発明の別の態様は、遠隔サーバ・コンピュータ上に格納されている文書オブジェクトを編集するためクライアント・コンピュータ上で使用されるクライアント・アプリケーションである。このクライアント・アプリケーションは、3つの機構に対する同時アクセスを可能にする統合ユーザ・インタフェースを持つ。第1の機構は、文書オブジェクトをアクセスする他のクライアントが用いる汎用名を用いる文書オブジェクトの指示と文書オブジェクトのコピーがサーバ・コンピュータからクライアント・コンピュータに送られるべきであるとする指示とを含む読み出し要求メッセージをサーバ・コンピュータに送出し、次に、この文書オブジェクトのコピーを含む読み出し応答メッセージをサーバ・コンピュータから受信し、次に、文書オブジェクトのコピーを格納装置中に格納する。第2の機構は、格納装置中に格納された文書オブジェクトを編集するためのものである。第3の機構は、編集された文書オブジェクトをサーバ・コンピュータ上に格納させるためのものである。この第3の機構は、バッファからの編集済み文書オブジェクトのコピーおよびこの編集済み文書オブジェクトを格納するためにサーバ上の文書オブジェクトをアクセスする他のクライアントによって用いられる汎用名の表示を含む書き込み要求メッセージをサーバに送り、次に、サーバ・コンピュータから肯定応答メッセージを受信して、この肯定応答メッセージをユーザに通信して、最終的には、ユーザが、統合ユーザ・インタフェースで検索し、編集し、格納するためにどの手段でも起動できるようにする。
本発明の別の態様は、クライアント・コンピュータがサーバ・コンピュータ上で文書オブジェクトを編集することができるようにするためのコンピュータによる実行処理である。この処理には、クライアント・コンピュータからサーバ・コンピュータに読み出し要求メッセージを送信することが伴うが、この場合、この要求メッセージには、文書オブジェクトの表示、メッセージを送出するアプリケーションの表示および文書オブジェクトをクライアント・コンピュータに送出することを示す表示が含まれる。次に、サーバ・コンピュータ上では、要求メッセージの内容中のアプリケーションの表示と受理されたアプリケーションを比較して、この読み出し要求メッセージが許可されたソースからのものであるか否かが決定される。読み取り要求メッセージが許可されたソースからのものである場合、文書オブジェクトのコピーがサーバ・コンピュータ上で検索され、この文書オブジェクトのコピーを含む第１の応答メッセージがクライアント・コンピュータに送られる。読み出し要求メッセージが許可されたソースからのものでない場合には、応答メッセージは、文書オブジェクトのコピーを送出することなく、クライアント・コンピュータに送られる。次に、この文書オブジェクトのコピーは、クライアント・コンピュータ上で編集される。書き込み要求メッセージがクライアント・コンピュータからサーバ・コンピュータに伝送されるが、この場合、書き込み要求メッセージには、クライアント・コンピュータによって編集された文書オブジェクトのコピーと、メッセージを送出するアプリケーションの指示と文書オブジェクトをサーバ・コンピュータ上の位置に格納することを示す表示が含まれる。次に、サーバ・コンピュータ上で、書き込み要求メッセージが許可されたソースからのものであるか否かが、要求メッセージの内容中のアプリケーションの指示と受理されたアプリケーションを比較することによって決定される。書き込み要求メッセージが許可されたソースからのものである場合には、文書オブジェクトは、書き込み要求メッセージ中に表示された位置を用いたファイルとしてサーバ・コンピュータ上に格納され、文書オブジェクトの格納を肯定応答する受け入れ応答メッセージを送出する。書き込み要求メッセージが許可されたソースからのものでない場合には、否認応答メッセージが、文書オブジェクトをサーバ・コンピュータ上に格納することなく、クライアント・コンピュータに送られる。
本発明の別の実施態様が当業者によって導き出されることは、以下の例示的実施態様からも理解されよう。本発明の他の側面には、本発明の1つまたは複数の他の側面および特殊な実施態様と、クライアント・システム、サーバ・システムおよびこれらの組み合わせとしての本発明のこれらの側面の実施態様との組み合わせが含まれる。
本システムの1つの長所は、本発明に従った許可ツールの使用を可能にするために、制御スクリプトをWebサーバにインストールした後では、現行のWebブラウザを変更する必要がないことである。この恩典は、Webブラウザは用いないHTTP法や許可ツールからの要求を扱うPUT法を利用した1実施態様中で得られる。本実施態様によって、許可ツール・システムに対する変更がユーザに見えないようにできるので、ユーザは情報を見るだけ、またはオンライン・サービスを利用するだけでよい。
先行技術に較べて本発明の有する1つの長所は、オンライン・サービスの作成者が単一のクライアント・プログラムとインタフェースを用いて、サーバ上の既存のオンライン・サービスからスクリプトや文書を検索したり、オンライン・サービス用のスクリプトや文書を編集したり、スクリプトや文書の処理結果を、サーバ上のオンライン・サービス領域内の適切な位置にセーブすることができることである。
本発明の別の長所は、オンライン・サービスの作成者が、どのクライアント・マシンからのオンライン・サービス文書でも、そのクライアント・マシンがWebブラウザを実行可能であり、オンライン・サービスをホストするWebサーバとHTTPプロトコルを介して通信可能である限り、編集できることである。クライアント・マシンとサーバ・マシンは、異種型のネットワーク上にあって、そのプロセッサの種類やアーキテクチャやオペレーティング・システムが異なっていてもよい。
本発明の別の長所は、作成ツール・プログラムが、同一タイプのネットワーク接続および、Webサーバと会話するWebブラウザが使用する同一のプロトコル（HTTP）を用いるWebサーバ・プログラムと通信することである。これは、本発明による遠隔編集機能が、オンライン・サービスと通信するWebブラウザをサポート可能などのクライアントからでも作動可能であることを意味する。さらにまた、本発明による遠隔編集には、Webサーバと通信するWebブラウザにとって必要とされる以外のネットワーク連結性プログラムはなにも追加する必要はないことを意味する。
本発明の別の長所は、作成ツールが、HTTPプロトコルおよびWebサーバ・ソフトウエアによって提供される基本的な確認手順を用いていることである。サーバ・マシン上のファイルに対するアクセスは、有効化されたユーザ名とパスワードを持ったサービス作成者に限られることがある。したがって、WWW上のオンライン・サービス用に既に使用されているHTTPプロトコルを用いて作成処理中に最小レベルのセキュリティが提供される。
本システムの別の長所は、作成処理を用いて、WWW上でのオンライン・サービスを有する少なくとも2つの種類の文書オブジェクトすなわち静的HTML文書および、HTML文書を発生させるスクリプト・プログラムを遠隔で検索、編集、格納することができることである。
本発明による方法を用いるオンライン・サービス文書オブジェクトの遠隔編集もまた、先行技術に優先するいくつかの長所をもつが、その内には、クライアント・マシンが遠隔サーバ・マシン上のファイルを読み取りおよび書き込むことの出来るネットワーク・ファイル・システム上での遠隔編集がある。その第1の長所は、本発明によって、Webサーバ・プログラムを用いるだけで、オンライン・サービス文書オブジェクトにアクセスが可能となり、これによって、サーバ・プログラムによって実現される追加のセキュリティ・ルールに適合することができる。第2の長所は、本発明はWebサーバ・マシンの既存のHTTPプロトコル機構を用いるので、サーバ・マシンは、ネットワーク・ファイル・システムを実現したり、クライアント・マシンからの遠隔ファイル・システムへの共用アクセスを実現したりするために必要とされる追加のソフトウエア・プログラムやサーバ・プログラムを実行する必要がないことである。これが長所となる理由は、ソフトウエアを追加するとさらに複雑になり、セキュリティ上のループホールが発生する可能性が増加するからである。第3の長所は、本発明により、Webサーバ・プログラムを用いるだけで、オンライン・サービス文書オブジェクトにアクセス可能となり、これによって、URLとWebサーバ・プログラムの実際のファイル名との間の文書オブジェクト名マッピング規約に適合する。本発明による方法の長所は、クライアント・プログラムもサービス作成者もこのファイル名マッピングを理解する必要はなく、URLを用いるだけでよいことである。
【図面の簡単な説明】
図1は、Web上でのオンライン・サービス動作中のWebブラウザ上での先行技術によるアクティビティのシーケンスを示すフローチャート。
図2は、Web上でのオンライン・サービス動作中のWebサーバ上での先行技術によるアクティビティのシーケンスを示すフローチャート。
図3は、オンライン・サービスの遠隔作成のための作成フレームワークのブロック図。
図4は、オンライン・サービスの遠隔作成中のWebブラウザ上でのステップのシーケンスを示す図。
図5は、オンライン・サービスの遠隔作成中のWebサーバ上でのステップのシーケンスを示すフローチャート。
図6および図6bは、クライアント作成ツールがサーバに送出するメッセージを示す図。
詳細な説明
本発明の例示的な実施態様に関する以下の詳細な説明は、実施例にすぎない。これは図面を参照して読むことが望ましいが、図中、類似の参照記号は類似の部分を示す。
図3は、オンライン・サービスの遠隔作成のためのコンピュータ・システムのブロック図である。このシステムは、クライアントが要求108を送り、応答110を受け取る通信チャネルを経てサーバ・マシン84に接続されているクライアント・マシン80を含んでいる。このクライアント・マシンは、要求108を作成する作成ツール82を有している。サーバ・マシン84は、応答110を作成ツール82に送出するサーバ・プログラム86を有する。サーバ・プログラム86は、要求108を処理し、サーバ・プログラム86によって返却されることになっている応答110を発生する関連の制御スクリプト88を有する。制御スクリプト88は、なんらかの要求108に応答して、オンライン・サービス90および100にアクセスするために使用することが出来る。これらのサービスは作成ツール82を用いて作成し、適切な文書92および102ならびにプログラム94および104を発生させてもよい。一般に、クライアントのオペレーティング・システムは、サーバ上のファイル名を含んだりマッピングしないファイル名スペースを有する。
本発明の1つの実施態様中で、クライアント・マシン80は、Microsoft Windows 3.1のオペレーティング・システムを走行させるクロック速度50MHzのIntel 80486塔載のPCである。作成ツール82は、さまざまな文書エディタの内の、例えばHTMLエディタ、テキスト・エディタなどのどれでもよい。作成ツールの厳密な形態およびエディタの機能性は、ユーザの必要と希望によって異なる。しかしながら、このような作成ツールによって、以下に示すようにHTTP要求メッセージを発生することによって、Webサーバ上での文書オブジェクトの検索や格納が可能となる。この機能性を提供するために、既存のWebブラウザを修正して、格納機能や編集能力を実現してもよい。さらに、HTMLや他の編集用のツールは、以下に説明するように適当なHTTPメッセージを発生することによってサーバ上でのファイルの検索や格納を可能にするように修正すれば、本発明と組み合わせて用いてもよい。カナダ、オンタリオ州トロントのSoftQuad社のHoTMetaLなど多くのHTMLエディタおよび、VisualBasicなど他の文書エディタやプログラム・エディタを用いて、文書やスクリプトを作成することも出来るが、本発明はこれに制限されるものではない。例えば、クライアント・マシン80は、典型的には14,400ボー以上のモデムおよび、通常の電話回線を使用してSLIP接続を通じて走行するTCP/IPプロトコル・ソフトウエアを提供するMicroSoft Windows用のTrumpet 2.0bアプリケーションを用いて、Internetのサービス・プロバイダにダイアルアップ接続してもよい。この装置では、クライアント・マシン80はInternetに接続され、自分自身のInternetアドレスを持つ。
本実施態様中では、サーバ・マシン８４は、オペレーティング・システムBSDi Unixを走行させるクロック速度60MHzのIntel Pentiumプロセッサ搭載のGateway 2000パソコンである。Webサーバ・プログラム86は、Unixオペレーティング・システム用に構成されたCERN Hypertext Transfer Protocol Daemon（HTTPD）サーバである。サーバ・マシン84もまた、14,400ボー以上のモデムを使用し、更に、BSDi Unixオペレーティング・システムに塔載されているTCP／IPおよびSLIPのソフトウエアを用いて、Internetサービス・プロバイダにダイアルアップ接続する。一般にWebサーバ・プログラムは、オペレーティング・システム以外では、文書アクセスを可能にする唯一のプログラムである。このサーバ・プログラムは、ユーザのグループ、ユーザ名、パスワードおよびファイル名を、サーバ・マシン84のオペレーティング・システムとは独立に定義してもよい。この構成によって、クライアント・マシンおよびサーバ・マシンはTCP／IP接続を確立し、Internet上でメッセージを交換する。本実施態様は単なる実施例であることが理解されるべきである。Internet上でHTTPを用いる通信用に適切なサーバ・ソフトウエアやクライアント・ソフトウエアを有しているコンピュータやオペレーティング・システムが多くある。クライアント・マシンとサーバ・マシンはまた、更にローカル・エリア・ネットワーク（LAN）やワイド・エリア・ネットワーク（WAN）で接続してもよいし、同一のマシンであってもよいが、共通の通信チャネル上で一緒に通信する処理は異なる。一般的にTCP／IP接続によって通信が可能となるが、他のデータ転送プロトコルやメッセージ・プロトコル等の他のネットワーク通信プロトコルを用いてもよい。HTTP、FTP、t elnet等の、TCP／IP接続を介しての通信用の様々なメッセージ・プロトコルを用いてもよい。しかし、一般的に、サーバとクライアントは、それぞれのオペレーティング・システムのファイル名スペースを通じてファイルを共有することはない。即ち、クライアントのファイル名スペースは、サーバ上のファイル名を含んだりマッピングしたりしない。言い換えれば、２つのファイル名スペース中のいかなるファイル名の対も同一のファイルには対応しない。InternetやWWWに接続されるクライアント・マシンおよびサーバ・マシンの設定に関する詳細は、フレンツエン等の「Setting up Shop on the Internet」およびWindows Sources（1995年2月版の42、64-67、70、73-74、77-80、106、108、111、113-114、117-120、122、125、128、134-136、138-140、143項）中に説明されている。
クライアント・マシン上のクライアント作成ツール・プログラムとサーバ・マシン上のWebサーバ・プログラム間の通信は、双方のマシンがそれぞれのInternetサービス・プロバイダに接続されている時に発生可能である。サーバ・マシンとクライアント・マシン間の通信は、クライアントがHTTP要求をサーバ108に送出し、サーバがその要求を処理し、その後で、サーバがクライアント110に対してHTTP応答メッセージで応答するという形態を取る。これを遂行するために、クライアント作成ツール・プログラムはサーバ・プログラムに対するTCP/IP接続を確立して、この接続を経てHTTP要求を送る。サーバ・プログラムはこのHTTP要求を受け取り、指示された処理を実行し、この接続を経てHTTP応答メッセージで応答する。最後に、この2つのプログラムはTCP/IP接続を終了する。本実施態様中では、HTTP PUT要求がサーバ・プログラムによって受信されると、サーバ・プログラムは、Tclプログラム言語で書かれた制御スクリプト88を実行する。適切な制御スクリプトが図5を参照して以下に詳細に説明するが、さらに付属書にも記述されている。この付属書には、版権保護の対象となる資料が含まれている。版権保持者は、本付属書を含む特許文書または特許開示は、特許商標局の特許ファイル中に見いだされるので、そのどの作者による電子コピーでの復元にも反対しないが、その他のすべての権利を留保するものとする。
サーバ・プログラムは、現行版のHTTP基準を見れば、POST要求に応答するようにプログラムしてもよい。FTPなどの他のプロトコルを用いてもよい。さまざまなプロトコルやメッセージを、検索と格納の双方の目的に用いてもよい。例えば、FTPを用いて検索したり、HTTPを用いて格納したり、その逆を行うことも出来る。一般的に、本発明の本実施態様中では、同一種類のメッセージを使用して、文書とスクリプト双方の検索と格納の双方の処理が実行される。特殊なメッセージの種類によっても本発明は制限されるものではない。例えば、Webサーバによって、ユーザはカスタム・メッセージ・タイプを定義できる。制御スクリプト・プログラムは要求を処理して、サーバ・マシン上のサービス・データ領域90および100中にオブジェクトを検索したり格納する。これらは、各々のサービス・データ領域に格納されるオブジェクトの内の2つの種類、すなわちHTML言語で作成された静的文書92および102ならびにHTML文書94および104を発生するスクリプト・プログラムである。
図4に、サービス作成者がクライアント・マシンを用いてWebサーバからの文書を検索し、それをクライアント・マシン上で編集し、Webサーバに戻してセーブする、1つの遠隔作成セッション中の典型的な制御の流れを示す。図4は、テキスト・エディタやワード・プロセッサ・プログラムに関して先行技術で周知の編集や、エラー発生時の処置や、図形ユーザ・インタフェースの特徴などを示そうとするものではない。例えば、図4は、ユーザが複数のウィンドウ内で複数の文書を独立に編集したり、ユーザが、文書をセーブしないでいつでも編集セッションをサポートしたり、ユーザが1つのウィンドウ中である文書を検索、編集、セーブをして、次にこれらのステップを同一ウィンドウ中で別の文書にたいして繰り返す様子を示すものではない。さらに、図4は、編集コマンドが先行技術では周知であるので、ユーザがクライアント・マシン上で文書に変更を加えるために用いるこれらの編集コマンドを示すことを意図していない。
図4に示すように、サービス作成者は最初に、ステップ120でクライアント・マシン上で作成ツール・プログラムを実行するが、これによって遠隔編集のための図形ユーザ・インタフェースが提供される。次に作成者はステップ121で、特定のオンライン・サービスからの文書またはスクリプトを編集するように要請し、文書名もしくはスクリプト名、サービス名ならびに、サービスが、そのURLを用いる等により格納されているWebサーバのアドレスを識別する。
次に作成ツール・プログラムはステップ122でHTTP PUT要求を、サービスが格納されているWebサーバに送る。このPUT要求の構造を図6aに示し、その詳細を以下に説明するが、これには許可用ヘッダ・フィールド、MIMEバージョン番号、要求内容の種類およびバイト単位での内容長が含まれる。要求の本体には、要求を検索要求として識別する方法コマンド・フィールドと、検索される文書またはスクリプトにたいするURLを指定するURLコマンド・フィールドとが含まれる。
Webサーバ・プログラムは、ステップ124でHTTP PUTスクリプトを受信すると、それを制御スクリプト88に送る。この制御スクリプトは検索要求のパラメータを検査し、ステップ126で、要求された文書もしくはスクリプト、またはこの要求が満足されなかった理由をサービス作成者に対して指示するエラー・メッセージのどれかを包含する出力ファイルを書く。一般的には、Webサーバ・プログラムはURLを、サーバ・マシンのオペレーティング・システムが用いるファイル名スペース内のファイル名に変換する。このようなマッピングは通常は、サーバ用の構成ファイル中に見いだされる。制御スクリプトはまた、このような変換を実行して、マッピングの自分自身の構成を維持するようにさせることが可能である。この操作は、マッピングが、例えば新しいサービスが作成されたことによって変化をマッピングしたときにサーバを再初期化する必要がないように実行することができる。制御スクリプトの動作の詳細を図5に示し、以下にさらに説明する。制御スクリプトの実行が終了すると、Webサーバは、その実行の結果発生する出力ファイルを、ステップ128で、HTTP応答を通じてクライアント作成ツールに送出する。
次に、作成ツールは、作成者が要求した文書またはスクリプトを含んだHTTP応答を受信し、次いで、ステップ130で、適当なエディタを用いて、新しいウインドウ中にこの文書またはスクリプトを表示する。もしこの応答がサービス作成者に対するエラー・メッセージを含んでいれば、その応答は、要求されたファイルが見つからない場合をエディタ・プログラムが取り扱う通常の方法で取り扱われる。ステップ132で、サービス作成者は検索された文書を適当なエディタを用いて編集する。編集プロセスのどの時点においても、サービス作成者は、ステップ134に注記されているように、コマンドを発行して、最新バージョンの文書またはスクリプトをセーブしてもよい。セーブ・コマンドによって作成ツール・クライアント・プログラムはサーバに交換要求を送る。
交換プロセスはすでに述べた検索プロセスに類似している。作成ツール・プログラムはHTTP PUT要求を、サービスが格納されているWebサーバに送る（ステップ136）。このPUT要求の構造は図6bに示されているが、これには、作成のためのヘッダ・フィールド、MIMEバージョン番号、要求内容の種類およびバイトでの内容長が含まれる。この要求の本文には、要求を交換要求と識別する方法コマンド・フィールド、文書またはスクリプトが格納される予定のURLを指定するURLコマンド・フィールドおよびサーバ上にセーブされるスクリプトまたは文書の内容が含まれる。
検索要求の場合のように、Webサーバ・プログラムがHTTP PUT要求を受け取ると、ステップ138でサーバ・プログラムはそれを制御スクリプト88に渡す。制御スクリプトは交換要求のパラメータを検査し、文書またはスクリプトを、URLで指定された位置にあるサーバ上に格納しようとし（ステップ140）、その要求が完了されたことを示すステータス・メッセージを含むか、または、その要求が満足されなかった理由を示すサービス作成者向けのエラー・メッセージを含む出力ファイルを作成する（ステップ142）。制御スクリプトの動作の詳細を図５に示し、以下に詳細に説明する。制御スクリプトが実行を完了すると、Webサーバは生じた出力ファイルをHTT応答を介してクライアント作成ツールに送る（ステップ144）。
作成ツールがHTTP応答を受け取ると、もしもその応答がエラー・メッセージであれば、そのエラー・メッセージはステップ146でサービス作成者に対して表示される。もしそうでなければ、作成ツールは、文書またはスクリプトがステップ146でWebサーバ・マシン上に首尾よくセーブされたことをユーザに通知する。いずれの場合も、作成ツールはサービス作成者から新しいコマンドが来るのを待つ。
図6aおよび図6bに、作成ツールがWebサーバに送るHTTP要求メッセージの構造を示す。いずれの場合でも、”Content-length”ライン中の”length”のパラメータは、メッセージの内容部分（Content-lengthラインに続くメッセージの部分）中の文字の数に置き換えられる。HTTP要求には、単一の要求ラインと、それに続くHTTPヘッダ中のヘッダ・フィールドと、それに続く空白ラインと、それに続くHTTP要求本文中のコマンド・フィールドと、さらにそれに続くHTTP要求本文中のオプション・データとが含まれる。ヘッダ・フィールドは、ヘッダ・フィールド名と、それに続くコロン（:）と、ヘッダ・フィールド値とを有する。コマンド・フィールドは、コマンド・フィールド名と、それに続くコロン（:）と、コマンド・フィールド値とを有する。要求ラインおよびヘッダ・フィールドのフォーマットは、HTTPプロトコルを指定することによって定義され、他方、コマンド・フィールドを含むHTTP要求本文のフォーマットは本発明による方法によって定義される。
図6aに、「検索」要求用のHTTP要求メッセージのフォーマットを示す。第1のライン201は要求ラインであり、”PUT”方法名211と、それに続く、検索される予定のオブジェクト用のURL221と、さらにそれに続くHTTPプロトコル・バージョン番号231とを有する。第2ライン202は許可ヘッダ・フィールドであり、ヘッダ・フィールド名212、すなわち”Authorization”と、それに続くヘッダ・フィールド値222、この場合は”Basic dmVybWVlcjpEb250Rm9yZ2V0VGhpcw=”を有する。この許可フィールドを用いて、Webサーバによる保護目的のパスワードを搬送してもよい。例えば、Webサーバによって、特定のユーザによるPUT要求メッセージの使用のみを可能とすることも出来ると思われる。また、Webサーバは、ユーザがWebサーバを用いてファイルに書き込みを行おうとする時にパスワードを調べるようにすることも出来ると考えられる。これらの工夫や他のセキュリティ上の工夫を本発明と組み合わせて用いてもよい。第3のライン203はMIMEバージョンのヘッダ・フィールドであり、ヘッダ・フィールド名、例えば”MIME version”213と、そのあとに続くヘッダ・フィールド値223、例えば”1.0”とを有する。第4のライン204は内容タイプ・ヘッダ・フィールドであって、ヘッダ・フィールド名214例えば”Content-type”と、その後に続くヘッダ・フィールド値224例えば”application/x-vermeer”とを有する。第5のライン205は内容長ヘッダ・フィールドであって、ヘッダ・フィールド名例えば”Content-length”と、それに続く、HTTP要求本文の長さをバイト単位で指定するヘッダ・フィールド値とを有する。第6のライン206は、HTTP要求本文からヘッダ・フィールドを分離する空白ラインである。第7のライン207は方法コマンド・フィールドであり、例えば”method”などのコマンド・フィールド名217と、それに続く、”retrieve”などのコマンド・フィールド値227とを有する。第8のライン208はURLコマンド・フィールドであり、コマンド・フィールド名218”url”と、それに続く、検索される予定のサーバ・マシン上のオブジェクト用のURLを指定するコマンド・フィールド値228とを有する。
図6bに、”replace”要求用のHTTP要求メッセージ・フォーマットを示す。第1のライン301は要求ラインであって、”PUT”方法名311と、それに続く、文書とをセーブすることが望ましいサーバ上の位置を指定するURL321と、さらにそれに続くHTTPプロトコル・バージョン番号331とを有する。第2のライン302は許可ヘッダ・フィールドであり、”Authorization”などのヘッダ・フィールド名と、”Basic dmVybWVlcjpEb250Rm9yZ2V0VGhpcw=”などのヘッダ・フィールド値とを有する。第3のライン303はMIMEバージョン・ヘッダ・フィールドであり、ヘッダ・フィールド名例えば”MIME version”と、それに続くヘッダ・フィールド値323例えば”1.0”とを有する。第4のライン304は内容タイプ・ヘッダ・フィールドであり、ヘッダ・フィールド名314、例えば”Content-type”と、それに続くヘッダ・フィールド値324例えば”application/xvermeer”とを有する。第5のライン305は内容長ヘッダ・フィールドであり、ヘッダ・フィールド名315例えば”Content-length”と、それに続く、HTTP要求本文の長さをバイトで指定するヘッダ・フィールド値325を有する。第6のライン306は、HTTP要求本文からヘッダ・フィールドを分離する空白ラインである。第7のラインは方法コマンド・フィールドであり、コマンド・フィールド名317例えば”method”と、それに続くコマンド・フィールド値327例えば”replace”とを有する。第8のライン308は内容タイプ・コマンド・フィールドであり、コマンド・フィールド名318例えば”Content-type”と、それに続く、内容タイプ識別子を指定するコマンド・フィールド値328とを有する。第9のライン309はURLコマンド・フィールドであり、コマンド・フィールド名319例えば”url”と、それに続く、交換される予定のサーバ・マシン上のオブジェクトのURLを指定するコマンド・フィールド値329とを有する。
制御スクリプトがサーバ・マシン上を走行する時の動作を図5を参照にして説明する。すでに述べたように、本実施態様中では、Webサーバ・プログラムは、検索要求または交換要求が作成ツールから到着すると、制御スクリプトをコールする。制御スクリプトはこの検索要求または交換要求を処理して、これらの要求に対する応答としてWebサーバがクライアントに返送する出力ファイルを作成する。
図5に示すように、Webサーバが制御スクリプトをコールすると、制御スクリプトは第1にHTTP要求ヘッダの”Content-type”ヘッダ・フィールドを読み取って、文書の種類を得る（ステップ160）。ヘッダ・フィールド中の文書の種類が”application/x-vermeer”であるかを確認するため試験が実行される（ステップ162）。その要求が作成ツールからのものでなければ、制御スクリプトは出力ファイルにエラー・メッセージを書き込み（ステップ164）、制御スクリプトは終了する。文書の種類が、その要求が作成ツールからのものであることを示していれば、ステップ162で実行された試験の答が”Yes”となり、制御スクリプトはHTTP要求の本文からコマンド・フィールドを読み取る（ステップ166）。コマンド・フィールドが受け入れ可能であるか否かを判断するために試験が実行される（ステップ168）。この試験には：（1）”method”コマンド・フィールドがあるか否かと；（2）”URL”コマンド・フィールドがあるか否かと；および（3）コマンド・フィールドが構文上正確か否かについての決定を含んでいる。コマンド・フィールドが正確でないと、制御スクリプトはステップ170で出力ファイルにエラー・メッセージを書き込み、制御スクリプトは終了する。コマンド・ファイルが受理可能であると、ステップ168で試験は”Yes”を出力し、制御スクリプトは、”method”コマンド・フィールド値が検索要求を指示しているか否かを決定するための試験を実行する（ステップ172）。もし指示していれば、別の試験を実行して、”URL”コマンド・フィールド値中に指定されているファイルが存在していて読み取り可能であるか否かを判断する（ステップ174）。結果が”Yes”であれば、制御スクリプトは、ステップ176でファイル名拡張子を検査することによって内容の種類を設定する。次に、制御スクリプトは、内容の種類を含むHTTP応答ヘッダおよび、指示されたファイルのデータ内容を、出力ファイルに書き込み（ステップ178）、制御スクリプトは終了する。ステップ174での試験の答が”NO”であれば、制御スクリプトはステップ180で出力ファイルにエラー・メッセージを書き込み、制御スクリプトは終了する。
”method”コマンド・フィールドが検索要求を示していなければ、ステップ172での試験の答は”No”であり、コマンド・フィールドが”replace”要求を示しているか否かを判断する試験が実行される（ステップ182）。”method”コマンド・フィールドが”replace”要求を示していなければ、試験182の答は”No”であり、制御スクリプトはステップ194でエラー・メッセージを出力ファイルに書き込み、制御スクリプトは終了する。逆に”method”コマンド・フィールドが”replace”要求を示していれば、ステップ184で別の試験を実行して、”URL”コマンド・フィールド値で与えられているファイルが作成ツールおよびこのユーザによって書き込まれ得るか否かが決定される。例えば、ファイルは、それが現在存在しなければ、またはファイルが存在していて、且つサービス作成者がファイルを書き込む許可を持っていれば作成することができる。許可するか否かはWebサーバによって決定し、ファイルに書き込もうとしているユーザの提供するパスワードが正しいか否か判断するようにしてもよい。許可するか否かはまた、基本的なオペレーティング・システムによって決定して、WebサーバがURLによって指定されたファイルに書き込む許可を持つか否か判断してもよい。ステップ184の試験の結果が”Yes”であれば、制御スクリプトは、”URL”コマンド・フィールド値が指示するファイル中のHTTP要求本文のデータを格納する（ステップ186）。次に、制御スクリプトは、ステップ188で、新しいファイル上に適当なファイル許可を設定し、コマンドの結果を示すステータス・メッセージを出力ファイル中に書き込み（ステップ190）、制御スクリプトは終了する。ファイルに書き込むことができなければ、試験184の答は”No”となり、制御スクリプトはステップ192で出力ファイルにエラー・メッセージを書き込み、制御スクリプトは終了する。
本発明の1つの長所は、クライアント作成ツールが、サーバのファイル名スペースをそれ自身のファイル名スペースにマッピングする必要のないことである。この配慮は、多くのサーバ上に多くのオンライン・サービスを多くの作成者が作成するInternetのような大規模なネットワークでは特に長所となる。この環境下では、文書を比較的容易に遠隔作成できるようになり、ネットワーク・ファイル・システムのような複雑なファイル・システムは必要でなくなる。
本発明の別の長所は、どのWebブラウザによる使用に対しても透明であるようにサーバ上にファイルを格納できることである。制御スクリプトを用いてメッセージの処理を制御することによって、サーバもまた修正する必要はない。サーバは、制御スクリプトを認識するように単純に構成されており、従ってインストールが容易である。
本発明の1実施態様を説明したが、以上の説明は単に説明を目的としたものであり、実施例として示したにすぎないことが理解されるべきである。多くの他の実施態様や修正が可能である。例えば、本発明は、Internet上での使用に限られたり、WWWやHTTP通信プロトコルを用いることに限られるものではない。例えば、ファイル転送プロトコル（FTP）もまた、そのプロトコル中で”get”コマンドや”put”コマンドを用いて使用してもよい。TCP/IP接続を経て通信されるメッセージを用いる他のプロトコルもまた可能である。このようなプロトコルを組み合わせて用いて、検索機能や格納機能を実現してもよい。また、サービス作成者が、遠隔格納機能だけが用いられるようにオンライン・サービスの文書オブジェクトのローカル・コピーを保持することも可能である。さらに、クライアント・プログラムが、プロトコルを用いてクライアントとサーバ間のTCP/IP接続を経てサーバ上で文書やプログラムを修正したり格納したりするようなシステムもまた、本発明の範囲に含まれる。クライアントとサーバはInternetで接続してもよいし、Private Local Networkや広域ネットワークを同一のマシン上に実現してもよい。クライアント作成ツールは、サーバとだけ通信するように構成してもよい。メッセージの処理は、サーバに付加された制御スクリプトによって提供される必要はないが、また、サーバに修正を施すことによって可能にしてもよい。これらの実施態様および他の実施態様は、添付の特許請求の範囲により限定された本発明の範囲と精神内にあると考えられる。
0004306797.tif 000002
0004306797.tif 000003
0004306797.tif 000004
0004306797.tif 000005
0004306797.tif 000006
0004306797.tif 000007
0004306797.tif 000008
0004306797.tif 000009
0004306797.tif 000010
0004306797.tif 000011
0004306797.tif 000012
0004306797.tif 000013
0004306797.tif 000014
0004306797.tif 000015
0004306797.tif 000016
【図１】
0004306797.tif 000017
【図２】
0004306797.tif 000018
【図３】
0004306797.tif 000019
【図４】
0004306797.tif 000020
【図５】
0004306797.tif 000021
【図６Ａ】
0004306797.tif 000022
【図６Ｂ】
0004306797.tif 000023