JP2006048647A - リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置 - Google Patents

リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置 Download PDF

Info

Publication number
JP2006048647A
JP2006048647A JP2005158659A JP2005158659A JP2006048647A JP 2006048647 A JP2006048647 A JP 2006048647A JP 2005158659 A JP2005158659 A JP 2005158659A JP 2005158659 A JP2005158659 A JP 2005158659A JP 2006048647 A JP2006048647 A JP 2006048647A
Authority
JP
Japan
Prior art keywords
workbook
function
remote
computer
call
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
JP2005158659A
Other languages
English (en)
Other versions
JP2006048647A5 (ja
JP5154002B2 (ja
Inventor
Charles D Ellis
ディー.エリス チャールズ
Dan Y Khen
ワイ.ヘーン ダン
Eran Megiddo
メジッド エラン
Ira Levin
レビン イラ
Liviu Asnash
アスナッシュ リビウ
Simon Peyton-Jones
ペイトン−ジョーンズ シモン
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 JP2006048647A publication Critical patent/JP2006048647A/ja
Publication of JP2006048647A5 publication Critical patent/JP2006048647A5/ja
Application granted granted Critical
Publication of JP5154002B2 publication Critical patent/JP5154002B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ワークブックを開示し、リモートファンクションコールを介して呼び出すための方法、システム、および装置を提供する。
【解決手段】 本発明のシステムによれば、クライアントコンピュータは、ワークブックモデルを作成するため表計算アプリケーションプログラムを実行する。ワークブックモデルは、関数名、並びに、モデルの入力および出力として使用されるセルを定義するデータと共に、サーバコンピュータに公開される。ワークブック関数に対するファンクションコールがサーバコンピュータで受信されると、サーバコンピュータは、入力として識別されるワークブックのセルに、ファンクションコールと共に受信した入力パラメータを入れ、ワークブックを再計算する。出力セルに含まれるデータは、リモートファンクションコールに対する応答として返される。
【選択図】 図1

Description

本発明は、リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置に関する。
表計算アプリケーションプログラムの有用性の多くは、ユーザが専門的なコンピュータプログラミング技能を必要とせず、ワークシート(本明細書では、「スプレッドシート」とも呼ぶ)などの組織化された構造内において、データを取得し、アルゴリズム操作を施すことができる点にある。プログラマでないユーザでも、プログラミング言語を学ぶことなく、合計演算や償却演算などを始めとする複雑なデータ関係を指定することができる。プログラマでないユーザは、このように表計算アプリケーションプログラムの機能を利用して、複雑な数値および財務関係をモデル化することができる。
表計算アプリケーションプログラム内で複雑なモデルを定義することに伴う問題の1つは、他のユーザの使用をサポートするために、モデルがカプセル化またはラベル付けされていないことである。他のユーザがモデルにアクセスするのを許可するには、一般に、プログラマの力を借り、コンピュータプログラミング言語を使用して、モデルをコード化する必要がある。その後、モデルのコンパイル済バージョンが公開されれば、他のユーザはそれを利用することができる。しかし、プログラミング言語でモデルをコード化するには、技術を持ったプログラマの力を借りる必要があり、そのため、非常に時間がかかり、費用も高くなりやすい。
あるいは、モデルを含むワークブック(ワークシートまたはスプレッドシートの集まり)は、ファイル共有または電子メールを用いるなどの従来の方式によって、他のユーザと単に共用することもできる。しかし、従来の方式によってモデルを含むワークブックを共用すると、そのワークブックにアクセスした各ユーザに、モデル実装が開示されてしまう。例えば、モデル実装に財産権の対象となるアルゴリズムや計算方法が含まれていることがあるが、それでもそのモデルの利用をユーザに許可する必要のある場合、モデル実装をユーザに対して隠すことができるのが望ましいであろう。現行の表計算アプリケーションプログラムでは、モデルへのアクセスは許可できても、下層の実装へのアクセスを許可しないようにする機能は提供されていない。
本発明の様々な実施形態は、上記のおよびその他の考察に基づいている。
本発明によれば、上記のおよびその他の問題は、リモートファンクションコール(remote function call)によるワークブックモデルへのアクセスを提供する方法、システム、および装置によって解決される。本発明の実施形態を使用することで、従来のようにプログラミング言語によってモデルをコード化する必要なしに、他のユーザとワークブック(「ワークブックモデル」または「モデル」)を共用できるようになる。さらに、ワークブックモデルは、使用のために開示されても、下層のモデル実装を開示することがない。
本発明の一態様によれば、リモートファンクションコールによるワークブックモデルへのアクセスを提供するシステムが提供される。本発明の一実施形態によれば、このシステムは、ワークブックを作成するために表計算アプリケーションプログラムを実行するクライアントコンピュータを含む。ワークブックは、データを格納する1つまたは複数のセルを含むことができ、またモデルを定義するのに使用される、アプリケーション提供のまたはサードパーティのプラグ可能な機能を含むことができる。ワークブックは、外部データソース(クエリテーブルまたはピボットテーブルなど)からデータを取り込むオブジェクトを含むこともでき、他のワークブック関数の呼出しを含むこともできる。ワークブック内の0以上のセルをモデルへの入力として定義することができ、ワークブック内の1以上のセルをモデルからの出力として定義することができる。
表計算アプリケーションプログラムは、1つまたは複数のリモートファンクションコールを介して、ワークブックモデルを利用可能にするためのユーザリクエストを受け取るように動作することもできる。そのようなリクエストに応答して、表計算アプリケーションプログラムは、新しいワークブック関数を定義するデータをユーザから受け取るように動作する。具体的には、ユーザは、関数に名前を付け、入力が存在すれば入力と、関数からの少なくとも1つの出力を定義することができる。例えば、ユーザは、関数への入力として利用されるワークブック内のセルを識別し、各入力に名前を付けることができる。入力は、デフォルト値をもつことができ、場合によっては任意データとして定義することもできる(すなわち、入力が渡されない場合は、デフォルト値が使用される)。ユーザは、関数からの出力として利用されるワークブック内のセルを識別し、各出力に名前を付けることもできる。ユーザは、新しいワークブック関数を公開すべきサーバの所在を指定することもできる。ユーザがこれらのデータを提供した後、ワークブックおよび関数を定義するデータを、サーバコンピュータに公開することが可能となり、サーバコンピュータは、公開されたワークブック関数を求めるリモートファンクションコールを受信し、それに応答するように動作する。
表計算アプリケーションプログラムはさらに、ワークブックのコンテキスト内からリモートワークブック関数を呼び出すように動作する。リモート関数への入力は、ワークブック内のセル、または部分式(sub−formula)内のパラメータとして識別することができる。これらの情報が提供された後、表計算アプリケーションプログラムは、ワークブック関数に、提供された入力を用いてリモートファンクションコールを発行するように動作する。リモートファンクションコールは、簡易オブジェクトアクセスプロトコル(「SOAP:simple object access protocol」)を利用して発行されるウェブサービスコールを含むことができる。その他のタイプのリモートファンクションコールを利用することもできる。
リモート関数からの応答が、表計算アプリケーションプログラムで受信されると、表計算アプリケーションプログラムはさらに、関数からの出力を受け取るように動作する。表計算アプリケーションプログラムは、関数の出力用にユーザによって識別されたワークブック内のセルに、関数からの出力を入れることができ、または、部分式内の出力を利用することができる。このようにして、モデルは、ワークブック内で定義され、サーバコンピュータに公開され、呼出し側アプリケーションに下層のモデル実装を開示することなく、呼び出されることができる。
本発明の態様によれば、このシステムは、ワークブック関数に宛てて送られたリモートファンクションコールを受信し、それに応答するためにサーバプログラムを実行するように動作するサーバコンピュータも含む。具体的には、サーバコンピュータは、ワークブック、並びに、ワークブックに宛てて発行されるリモートファンクションコールを定義するワークブックに関連づけられた関数定義を受信し、それらを保存するように動作する。関数定義は、ワークブック関数の名前と、関数への入力として使用されるパラメータの記述と、関数からの出力として使用されるパラメータの記述とを識別する。サーバコンピュータは、ワークブック関数を開示するようにも動作して、リモートコールの発行を希望するクライアントが、関数を発見できるようにする。ワークブック関数が開示された後、クライアントアプリケーションはワークブック関数を発見し、リモートファンクションコールを使用して、ワークブック関数を呼び出すことができる。
ワークブック関数を呼び出すコールがサーバコンピュータで受信されると、サーバコンピュータは、ワークブックをロードするように動作する。ワークブックがロードされると、サーバコンピュータは、入力として識別されるワークブック内のセルに、ファンクションコールと一緒に受け取った入力パラメータを入れる。ワークブックが別のデータソースへの参照を含む場合、ワークブックを再計算するのに必要なすべてのデータが、再計算の前にデータソースから取り込まれる。その他のワークブック関数への参照を呼び出すこともできる。ワークブックが再計算された後、サーバコンピュータは、関数からの出力として定義されるセルの内容を、ワークブックから取り出すように動作する。これらのセルに含まれるデータは、その後、リモートファンクションコールに対する応答として返される。このようにして、リモートファンクションコールをサポートする任意のタイプのアプリケーションを利用して、サーバコンピュータ上のワークブック関数を呼び出すことができ、その中には、その他のサーバコンピュータから受信するコールも含まれる。本明細書で説明するクライアントおよびサーバコンピュータの両方の機能を実行するのに、単一のコンピュータを利用できることを理解されたい。
本発明は、コンピュータプロセス、コンピューティング装置として、または、コンピュータプログラム製品もしくはコンピュータ読取り可能媒体などの製造品として実施することができる。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化したコンピュータ記憶媒体とすることができる。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化した、搬送波上の伝播信号とすることもできる。
本発明を特徴づける上記および様々な他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することから明らかになるであろう。
今から図面を参照しながら、本発明の様々な態様を説明していくが、図面中、同じ番号は同じ要素を表している。特に、図1およびそれに対応する説明は、本発明の実施形態を実施できる適切なコンピューティング環境についての簡潔で全般的な説明を提供するためのものである。本発明は、一般的な背景として、パーソナルコンピュータのオペレーティングシステム上で実行されるプログラムモジュールと連携して動作するプログラムモジュールを想定して説明されるが、その他のタイプのコンピュータシステムおよびプログラムモジュールと組み合わせても本発明を実施できることは、当業者であれば理解されよう。
一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、およびその他のタイプの構造が含まれる。さらに、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な消費者家電、ミニコンピュータ、およびメインフレームコンピュータなどを始めとする、その他のコンピュータシステム構成によっても本発明を実施できることは、当業者であれば理解されよう。また、通信ネットワークを介して接続されたリモート処理装置によってタスクが実行される分散コンピューティング環境でも、本発明を実施することができる。分散コンピューティング環境では、ローカルおよびリモートメモリ記憶装置の両方に、プログラムモジュールを配置することができる。
図1を参照しながら、本発明の複数の実施形態に使用できる例示的な動作環境について説明する。図1に示すように、ネットワーク10は、クライアントコンピュータ2と、複数のサーバコンピュータ12A〜12Cとを相互接続する。ネットワーク10には、ローカルエリアネットワークや、インターネットなどのワイドエリアネットワークを始めとする、任意のタイプのコンピューティングネットワークが含まれ得ることを理解されたい。ネットワーク10は、クライアントコンピュータ2と、サーバコンピュータ12A〜12Cと、ネットワーク10に接続される、またはネットワーク10からアクセスできる、図示されていないその他のコンピュータシステムとが、互いに通信できるようにするための媒体を提供する。
クライアントコンピュータ2には、1つまたは複数のアプリケーションプログラムを実行できる、汎用デスクトップまたはラップトップコンピュータが含まれる。特に、本発明の様々な実施形態によれば、クライアントコンピュータ2は、表計算クライアントアプリケーション4を実行するように動作する。当業者であれば知っているように、表計算クライアントアプリケーションプログラム4は、予算作成、財務予測実行、ならびにその他の財務および数値関係の作業のための機能を提供する。これらの機能を提供するため、セルを使用して、データ値を整理することができ、式を使用して、セル間の関係を定義することができる。1つのセルを変更すると、それに関係するセルも変更される。表計算プログラムは通常、出力用のグラフ機能と、テキスト、数値、およびグラフ特徴に関する様々な選択可能な形式とを提供する。
本発明の実施形態によれば、表計算クライアントアプリケーション4は、ワークブック6を作成するために利用することができる。ワークブック6は、表計算プログラムによって作成され、1つまたは複数のワークシートを含むファイルである(本明細書では、ワークシートのことを「スプレッドシート」とも呼ぶ)。ワークシートは、表計算プログラム内に行と列とで構成され、画面上に表示される1枚のページである。これらの機能を使用して、ユーザは、財務上および数値上の問題および解法のモデルを作成することができる。そのようなワークブックモデルをどのように公開するのか、またリモートファンクションコールを使用して、それをどのように利用するのかについては、以下にさらに詳しく説明する。
本発明の一実施形態によれば、表計算クライアントアプリケーション4には、ワシントン州レドモンドのMICROSOFT CORPORATIONが販売するEXCEL表計算アプリケーションプログラムが含まれることを理解されたい。しかし、本明細書で説明する本発明の様々な態様は、その他の製造業者が販売するその他の表計算アプリケーションプログラムでも利用できることを理解されたい。さらに、本明細書で説明する本発明の態様は、表計算アプリケーションプログラムを前提として提示されてはいるが、その他のタイプのアプリケーションプログラムを利用しても、本発明の様々な態様を実施できることを理解されたい。
本発明の他の実施形態によれば、クライアントコンピュータ2は、簡易オブジェクトアクセスプロトコル(「SOAP」)と互換性のあるプログラム8を実行するように動作することもできる。以下でさらに詳しく説明するが、ワークブックモデルは、サーバコンピュータ12Aに公開することができる。その後、サーバコンピュータ12Aは、そのワークブックモデルを、リモートファンクションコールを使用して呼び出す外部の者に開示することができる。例えば、ウェブサービスを使用して、ワークブックモデルを開示するワークブック関数にコールを発行することができる。本発明の一実施形態では、ウェブサービスコールは、SOAPプロトコルを利用するリモートファンクションコールを含むことができる。SOAPコールは、表計算クライアントアプリケーション4またはSOAP互換プログラム8によって発行することができる。SOAP互換プログラム8は、SOAPリモートプロシージャコールを発行できる任意のアプリケーションまたはプログラム言語を含むことができる。
上で説明したコンピュータ2の機能は、2つのコンピューティング装置に分割できることをさらに理解されたい。例えば、一方のコンピューティング装置は、ワークブック関数を公開するために、表計算アプリケーション4を実行するように動作することができ、もう一方のコンピューティング装置は、ワークブック関数を呼び出すために、SOAP互換プログラム8などのクライアントアプリケーションを実行するように動作することができる。クライアントアプリケーションも、関数を呼び出すワークブックを作成する1つのアプリケーションと、実際に呼出しを実行するもう1つのアプリケーションとに分割することができる。例えば、第2のアプリケーションは、ワークブック関数を呼び出すワークブックを実行するサーバとすることができる。
表計算サーバアプリケーション13は、ディスプレイ画面を使用しない(ヘッドレス)で実行できる、サーバベースのアプリケーションプログラムを含む。表計算サーバアプリケーション13は、サーバコンピュータ上で表計算クライアントアプリケーション4の多くの機能を実行するように動作する。例えば、表計算サーバアプリケーション13は、ワークブック6をロードし、計算することができる。本明細書において説明するように、表計算サーバアプリケーション13は、ワークブックおよびワークブック関数を記述するデータを受信するための機能も提供する。表計算サーバアプリケーション13はまた、ワークブック関数を外部の呼出し者に開示し、リモートファンクションコールを受信し、それに応答する。表計算クライアントアプリケーション4および表計算サーバアプリケーション13によって実行される様々な機能については、図2〜図8に関連させて、以下にさらに詳しく説明する。
次に図2を参照しながら、本発明の様々な実施形態で利用されるコンピュータ2の例示的なコンピュータ構成について説明する。図2に示すコンピュータ構成は、従来のデスクトップまたはラップトップコンピュータを説明するものであり、中央処理装置5(「CPU」)と、ランダムアクセスメモリ9(「RAM」)および読取り専用メモリ(「ROM」)11を含むシステムメモリ7と、メモリをCPU5に結合するシステムバス12とを含む。基本入出力システムは、起動時などにコンピュータ内の要素間での情報転送を支援する基本ルーチンを含み、ROM11に保存される。コンピュータ2は、オペレーティングシステム18、アプリケーションプログラム、およびその他のプログラムモジュールを保存するための大容量記憶装置24をさらに含み、これらのプログラムについては、以下でより詳しく説明する。
大容量記憶装置24は、バス12に接続される大容量記憶コントローラ(図示せず)を介して、CPU5に接続される。大容量記憶装置24と、それに関連するコンピュータ読取り可能媒体は、コンピュータ2に不揮発性記憶を提供する。本明細書に含まれるコンピュータ読取り可能媒体の説明は、ハードディスクまたはCD−ROMドライブなどの大容量記憶装置に関係するが、コンピュータ2によってアクセスできる任意の利用可能な媒体を、コンピュータ読取り可能媒体とし得ることは、当業者であれば理解されよう。
例えば、コンピュータ読取り可能媒体には、コンピュータ記憶媒体や、通信媒体が含まれ得るが、これらに限定されるものではない。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術によって実施された、揮発性および不揮発性、着脱可能および着脱不能媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、もしくはその他のソリッドステートメモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、もしくはその他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくはその他の磁気記憶装置、または所望の情報を保存するのに使用でき、コンピュータ2によってアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。
本発明の様々な実施形態によれば、コンピュータ2は、インターネットなどのネットワーク10を介するリモートコンピュータへの論理コネクションを使用して、ネットワーク環境で動作することができる。コンピュータ2は、バス12に接続されるネットワークインタフェースユニット20を介して、ネットワーク10に接続することができる。ネットワークインタフェースユニット20は、その他のタイプのネットワークおよびリモートコンピュータシステムに接続するためにも利用できることを理解されたい。コンピュータ2は、キーボード、マウス、または電子ペン(図2には図示せず)を始めとする、数々の他の装置から入力を受け取り、処理するための入出力コントローラ22も含むことができる。同様に、入出力コントローラ22は、ディスプレイ画面、プリンタ、またはその他のタイプの出力装置に出力を提供することができる。
上で簡単に述べたように、コンピュータ2の大容量記憶装置24およびRAM9には、ワシントン州レドモンドのMICROSOFT CORPORATIONが販売するWINDOWS(登録商標) XPオペレーティングシステムなど、ネットワーク対応のパーソナルコンピュータの動作を制御するのに適したオペレーティングシステム18を始めとする、数々のプログラムモジュールや、データファイルを保存することができる。大容量記憶装置24およびRAM9は、1つまたは複数のプログラムモジュールも保存することができる。特に、大容量記憶装置24およびRAM9は、上で説明したように、表計算クライアントアプリケーション4、およびSOAP互換プログラム8を保存することができる。大容量記憶装置24およびRAM9は、表計算クライアントアプリケーション4によって作成されたワークブック6も保存することができる。
サーバコンピュータ12A〜12Cは、図2に示し上述した従来のコンピューティング構成要素の多くを含み得ることを理解されたい。さらに、サーバコンピュータ12Aは、表計算サーバアプリケーション13を保存し、また実行するように動作することができる。ファイルサーバコンピュータ12Cは、ワークブック6など、リポジトリ14に保存されたファイルを求めるリクエストを受け取り、それに応答するためのファイルサーバアプリケーション28を保存し、また実行するように動作することができる。サーバコンピュータ12A〜12Cは、図2には示されていないが当業者には知られている、その他の従来の構成要素を含み得ることを理解されたい。
次に図3を参照しながら、ワークブックモデルをワークブック関数としてサーバコンピュータに公開するために、表計算クライアントアプリケーションプログラム4によって実行されるプロセスを示した例示的なルーチン300について説明する。本明細書で提示するルーチンの説明を読むときは、本発明の様々な実施形態の論理動作が、(1)コンピューティングシステム上で実行される一連のコンピュータ実施の工程またはプログラムモジュールとして、かつ/または(2)コンピューティングシステム内の相互接続されたマシン論理回路または回路モジュールとして実装され得ることを理解されたい。実装方法は選択に任されており、本発明を実施するコンピューティングシステムの性能要件に依存する。したがって、図3、図5、および図7に示され、本明細書で説明する本発明の実施形態を構成する論理動作は、動作、構造化された装置、工程、またはモジュールなどと様々に呼ばれる。これらの動作、構造化された装置、工程、およびモジュールが、添付の特許請求の範囲において説明される本発明の主旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用デジタルロジック、および、これらの任意の組み合わせによって実施できることは、当業者であれば理解されよう。
ルーチン300は動作302で開始され、ユーザは、表計算クライアントアプリケーション4を利用して、ワークブック6を作成する。特に、本明細書で説明するように、ユーザは、表計算クライアントアプリケーション4によって提供される様々な機能を利用して、モデルを含むワークブックを作成することができる。本明細書で定義されるワークブックモデルという用語には、数値解析を実行するように作成され、モデルへの入力として利用できる1つもしくは複数のセル、並びに、モデルからの出力を提供する1つもしくは複数のセルを含むワークブックが含まれる。ワークブックモデルを作成するために、表計算クライアントアプリケーション4内において利用できる様々な機能および方法は、実質的に制限がなく、当業者によく知られているものである。
ルーチン300は、動作302から動作304に進み、表計算クライアントアプリケーション4は、ユーザがワークブックモデルをワークブック関数としてサーバコンピュータ12Aに公開するリクエストを発行したかどうかを決定する。ユーザが、そのようなリクエストを発行していない場合、ルーチン300は、動作302に戻り、ユーザはモデルの作成を続行することができる。ユーザが、ワークブックモデルを公開するリクエストを発行した場合、ルーチン300は、動作306に進む。
動作306において、表計算クライアントアプリケーション4は、ユーザからワークブック関数の名前を受け取る。この名前によって、関数を含むワークブック並びにワークブック内の関数自体が識別される。この名前は、リクエストされるリモートファンクションコールを識別するために、呼出しを行うアプリケーションによって後に利用される。名前を受け取った後、ルーチン300は、動作308に進み、ユーザは、1つまたは複数のセルを関数への入力として識別することができる。動作310において、ユーザは各入力にテキスト形式で名前を付けることができる。例えば、ユーザはワークブック内のセルを選択して、そのセルを入力として識別することができ、その後、その入力を識別するために、名前「資産価格」を付けることができる。入力セルとその名前が、ユーザによって識別された後、ルーチン300は、動作310から動作312に進む。
動作312において、ユーザは、1つまたは複数のセルを関数からの出力として識別することができる。動作314において、ユーザは各出力にテキスト形式で名前を付けることができる。例えば、動作312および動作314において、ユーザは、ワークブック内のセルを選択して、そのセルを出力として識別することができ、その後、その出力を識別するために、名前「コール価格」を付けることができる。出力セルとその名前が、ユーザによって識別された後、ルーチン300は、動作314から動作316に進む。
ルーチン300は、動作314から動作316に進み、指示されたワークブック関数を定義するデータを含むワークブック6が、表計算サーバアプリケーション13に公開される。例えば、ワークブック6の公開には、サーバコンピュータ12Aにワークブック6をアップロードすること、または、プログラム的にワークシートを生成し、それをサーバコンピュータ12Aにサーバアプリケーションプログラムインタフェース(「API」)を介して送信することが含まれる。ワークブック6が表計算サーバアプリケーション13に公開されると、ワークブック6は、リポジトリ14に保存される。また、表計算サーバアプリケーション13は、ワークブック6の存在を通知され、その後、ワークブック内で定義されるワークブック関数を、ウェブサービスを介して開示することもできる。ワークブック関数の名前、入力および出力セル、並びに、それらの名前を識別するデータも、ワークブックと一緒にサーバ12Aに公開される。
ワークブック6がリポジトリ14に伝えられ、表計算サーバアプリケーション13によって解析された後、SOAP互換プログラム8または表計算クライアントアプリケーション4などのクライアントアプリケーションを利用して、サーバコンピュータ12A上のワークブック関数を呼び出すことができる。関数を呼び出すために表計算クライアントアプリケーション4によって実行される様々な機能、並びに、ワークブック関数を開示するためおよびファンクションコールを受信しそれに応答するために、表計算サーバアプリケーション13によって実行される様々な機能については、図5〜図8とともに、以下にさらに詳しく説明する。ルーチン300は、動作316から動作318に進み、そこで終了する。
次に、図4を参照しながら、ワークブック関数を含むワークブックモデルを公開するための例示的なユーザインタフェースについて説明する。図4に示すユーザインタフェース30は、ワークブック関数をサーバコンピュータ12Aに公開するよう求めるユーザリクエストに応答して、ユーザに提供される。ユーザインタフェース30は、カレントワークシート32の一部を表示することができる。ユーザは、カレントワークシート32内に示される各セルを選択して、そのセルを関数への入力として、または関数からの出力として識別することができる。
ワークブック関数の入力の定義を支援するため、ユーザは、カレントワークシート32内の1つまたは複数のセルを選択することができる。ユーザは次に、選択されたセルを新しい入力として追加するために、ユーザインタフェースボタン36を選択することができる。次に、ユーザは入力の名前をリストボックス34に入力することができる。このようにして、ユーザは、ワークブック関数への入力として、カレントワークシート32の必要な数だけのセルを定義することができる。同様に、ユーザは、カレントワークシート32の1つまたは複数のセルを選択し、次に、そのセルを関数からの出力に指定するために、ユーザインタフェースボタン40を選択することができる。次に、各出力引数に名前を付けるため、リストボックス38を利用することができる。図4に示された実施例は、オプションのコール価格およびプット価格を計算するためのモデルを定義するワークブック32を示している。セルC2〜C7は入力として定義され、セルF2〜F3は出力として定義されている。
図4に示すユーザインタフェース30は、ユーザがそこに関数名をタイプできるテキストボックス42も提供する。ユーザは、テキスト形式の関数説明をテキストボックス44に提供することもできる。最後に、ユーザは、新しいワークブック関数を公開すべきサーバコンピュータ12Aの所在をテキストボックス46に入力して、識別することができる。これらの情報を提供し終った後、ユーザは、ワークブックを、ワークブック関数を説明するメタデータも含めて、サーバコンピュータ12Aに公開するために、ボタン48を選択することができる。
次に図5Aに移って、サーバコンピュータ12Aによって開示されるワークブック関数を定義し、公開するための表計算アプリケーションプログラム4の動作を示した例示的なルーチン500について説明する。先に説明したように、本明細書では、表計算アプリケーションプログラム4は、ワークブック関数を呼び出すものとして説明されることを理解されたい。しかし、ワークブック関数は、リモートファンクションコール互換のその他の任意タイプのコンピュータプログラムによっても呼び出すことができる。例えば、その他のサーバコンピュータ、カスタムプログラムコード、その他のタイプのアプリケーションプログラム、およびその他の多くのタイプのコンピュータプログラムである。
ルーチン500は、動作502によって開始され、ユーザは、表計算クライアントアプリケーション4を利用して、上で説明した方法で、ワークブックを作成する。ルーチン500は、動作502から動作504に進み、表計算クライアントアプリケーション4は、ユーザが、サーバコンピュータ12Aから利用可能なワークブック関数を利用するリクエストを発行したかどうかを判定する。ユーザが、そのようなリクエストを発行していない場合、ルーチン500は動作502に戻り、ユーザはモデルの作成を続行することができる。ユーザが、リモートワークブック関数を利用するリクエストを発行した場合、ルーチン500は動作506に進む。
動作506において、ユーザからリクエストされた関数の名前を受け取る。サーバコンピュータ12Aから、利用可能なワークブック関数とそのパラメータとのリストを見つけ出し、取り出すことができる。ユーザが利用するリモートワークブック関数を識別した後、ルーチン500は、動作508に進み、ユーザはワークブック関数への入力として利用されるワークブックセルを選択する。具体的には、ユーザは、関数の各入力に1つのセルを割り当てる。割り当てられたセル内のデータは、その後、リモートファンクションコールを発行するときに、関数への入力として提供することができる。動作510において、同様の方法で、ユーザは関数からの出力を入れるワークブックセルを選択する。ルーチン500は動作511に進み、そこで終了する。
次に図5Bに移って、ウェブサービスコールを介してワークブック関数を呼び出すための例示的なルーチン550について説明する。ルーチン550は、動作511で開始され、ファンクションコールのための個々の入力パラメータ名と共に、入力セルからデータを取り出すことができる。動作512において、リクエストされた関数に対するウェブサービスコールが発行される。動作514において、表計算クライアントアプリケーション4は、サーバコンピュータ12Aから、ファンクションコールからの出力を含む応答を受信する。動作516において、受信された出力は、ユーザが出力用に定義したワークブックのセル位置に入れられる。図8に、ワークブック70の一部が示されている。上で説明したように、セル72および74は、ワークブック関数からの出力を含むように定義される。図8に示すように、ワークブック関数によって計算され表計算クライアントアプリケーション4に返される値は、ワークブック70の適切なセルに入れられる。ルーチン550は、動作516から動作518に進み、そこで終了する。
次に図6を参照しながら、サーバホスト型のワークブック関数を呼び出すリモートファンクションコールを生成するための例示的なユーザインタフェースについて説明する。図6に示すユーザインタフェース50は、リモートワークブック関数を利用するためのユーザによるリクエストに応答して、表計算クライアントアプリケーション4によって表示される。ユーザインタフェース50には、カレントワークブック52の表示が含まれ、そこにはワークブックの1つまたは複数のセルが含まれる。
ユーザインタフェース50には、リクエストされるワークブック関数への各入力を識別するリストボックスも含まれる。ユーザは、ワークブック52の任意のセルを選択し、その後、そのセルを関数の入力に割り当てるため、ボタン58を選択することができる。同様に、リストボックス60は、名前によって関数の各出力を識別する。ユーザは、ワークブックのセルを関数の出力に割り当てるため、ワークブック52の任意のセルを選択し、ボタン62を選択することができる。ワークブック52のセルを各入力および各出力に割り当てた後、所望のリモートファンクションコールを発行するため、ユーザはユーザインタフェースボタン64を選択することができる。
次に図7に移って、ウェブサービスを介して開示されるワークブック関数に宛てたコールを受信し、それに応答するための表計算サーバアプリケーション13の動作を示した例示的なルーチン700について説明する。ルーチン700は、動作702で開始され、表計算サーバアプリケーション13は、利用可能なワークブック関数を開示する。表計算サーバアプリケーション13が様々なワークブック関数を開示した後、SOAP互換プログラム8または表計算クライアントアプリケーション4などのクライアントアプリケーションは、利用可能なワークブック関数を見つけ出し、特定の関数に宛てたコールを発行することができる。
ルーチン700は、動作702から動作704に進み、表計算サーバアプリケーション13は、特定の関数に宛てたリモートファンクションコールを受信する。コールは、関数への各入力を識別するデータと、各入力に値を提供するデータとを含む。ルーチン700は、動作704から動作706に進み、表計算サーバアプリケーション13は、受信コールが宛てられたワークブック関数を含むワークブック6をロードする。ワークブック6が表計算サーバアプリケーション13によってロードされた後、ルーチン700は、動作708に進み、表計算サーバアプリケーション13は、ロードしたワークブックの適切なセルに、ウェブサービスコールによって提供された入力を入れる。ルーチン700は、動作708から動作710に進む。
動作710において、表計算サーバアプリケーション13は、ワークブック6が、別のデータソースまたは別のワークブック関数への参照を含むかどうかを決定する。例えば、上で簡単に説明したように、ワークブックはデータソース16などのデータソースへの参照を含むことができる。ワークブック6が別のデータソースへの参照を含む場合、ルーチン700は、動作712に分岐し、表計算サーバアプリケーション13は、ワークブック6を計算するのに必要なデータを求めてデータソース16に問い合せを行う。これらのデータを表計算サーバアプリケーション13が受信した後、ワークブック6は、受信データを用いて更新される。
動作710において、ワークブック6は別のデータソースへの参照を含まないと決定された場合、ルーチン700は、動作714に進む。動作714において、表計算サーバアプリケーション13は、ワークブック6の内容を再計算し、それにはワークブック関数の計算も含まれる。ルーチン700は、動作714から動作716に進み、表計算サーバアプリケーション13は、ワークブック関数が定義されたときに出力として識別されたワークブックモデルのセルの内容を取り出す。次に、ルーチン700は動作718に進み、表計算サーバアプリケーション13は、ワークブック関数の出力からのデータを含むウェブサービス応答(Web service reply)を準備する。動作720において、応答が、最初のウェブサービスリクエストに対する応答として、クライアントコンピュータ2に送信される。クライアントコンピュータ2は、その後、上で説明した方法で、受信した出力データを、適切なセルに入れることができる。ルーチン700は、動作720から動作722に進み、そこで終了する。
上述の説明に基づいて、本発明の様々な実施形態には、ウェブサービスを介してワークブック関数を開示し、呼び出すための方法、システム、装置、およびコンピュータ読取り可能媒体が含まれることを理解されたい。上記の明細書、実施例、およびデータは、本発明の構成の製造および用途についての完全な説明を提供する。本発明の主旨および範囲から逸脱することなく、本発明の数多くの実施形態が可能であり、本発明は、以下に添付の特許請求の範囲によって確定される。
本発明の様々な実施形態で利用され、提供される複数のコンピュータシステムの態様を示すコンピュータネットワーク図である。 本発明の様々な実施形態で利用され、また提供されるクライアントコンピュータシステムの態様を示すコンピュータシステム構成図である。 本発明の一実施形態によってワークブック関数をサーバコンピュータに公開するプロセスの態様を示すフローチャートである。 本発明の一実施形態によってワークブック関数の入力および出力セルをユーザが定義できる機能を提供する本発明の一態様を示す画面図である。 本発明の一実施形態によってウェブサービスを介してワークブック関数を定義するプロセスの態様を示すフローチャートである。 本発明の一実施形態によってウェブサービスを介してワークブック関数を呼び出すプロセスの態様を示すフローチャートである。 リモートファンクションコールを介してワークブック関数を呼び出すときに入力および出力として利用されるセルをユーザが定義できる機能を提供する本発明の一態様を示す画面図である。 本発明の一実施形態によってワークブックモデルに対するリモートファンクションコールを受信し、それに応答するときにサーバコンピュータによって実行されるステップを示すフローチャートである。 リモートファンクションコールを介してワークブック関数を呼び出した後のワークブックの内容を示す画面図である。
符号の説明
30、50 ユーザインタフェース
32、52 カレントワークシート
70 ワークブック

Claims (15)

  1. リモートファンクションコールによってワークブックモデルにアクセスする方法であって、
    前記ワークブックモデルを定義する機能を提供するステップと、
    関数を定義するデータを含み、前記ワークブックモデルをリモートファンクションコールによって利用可能にするためのリクエストを受信するステップと、
    ワークブックおよび前記関数を定義する前記データを、前記関数に対するリモートコールを受信し、それに応答するように動作するサーバコンピュータに公開するステップと、
    を備えることを特徴とする方法。
  2. 前記関数を定義する前記データは、前記関数の名前を含むことを特徴とする請求項1に記載の方法。
  3. 前記関数を定義する前記データは、前記関数の入力として利用される1つまたは複数のワークブックセルの識別情報、並びに、各セルに対応する名前を含むことを特徴とする請求項2に記載の方法。
  4. 前記関数を定義する前記データは、前記関数の出力として利用される1つまたは複数のワークブックセルの識別情報、並びに、各セルに対応する名前を含むことを特徴とする請求項3に記載の方法。
  5. 前記サーバコンピュータに1つまたは複数の入力パラメータと共にリモートファンクションコールを発行するステップと、前記サーバコンピュータから1つまたは複数の出力パラメータを受信するステップとをさらに備えることを特徴とする請求項4に記載の方法。
  6. 第2のワークブックのコンテキスト内からリモートワークブック関数を呼び出すリクエストを受信するステップと、
    前記リクエストに応答して、呼び出される前記リモートワークブック関数の識別情報、前記リモートワークブック関数への入力用に利用される前記第2のワークブック内の1つまたは複数のセルの識別情報、並びに、前記リモートワークブック関数からの出力を入れる前記第2のワークブック内の1つまたは複数のセルの識別情報を受信するステップと、
    入力用に使用される前記1つまたは複数のセルの内容と共に、前記リモートワークブック関数に対するリモートファンクションコールを発行するステップと、
    前記コールに応答して、前記リモートワークブック関数から1つまたは複数の出力を受信するステップと、
    前記リモートワークブック関数から受信した前記出力を、前記リモートワークブック関数からの出力を入れる前記1つまたは複数のセルに入れるステップと、
    をさらに備えることを特徴とする請求項4に記載の方法。
  7. コンピュータによって実行されたとき、請求項1に記載の方法をコンピュータに実行させるコンピュータ実行可能命令を記憶することを特徴とするコンピュータ読取り可能媒体。
  8. 請求項1に記載の方法を実行可能なコンピュータ制御装置。
  9. リモートファンクションコールによってワークブック関数へのアクセスを提供する方法であって、
    ワークブックおよび前記ワークブック用の関数定義を受信するステップであって、前記関数定義は、前記ワークブック関数の名前、前記ワークブック関数用の入力として使用される前記ワークブック内の1つまたは複数のセルの記述、並びに、前記関数用の出力として使用される前記ワークブック内の1つまたは複数のセルの記述とを含むことと、
    1つまたは複数の入力パラメータを含む、前記ワークブック関数に宛てたリモートファンクションコールを受信するステップと、
    前記ワークブックをロードするステップと、
    前記ワークブック関数用の入力として使用される前記ワークブック内の前記1つまたは複数のセルに、前記入力パラメータを入れるステップと、
    前記ワークブックを計算するステップと、
    前記関数用の出力として使用される前記ワークブック内の前記1つまたは複数のセルの内容を取り出すステップと、
    前記リモートファンクションコールへの応答として、前記内容を返すステップと、
    を備えることを特徴とする方法。
  10. 前記ワークブックを計算する前記ステップの前に、
    前記ワークブックが外部データソースまたは別のワークブック関数への参照を含むかどうかを決定するステップと、
    前記ワークブックが外部データソースまたは別のワークブック関数への参照を含むとの決定に応答して、参照データを求めて前記データソースに問い合せを行い、前記ワークブックに前記データを入力するステップと、
    をさらに備えることを特徴とする請求項9に記載の方法。
  11. コンピュータによって実行されたとき、請求項9に記載の方法をコンピュータに実行させるコンピュータ実行可能命令を記憶することを特徴とするコンピュータ可読媒体。
  12. 請求項9に記載の方法を実行可能なコンピュータ制御装置。
  13. リモートファンクションコールによってワークブックモデルにアクセスするシステムであって、
    前記ワークブックモデルを定義する機能を提供し、関数定義を含む、前記ワークブックモデルをリモートファンクションコールによって利用可能にするためのリクエストを受信するように動作し、また、前記関数に対するリモートコールを受信し、それに応答するように動作するサーバコンピュータに、前記ワークブック並びに前記関数定義を公開するようにも動作するクライアントコンピュータと、
    前記クライアントコンピュータから前記ワークブックと関数定義とを受信し、1つまたは複数の入力パラメータを含むリモートファンクションコールを受信し、前記ワークブックをロードし、前記関数定義で指定されたセルに前記入力パラメータを入れ、前記ワークブックを計算し、前記関数用の出力として使用される前記関数定義によって指定された1つまたは複数のセルの内容を取り出し、前記セルの前記内容を前記リモートファンクションコールへの応答として返すように動作するサーバコンピュータと、
    を備えることを特徴とするシステム。
  14. 前記関数定義は、前記関数の名前と、前記関数の入力として利用される1つまたは複数のワークブックセルの識別情報および各セルに対応する名前と、前記関数の出力として利用される1つまたは複数のワークブックセルの識別情報および各セルに対応する名前とを含むことを特徴とする請求項13に記載のシステム。
  15. 前記ワークブックを計算する前に、前記サーバコンピュータがさらに、
    前記ワークブックが外部データソースへの参照を含むかどうかを決定し、
    前記ワークブックが外部データソースへの参照を含むとの決定に応答して、参照データを求めて前記データソースに問い合せを行い、前記ワークブックに前記データを設定するように動作することを特徴とする請求項14に記載のシステム。
JP2005158659A 2004-07-30 2005-05-31 リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置 Expired - Fee Related JP5154002B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/903,781 US8578399B2 (en) 2004-07-30 2004-07-30 Method, system, and apparatus for providing access to workbook models through remote function cells
US10/903,781 2004-07-30

Publications (3)

Publication Number Publication Date
JP2006048647A true JP2006048647A (ja) 2006-02-16
JP2006048647A5 JP2006048647A5 (ja) 2008-07-10
JP5154002B2 JP5154002B2 (ja) 2013-02-27

Family

ID=34940012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005158659A Expired - Fee Related JP5154002B2 (ja) 2004-07-30 2005-05-31 リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置

Country Status (10)

Country Link
US (2) US8578399B2 (ja)
EP (1) EP1622016A3 (ja)
JP (1) JP5154002B2 (ja)
KR (1) KR101153002B1 (ja)
CN (1) CN1728127B (ja)
AU (1) AU2005202285B2 (ja)
BR (1) BRPI0501957B1 (ja)
CA (1) CA2508537C (ja)
MX (1) MXPA05005799A (ja)
RU (1) RU2408074C2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505115A (ja) * 2012-01-25 2015-02-16 マイクロソフト コーポレーション ドキュメント通信ランタイムインターフェース

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664804B2 (en) 2004-06-01 2010-02-16 Microsoft Corporation Method, system, and apparatus for exposing workbook ranges as data sources
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US8578399B2 (en) 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US9009582B2 (en) * 2004-11-19 2015-04-14 Google Inc. Converting spreadsheet applications to web-based applications
WO2006095365A2 (en) * 2005-03-11 2006-09-14 Suresh Sambandam A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
US8307119B2 (en) 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US20080229184A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Private sheets in shared spreadsheets
US10055468B2 (en) * 2007-04-30 2018-08-21 Wolfram Research, Inc. Access to data collections by a computational system
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
CN101561756B (zh) * 2009-05-26 2013-06-19 珠海金山软件有限公司 通过办公软件获取网络函数结果进行分析的方法及装置
GB2470943A (en) * 2009-06-11 2010-12-15 T B I Refunds Ipr Ltd Converting a large data file to a spreadsheet format to allow processing using remote procedure calls
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9075787B2 (en) * 2010-11-30 2015-07-07 Think-Cell Software Gmbh Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US10210151B2 (en) * 2012-12-17 2019-02-19 Thomson Reuters (Grc) Llc Dynamic function builder
US9875226B1 (en) * 2013-12-20 2018-01-23 Google Llc Performing server-side and client-side operations on spreadsheets
US9959098B1 (en) * 2015-03-15 2018-05-01 Sigma Sciences Limited Data processing systems and methods
US11170165B1 (en) 2015-03-15 2021-11-09 Sigma Sciences Limited Data processing in spreadsheet worksheets
US10735504B2 (en) 2016-01-06 2020-08-04 Oracle International Corporation System and method for distributed workbook storage
JP6370503B1 (ja) * 2017-04-17 2018-08-08 三菱電機株式会社 プログラム作成装置
US11048695B2 (en) * 2017-09-12 2021-06-29 Sap Se Context-aware data commenting system
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
EP4062313A1 (en) * 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
US11361156B2 (en) 2019-11-18 2022-06-14 Monday.Com Digital processing systems and methods for real-time status aggregation in collaborative work systems
US20210256001A1 (en) * 2020-02-18 2021-08-19 Sigma Computing, Inc. Creating accessible model data sets
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
IL297858A (en) 2020-05-01 2023-01-01 Monday Com Ltd Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11556702B2 (en) * 2020-08-31 2023-01-17 Oracle International Corporation Orchestration of crud operations for a hierarchical web service data model in a spreadsheet
US11475215B2 (en) 2021-01-14 2022-10-18 Monday.com Ltd. Digital processing systems and methods for dynamic work document updates using embedded in-line links in collaborative work systems
US12056664B2 (en) 2021-08-17 2024-08-06 Monday.com Ltd. Digital processing systems and methods for external events trigger automatic text-based document alterations in collaborative work systems
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes
US12056255B1 (en) 2023-11-28 2024-08-06 Monday.com Ltd. Digital processing systems and methods for facilitating the development and implementation of applications in conjunction with a serverless environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200449A (ja) * 1993-11-29 1995-08-04 Microsoft Corp コードのリモート実行方法およびシステム
JP2002041309A (ja) * 2000-06-16 2002-02-08 Microsoft Corp 分散コンピューティング環境におけるオブジェクト間のインタラクティブ通信のためのシステム、その方法およびインタラクティブ分散コンポーネントオブジェクトモデル
US20030110191A1 (en) * 2001-07-13 2003-06-12 Robert Handsaker System and method for efficiently and flexibly utilizing spreadsheet information
JP2004046657A (ja) * 2002-07-15 2004-02-12 Answer:Kk 計算支援方法とその装置、及び計算支援ソフト

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912657A (en) 1986-10-30 1990-03-27 Synthesis, Inc. Method and systems for generating parametric designs
US5033009A (en) 1989-03-03 1991-07-16 Dubnoff Steven J System for generating worksheet files for electronic spreadsheets
US5371675A (en) 1992-06-03 1994-12-06 Lotus Development Corporation Spreadsheet program which implements alternative range references
WO1994011810A1 (en) * 1992-11-13 1994-05-26 Microsoft Corporation A method and system for marshalling interface pointers for remote procedure calls
US5805885A (en) * 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
US5437006A (en) 1993-01-27 1995-07-25 Microsoft Corporation Spreadsheet command/function capability from a dynamic-link library
US5721847A (en) 1994-10-21 1998-02-24 Microsoft Corporation Method and system for linking controls with cells of a spreadsheet
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5832532A (en) 1995-06-16 1998-11-03 I2 Technologies, Inc. Model-independent and interactive report generation system and method of operation
US5893123A (en) 1995-06-22 1999-04-06 Tuinenga; Paul W. System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet
US6157934A (en) 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
US5890174A (en) 1995-11-16 1999-03-30 Microsoft Corporation Method and system for constructing a formula in a spreadsheet
US6122649A (en) 1996-05-30 2000-09-19 Microsoft Corporation Method and system for user defined and linked properties
US6055548A (en) 1996-06-03 2000-04-25 Microsoft Corporation Computerized spreadsheet with auto-calculator
US5819293A (en) 1996-06-06 1998-10-06 Microsoft Corporation Automatic Spreadsheet forms
US5926822A (en) 1996-09-06 1999-07-20 Financial Engineering Associates, Inc. Transformation of real time data into times series and filtered real time data within a spreadsheet application
US5983268A (en) 1997-01-14 1999-11-09 Netmind Technologies, Inc. Spreadsheet user-interface for an internet-document change-detection tool
US5937406A (en) 1997-01-31 1999-08-10 Informix Software, Inc. File system interface to a database
US5933818A (en) * 1997-06-02 1999-08-03 Electronic Data Systems Corporation Autonomous knowledge discovery system and method
US6154732A (en) 1997-07-25 2000-11-28 Guidedchoice.Com System for providing investment advice and management of pension assets
US6012057A (en) 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
US6094651A (en) 1997-08-22 2000-07-25 International Business Machines Corporation Discovery-driven exploration of OLAP data cubes
US5974416A (en) 1997-11-10 1999-10-26 Microsoft Corporation Method of creating a tabular data stream for sending rows of data between client and server
US6009455A (en) 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
JP2000067143A (ja) 1998-08-26 2000-03-03 Toshiba Corp データベースシステム
US6269377B1 (en) 1998-09-21 2001-07-31 Microsoft Corporation System and method for managing locations of software components via a source list
US6317750B1 (en) 1998-10-26 2001-11-13 Hyperion Solutions Corporation Method and apparatus for accessing multidimensional data
US6640234B1 (en) 1998-12-31 2003-10-28 Microsoft Corporation Extension of formulas and formatting in an electronic spreadsheet
US7032030B1 (en) * 1999-03-11 2006-04-18 John David Codignotto Message publishing system and method
US6532458B1 (en) 1999-03-15 2003-03-11 Microsoft Corporation Sampling for database systems
US6549907B1 (en) 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US7013246B1 (en) 1999-05-24 2006-03-14 Parametric Technology Corporation Parametric exchange of data between a modeling system and an external application program
US6411313B1 (en) 1999-06-14 2002-06-25 Microsoft Corporation User interface for creating a spreadsheet pivottable
US6691281B1 (en) 1999-06-15 2004-02-10 Microsoft Corporation Publishing/republishing data tables in HTML documents while maintaining formatting and functionality for restoring back the data tables
US6613098B1 (en) 1999-06-15 2003-09-02 Microsoft Corporation Storage of application specific data in HTML
US6701485B1 (en) 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6477536B1 (en) 1999-06-22 2002-11-05 Microsoft Corporation Virtual cubes
US6456999B1 (en) 1999-06-22 2002-09-24 Microsoft Corporation Aggregations size estimation in database services
US6446059B1 (en) 1999-06-22 2002-09-03 Microsoft Corporation Record for a multidimensional database with flexible paths
US6631497B1 (en) 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6490600B1 (en) 1999-08-09 2002-12-03 Cognex Technology And Investment Corporation Processing continuous data streams in electronic spreadsheets
US6920443B1 (en) * 1999-09-21 2005-07-19 International Business Machines, Corporation Method, system, program, and data structure for transforming database tables
US6748389B1 (en) 1999-09-21 2004-06-08 International Business Machines Corporation Method, system, and program for inverting columns in a database table
US6493718B1 (en) 1999-10-15 2002-12-10 Microsoft Corporation Adaptive database caching and data retrieval mechanism
US6898603B1 (en) 1999-10-15 2005-05-24 Microsoft Corporation Multi-dimensional data structure caching
US6473750B1 (en) 1999-10-15 2002-10-29 Microsoft Corporation Adaptive query execution in a distributed database system
IL150079A0 (en) 1999-12-07 2002-12-01 Data Foundation Inc Scalable storage architecture
US7185279B2 (en) 2000-01-07 2007-02-27 Master Mine Software, Inc. Data mining and reporting
US20020010743A1 (en) 2000-02-11 2002-01-24 Ryan Mark H. Method and system for distributing and collecting spreadsheet information
JP2001243242A (ja) 2000-02-25 2001-09-07 Hitachi Ltd 問合せ処理方法およびそれを実施するデータベース管理システムその処理プログラムを格納した記録媒体
GB0011426D0 (en) 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
US20020106040A1 (en) * 2001-02-02 2002-08-08 Sarnoff Corporation Method and apparatus for reducing multipath distortion in a wireless ian system
US6632249B2 (en) 2000-06-23 2003-10-14 Microsoft Corporation Method for providing web-based services to an application program module
WO2002005065A2 (en) 2000-07-11 2002-01-17 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
US6944662B2 (en) * 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US6988241B1 (en) 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US6779151B2 (en) 2001-01-05 2004-08-17 Microsoft Corporation Storing objects in a spreadsheet
US7082569B2 (en) 2001-01-17 2006-07-25 Outlooksoft Corporation Systems and methods providing dynamic spreadsheet functionality
US6828988B2 (en) * 2001-02-27 2004-12-07 Microsoft Corporation Interactive tooltip
US6684206B2 (en) 2001-05-18 2004-01-27 Hewlett-Packard Development Company, L.P. OLAP-based web access analysis method and system
US20020188629A1 (en) * 2001-05-21 2002-12-12 Burfoot Daniel C. System, protocol, and methods for the creation of distributed spreadsheets
US7761403B2 (en) 2001-06-20 2010-07-20 Oracle International Corporation Run-time optimizations of queries with SQL spreadsheet
US7177855B2 (en) 2001-06-20 2007-02-13 Oracle International Corporation Compile-time optimizations of queries with SQL spreadsheet
US20030195762A1 (en) 2002-04-12 2003-10-16 David Gleason Automated workflow
JP3868331B2 (ja) 2002-05-20 2007-01-17 株式会社読売新聞東京本社 データベース登録装置および方法
US20030226105A1 (en) * 2002-05-29 2003-12-04 Mattias Waldau Method in connection with a spreadsheet program
US7266763B2 (en) 2002-11-26 2007-09-04 Microsoft Corporation User defined spreadsheet functions
US20040103365A1 (en) 2002-11-27 2004-05-27 Alan Cox System, method, and computer program product for an integrated spreadsheet and database
US7530012B2 (en) 2003-05-22 2009-05-05 International Business Machines Corporation Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube
US7299223B2 (en) 2003-07-16 2007-11-20 Oracle International Corporation Spreadsheet to SQL translation
US7233956B2 (en) 2003-08-12 2007-06-19 International Business Machines Corporation Method and apparatus for data migration between databases
US7240052B2 (en) 2003-09-09 2007-07-03 Iac Search & Media, Inc. Refinement of a search query based on information stored on a local storage medium
US20060200772A1 (en) * 2003-12-08 2006-09-07 Sathiyamoorthy Dhanapal Procedural computation engine for providing complex calculated data results to an object-oriented server system accessible to service clients and agents over a data packet network
RU36541U1 (ru) 2003-12-23 2004-03-10 Григорьев Евгений Александрович Объектно-ориентированная система управления реляционными базами данных
US7735097B2 (en) * 2004-05-24 2010-06-08 Sap Ag Method and system to implement a deploy service to perform deployment services to extend and enhance functionalities of deployed applications
US7664804B2 (en) 2004-06-01 2010-02-16 Microsoft Corporation Method, system, and apparatus for exposing workbook ranges as data sources
US8578399B2 (en) 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US7991804B2 (en) 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US20060112123A1 (en) 2004-11-24 2006-05-25 Macnica, Inc. Spreadsheet user-interfaced business data visualization and publishing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200449A (ja) * 1993-11-29 1995-08-04 Microsoft Corp コードのリモート実行方法およびシステム
JP2002041309A (ja) * 2000-06-16 2002-02-08 Microsoft Corp 分散コンピューティング環境におけるオブジェクト間のインタラクティブ通信のためのシステム、その方法およびインタラクティブ分散コンポーネントオブジェクトモデル
US20030110191A1 (en) * 2001-07-13 2003-06-12 Robert Handsaker System and method for efficiently and flexibly utilizing spreadsheet information
JP2004046657A (ja) * 2002-07-15 2004-02-12 Answer:Kk 計算支援方法とその装置、及び計算支援ソフト

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505115A (ja) * 2012-01-25 2015-02-16 マイクロソフト コーポレーション ドキュメント通信ランタイムインターフェース

Also Published As

Publication number Publication date
CN1728127B (zh) 2011-03-09
US8578399B2 (en) 2013-11-05
MXPA05005799A (es) 2006-02-01
US9317495B2 (en) 2016-04-19
RU2408074C2 (ru) 2010-12-27
AU2005202285A1 (en) 2006-02-16
CA2508537C (en) 2016-10-25
KR20060046283A (ko) 2006-05-17
CA2508537A1 (en) 2006-01-30
KR101153002B1 (ko) 2012-07-03
EP1622016A3 (en) 2007-09-05
JP5154002B2 (ja) 2013-02-27
EP1622016A2 (en) 2006-02-01
US20090235154A1 (en) 2009-09-17
BRPI0501957A (pt) 2006-03-14
AU2005202285B2 (en) 2010-06-03
CN1728127A (zh) 2006-02-01
US20130013995A1 (en) 2013-01-10
RU2005116530A (ru) 2006-11-20
BRPI0501957B1 (pt) 2017-06-13

Similar Documents

Publication Publication Date Title
JP5154002B2 (ja) リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置
Buels et al. JBrowse: a dynamic web platform for genome visualization and analysis
US7991804B2 (en) Method, system, and apparatus for exposing workbooks as data sources
KR101122947B1 (ko) 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치
KR101312881B1 (ko) 스프레드시트 문서의 파라미터의 지정, 설정 및 발견
KR101311055B1 (ko) 전자 데이터 리포트의 명명 객체뷰
CN108874924B (zh) 搜索服务的创建方法、装置及计算机可读存储介质
US20140114822A1 (en) Method and system for creating tax configuration templates
US8584004B2 (en) Asynchronous user defined functions
US20120109951A1 (en) Providing Search Results For Mobile Computing Devices
US11620444B2 (en) Providing action associated with event detected within communication
US8892585B2 (en) Metadata driven flexible user interface for business applications
KR20080073734A (ko) 판독시트 셀 기반 통지
KR101941641B1 (ko) 동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법
US20100287459A1 (en) Reusable business logic across user interface containers
US9239817B2 (en) Managing web extension through manifest file
JP2012529711A (ja) ソフトウェア拡張子解析方法及びシステム
US11262888B1 (en) Consistent context-dependent rendering of user interface data
US12045562B1 (en) Dynamically generating shared spreadsheets according to user references in spreadsheet data
US10102122B2 (en) Personal computing device for editing mainframe data
CN118152373A (zh) 数据库的数据迁移方法、装置、设备、介质和程序产品
CN113687881A (zh) 元数据调用方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080523

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120803

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121102

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: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121205

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5154002

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees