(57)【特許請求の範囲】
【請求項１】
ウェブフロントエンド（ＷＦＥ）サーバーにおいて、少なくとも部分的に実行される拡張可能なウェブに基づくダイアグラム視覚化サービスのための方法であって、当該方法は、
外部データソースへの参照を含むダイアグラムに対する要求を受信することに応答して、更新エンジンがサポートされたデータソース及びサポートされていないデータソースから検索するカスタムデータモジュールの判定を行うために、前記要求を前記更新エンジンへ提供することと、
前記更新エンジンからカスタムデータモジュール識別子を受信することと、
前記識別子により指示されたカスタムデータモジュールを呼び出すことと、
前記カスタムデータモジュールからデータ及び例外の内１つを受信することと、
データが受信された場合に、前記データを前記更新エンジンに転送すること、
前記転送されたデータに基づく前記ダイアグラムのレンダリングを前記更新エンジンから受信することにより、クライアントアプリケーションにおいて前記要求されたダイアグラムを提示するよう仲介することであって、前記ダイアグラムが、前記更新エンジンにおいて、レンダリング時においてポーリングされた、サポートされたデータソース及びサポートされていないデータソースから受信され且つ更新された要素の属性を有することと
を含むことを特徴とする方法。
【請求項２】
前記カスタムデータモジュールから例外が受信された場合に、前記クライアントアプリケーションへ例外メッセージを提供することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記更新エンジンが、前記サポートされたデータソースからのデータに対して更新を実行し、及び前記サポートされないデータソースからのデータに対しては対応するカスタムデータモジュールに従うように構成したことを特徴とする請求項１に記載の方法。
【請求項４】
前記データは、形状、サイズ、場所、前記要求されたダイアグラムにおける要素の属性の組からの少なくとも１つに関連付けられていることを特徴とする請求項１に記載の方法。
【請求項５】
すべてのカスタムデータモジュールの判定時に、各カスタムデータモジュールにおける平行及び非同期のクエリを開始することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
要求元のクライアントアプリケーションのネットワーク識別子及び追加の接続情報及びクエリ情報をパラメータとして各カスタムデータモジュールに渡すことを特徴とする請求項５に記載の方法。
【請求項７】
各カスタムデータモジュールを、データを検索し、生成し、集めるように、及びコールバックを採用して戻すように構成したことを特徴とする請求項１に記載の方法。
【請求項８】
外部データに接続されたダイアグラム要素の視覚定義を解析し、取り出すことと、
前記外部データを参照して前記ダイアグラムの要素の各属性についてパブリッシュ時間を再評価することと、
ダイアグラムをレンダリングすることと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
拡張可能なウェブに基づくダイアグラム視覚化のためのダイアグラムサービスを実行するコンピュータシステムであって、当該コンピュータシステムは、
メモリと、当該メモリに結合されたプロセッサとを含むウェブフロントエンド（ＷＦＥ）サーバーであって、当該プロセッサは、
あらかじめ定義された抽象クラスを実装する外部データソースへの参照を含むブラウザからのダイアグラムに対する要求を受信することに応答して、当該要求を更新エンジンに転送し、
前記更新エンジンからカスタムデータモジュールを参照する接続文字列を受信し、
前記あらかじめ定義された抽象クラスを介して、前記外部データソースからのデータを検索し、生成し、及び収集するための前記カスタムデータモジュールを呼び出し、
前記カスタムデータモジュールからの予め定義されたフォーマットにおけるデータを受信し、
前記更新エンジンへ前記受信したデータを転送し、
レンダリング時においてポーリングされたサポートされたデータソース及びサポートされていないデータソースから受信された更新された要素の属性により前記更新エンジンからレンダリングされたダイアグラムを受信し、及び
前記ブラウザへ前記レンダリングされたダイアグラムを提供する
ように構成された、ＷＦＥサーバーと、
前記更新エンジンを実行するように構成されたメモリと、当該メモリに結合されたプロセッサとを含むバックエンドのサーバーであって、当該プロセッサは前記更新エンジンを実行するように構成され、前記バックエンドのエンジンは、
サポートされた外部データを参照して、各ダイアグラムの要素に対して、サポートされたデータソースに対する接続文字列をＷＦＥに戻し、
サポートされない外部データを参照して、各ダイアグラムの要素に対して、カスタムデータモジュールに対する接続文字列を判定し、及び
カスタムデータモジュールが検出された場合、カスタムデータモジュールに対する前記接続文字列を前記ＷＦＥに戻し、
そのほかにエラーコードを前記ＷＦＥに戻す
ように構成した、バックエンドエンジンと
を備えたことを特徴とするシステム。
【請求項１０】
前記カスタムデータモジュールに対する前記接続文字列は、前記カスタムデータモジュールの名前と、前記カスタムデータモジュールのクラスを実装するクラスと、追加の接続及びクエリ情報とを予め定められたフォーマットで含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記更新エンジンを、前記サポートされたデータソースに対して実行されるクエリ文字列及び前記サポートされたデータソースから戻されることを期待されるデータに対するスキーマ定義を戻すようにさらに構成したことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記更新エンジンを、前記サポートされたデータソースと接続し、前記クエリ文字列により定義されたクエリを実行することによりデータを検索し、及びスキーマに対するデータを有効にするようにさらに構成し、及び各カスタムデータモジュールを、コールバックのシステムを通してＷＦＥからデータを検索し、及び収集し、及びＷＦＥにデータを戻すように構成したことを特徴とする請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブに基づくダイアグラム視覚化サービスのアーキテクチャー及びデータフローの拡張性に関する。
【背景技術】
【０００２】
コンピュータ及びソフトウェアの人々の日常生活に対する主要な貢献の１つは、文章処理、表計算、図示化（ダイアグラミング）等、広く使用されるタスクの自動化であった。これらのアプリケーションは、自動化し、様々なタスクを誰にでも使用可能にさせただけでなく、広範囲のドキュメント及びデータを操作するにあたって多くの新しい能力を追加した。最近まで、典型的な環境は、特定のアプリケーションをインストールされたスタントアロンまたはネットワーク化されたコンピュータを含んでいた。従って、ユーザーは、ローカルにおいてストアされたデータを使用して、ユーザーのローカルのコンピュータにおいてインストールされ実行されたアプリケーションを使用して作業をしていた。この方法の欠点のひとつは、更新されたバージョンが使用可能となったとき、コンピューティングデバイスが置き換わったとき等は、いつでもアプリケーションを再インストールしなければならず、ユーザーはそのインストールされたソフトウェアを有するマシンにおいて作業をする必要がある。
【０００３】
ユーザーのコンピュータにフルスケールのアプリケーションをインストールすることの負担なしに、同じドキュメントの生成及び操作の能力を提供することにおける最近の傾向は、ウェブへのアクセスを通してユーザーが同じタスクを実行することができるようにすることである。典型的なウェブアクセスのサービスにおいて、ユーザーは、ホストされたサービスを利用してインターネット等のネットワーク化された媒体を通して新しいドキュメントを生成するか、又は既存のドキュメントを操作することができる。ドキュメントは、ホストされたサービスにより、又はユーザーのローカルコンピュータにおいてストアされる。典型的なウェブアクセスのサービスは、データの可視化（例えば図示化、すなわちダイアグラミング）のためのものである。いくつかのデータ可視化のパイプラインは、周知のデータソースの限定されたセットからデータをリフレッシュすることに制限される。カスタムデータソースからデータを入力することができるようにすることなしに、ブラウザがデータをレンダリングする要求がウェブサーバにより処理されるときに、ネイティブでないデータソースからのデータは、サポートされたソースに適合されなければならない。
【発明の概要】
【０００４】
この概要は、「発明を実施するための形態」において以下にさらに説明される概念の選択を簡略化された形態で紹介するために提供される。この概要は、「特許請求の範囲」の主題の重要な特徴又は必須の特徴を特定することだけを意図しているものではなく、「特許請求の範囲」の主題の範囲を決定することを意図するものでもない。
【０００５】
実施例は、ダイアグラム更新エンジンによりカスタムコードモジュールを開始するようにする、拡張可能なアーキテクチャー及びデータフローを指向する。いくつかの実施例によるインターフェースによって、第三者のデータソースの生成が可能となり、ウェブに基づくダイアグラムサービスに対してこれらデータソースが見えるようにし、ダイアグラム更新エンジンから呼ぶことができるようにする。従って、ダイアグラムデータが検索される多数のデータソース及び入手データが操作される方法は、実施例によるデータモデルを用いたコードを通して拡張可能である。
【０００６】
これら及び他の特徴及び利点は、以下の「発明を実施するための形態」を読むこと及び関連する図を検討することから明らかになるであろう。前述の「発明の概要」及び後述の「発明を実施するための形態」の双方は説明のためのものであり、「特許請求の範囲」の態様を限定するものではないことが理解される。
【図面の簡単な説明】
【０００７】
【図１】実施例が実装され得る、ウェブにアクセス可能なダイアグラミングサービスの例を示す概念図である。
【図２】ウェブに基づくダイアグラミングサービスにおける、データ更新中のデータフローを示すシーケンス線図である。
【図３】実施例によるウェブに基づくダイアグラミングサービスにおける、データ更新中のデータフローを示す他のシーケンス線図である。
【図４】ウェブに基づくダイアグラミングサービスにおける主要なコンポーネントを、実施例を実装する複数のデータソースとともに示す概念図である。
【図５】実施例によるシステムが実装され得る、ネットワーク化された環境を示す図である。
【図６】実施例が実装され得る、コンピュータ動作環境の例のブロック図である。
【図７】実施例によるウェブにアクセス可能なダイアグラミングサービスを提供する処理を示す論理フロー図である。
【発明を実施するための形態】
【０００８】
簡潔に上述したように、拡張可能なアーキテクチャーとデータフローを使用することにより、ダイアグラム更新エンジンによって、多様なソースからデータを検索し、操作し、収集するためのカスタムコードモジュールを開始することを可能にし、及びインターフェースによって、カスタムデータモジュールを通してネイティブでないデータソースとの通信を可能にすることができるようにする。以下の詳細な説明において、その一部を成し、特定の実施形態又は例を例示によって示し添付の図を参照する。この開示の趣旨及び範囲から逸脱することなく、これらの態様を結合でき、他の態様を利用でき、構成の変更を行うことができる。従って、以下の詳細な説明は、限定的にとるものではなく、本発明の範囲は添付の「特許請求の範囲」及びそれらと同等のものにより定義される。
【０００９】
実施例は、パーソナルコンピュータのオペレーティングシステムにおいて実行するアプリケーションプログラムに関連して実行するプログラムモジュールの一般的なコンテキストにおいて説明され、一方で当業者は、他のプログラムモジュールと組み合わせて態様を実装することもできることを認識するであろう。
【００１０】
一般的に、プログラムモジュールは、ルーティン、プログラム、コンポーネント、データ構造、特定のタスクを実行し又は特定の抽象データ型を実装する他の型の構造を含む。その上、当業者は、実施例が携帯デバイス、マルチプロセッサシステム、マイクロプロセッサに基づいた又はプログラム可能な消費者家電、ミニコンポーネント、メインフレームコンピュータ及び同等のコンピューティングデバイスを含む他のコンピュータシステム構成により実現されうることを認識できる。実施例は、通信ネットワークを通してリンクされたリモート処理デバイスによりタスクが実行される、分散されたコンピューティング環境においても実現され得る。分散されたコンピューティング環境において、プログラムモジュールは、ローカル及びリモートメモリストレージデバイスの双方に配置することができる。
【００１１】
実施例は、コンピュータに実装された処理（方法）、コンピューティングシステム、コンピュータプログラム製品又はコンピュータ読み取り可能な記憶媒体等の製造品として実装され得る。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、及びコンピュータまたはコンピューティングシステムに例示の処理を実行させる命令を含むコンピュータプログラムをコード化するコンピュータ記憶媒体とすることができる。コンピュータ読み取り可能な記憶媒体は、例えば１つ又は２つ以上の揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスク又はコンパクトディスク及びそれと同等の媒体を介して実装され得る。コンピュータプログラム製品は、搬送波において伝播された信号（例えば、周波数又は位相が変調された信号）、又はコンピューティングシステムにより読み取り可能な媒体とすることができ、コンピュータ処理を実行する命令のコンピュータプログラムをコード化できる。
【００１２】
この明細書の全体にわたって、用語「プラットフォーム」は、ウェブに基づくダイアグラミングサービスデータを管理するためのソフトウェア及びハードウェアコンポーネントの組合せとすることができる。プラットフォームの例は、複数のサーバーにわたって実行されるホストによるサービス、１つのサーバーにおいて実行されるアプリケーション、及び同等のシステムを含むが、それらに限定されない。用語「サーバー」は、一般的にネットワーク化された環境において、典型的には１つ又は２つ以上のソフトウェアプログラムを実行するコンピューティングデバイスを意味する。しかし、サーバーはまた、ネットワークにおいてサーバーとみなされる１つ又は２つ以上のコンピューティングデバイスにおいて実行される仮想のサーバー（ソフトウェアプログラム）として実装され得る。
【００１３】
図１を参照するに、実施例が実装される、ウェブにアクセス可能なダイアグラミングサービスの例の概念図１００を示す。図１のシステム１００の例において、ユーザーのためのウェブサービス１０６は、サーバー１０８において実行された１つ又は２つ以上のウェブアプリケーションを通してダイアグラム視覚化機能を提供して、ユーザー１０２がコンピューティングデバイス１０４において実行されるブラウザ等の一般的なアプリケーションを通して、システムにアクセスするようにする。サービスを開始するために、ユーザー１０２は、ホストサービス１０６のサーバー１０８からダイアグラムを要求する。サーバー１０８は、それに応動してダイアグラムサービスバックエンド１１２のサーバー１１４と交信して、データ、計算式、関係などを検索する。
【００１４】
ダイアグラムは、静的又は動的要素を含むことができる。例えば、ある形状、コネクタ、及び他の要素の属性を、レンダリング時においてポーリングされ得る更新可能なデータソース（例えば、ほかの場所にストアされたデータから形状の情報を受け取るデータバー）からのデータに依存する等の動的な手段を通して定義する。いくつかの場合においては、ダイアグラム要素間の動的関係によって（例えば、構造ダイアグラムを構成するような）個々の形状及びコネクタの属性を決定できる。
【００１５】
ダイアグラムの可視化サービスは、ＳＱＬテーブル、Ｅｘｃｅｌ（登録商標）スプレッドシート、ＷＳＳ（登録商標）リスト、等のサポートされたデータソースのリストを含むことができる。実施例によるシステムは、これらのサポートされたデータソースを、サービスのために定義されたインターフェースを使用するカスタムデータモジュールにより定義された任意のデータソースに拡張することができる。
【００１６】
図２は、ウェブに基づくダイアグラミングサービスにおけるデータの更新の間のデータフローのためのシーケンス線図２００を示している。ウェブブラウザ等のレンダリングアプリケーションを使用して、ダイアグラムの消費者はパブリッシュされたダイアグラムのためのウェブサービス２２２のサーバーファームへの要求（２３１）を作成する。ウェブサービス２２２は、ダイアグラム（２３２）に対する要求を、更新エンジン等のダイアグラムサービスバックエンドへ向けることができる。ダイアグラムサービスバックエンド２２４（更新エンジン）によっては、データストア２２６からダイアグラム定義（２３３、２３４）を検索し、定義されたダイアグラムの視覚情報及び関連するデータ接続情報に対するデータをどこで検索するかを指示する組み込まれた情報を探して、ダイアグラム定義を解析し得る。ひとつの実施形態によれば、サポートされたデータソースを参照する接続文字列、サポートされたデータソースに対して実行するためのクエリ文字列、及びクエリを実行した後にサポートされたデータソースから戻されることを期待されている記録のセットのデータのためのスキーマの定義、のいくつかがある場合に、これらの情報を各記録セットに対して取り出すことができる（２３９）。
【００１７】
サポートされたデータソースへの各データの接続のために、ダイアグラムサービスバックエンドによって、内蔵のデータプロバイダ（２４０）を呼び、データプロバイダをサポートされたデータソースと接続し、上記で定義されたクエリの実行により、サポートされたデータソースに対して特定のデータを検索し、そして上記スキーマに対し戻された記録セットを有効にする。
【００１８】
ダイアグラムサービスバックエンド２２４（更新エンジン）は、ダイアグラムの定義からデータ接続ダイアグラムの要素に対する視覚定義を解析し及び取り出すこと、各ダイアグラム要素（例えば背景色、高さ）の各属性に対するパブリッシュ時間の式を再評価すること、ブラウザからの要求の種類に依存するベクトルやラスターフォーマットにおけるダイアグラムをレンダリングすることにより、ダイアグラム視覚定義をリフレッシュし、そして戻すことができる。ウェブサービス２２２は、更新されたダイアグラム（２４２）でブラウザにより作成された要求に応答することができる。
【００１９】
データソースの拡張性なしには、ダイアグラムを更新するパイプラインを、典型的には、更新エンジンのみにおいて内蔵されたデータプロバイダによりデータソースからデータをリフレッシュすることに制限する。これらは、ＳＱＬ（Sequential Query Language）テーブル、スプレッドシートテーブル、及び同様に一般的に使用されているデータソース（例えばＷＳＳリスト）を含むことができる。さらにダイアグラムの視覚要素をリフレッシュするのに使用されるデータの収集及び操作の式を、パブリッシュ時間において一度ダイアグラム内へコード化されると、不変とすることができる。
【００２０】
図３は、実施例により、ウェブに基づくダイアグラミングサービスにおけるデータを更新中のデータフローを示す他のシーケンス線図３００である。いくつかの実施例によれば、第三者のユーザーがウェブに基づくダイアグラミングサービスの目に見えるカスタムデータプロバイダコード（カスタムデータモジュール又はカスタムデータプロバイダともよばれる）を生成することを可能にし、及びダイアグラム発行者が発行者のデータダイアグラムにおけるカスタムデータモジュールを参照することを可能にすることにより、データソースの拡張性を提供する。カスタムデータモジュールへの参照の検出時に、ウェブに基づくダイアグラミングサービスは、参照されたデータモジュールへのデータ検索動作を遅らせてもよい。データモジュールが、予め定義された抽象的なクラス（例えば、DiagramRefreshAddOn  クラス）を実装しなければならない一方で、ディベロッパーは、種々の抽象メンバーの内部定義を実装し、任意のデータソースからデータを検索し（又はデータモジュールにおいてデータを生成し）、及びダイアグラミングサービスのリフレッシュパイプラインに挿入されるべきデータを操作するための柔軟性を、抽象メンバーに提供することができる。
【００２１】
図３００において表された相互作用は、実施例によるシステムの同じ部分の間でなされ、図２に関連して説明された行為と同様のダイアグラム定義のステップの戻ることを通してダイアグラムの要求をすることは、図２に関連して述べた動作と同様である。図２００とは異なり、更新エンジンが、内蔵されたデータプロバイダにより操作されることができない接続文字列に直面した場合、ダイアグラミングサービスバックエンド２２４は、カスタムデータモジュール（３３５）を参照して、接続文字列を検出しようとすることができる。一例のモジュールは
“Assembly＝＜assembly＞;Class＝＜class＞;＜additional information＞”
の形態となる。ここで、＜assembly＞は、データモジュールアッセンブリの共有スペースの名前であり、＜class＞は、データモジュールの抽象クラスを実装する共有スペースのクラス名前（ネームスペースを含む）であり、及び＜additional information＞は、フォーマット［［Key＝Value］．．．］における追加の接続／クエリ情報である。
【００２２】
接続文字列が取り出された場合、データソースに対して実行するための有効なクエリ文字列もまた取り出し得る。クエリが実行された後にデータソースから戻ることを予期されているデータのスキーマ定義もまた取り出される。カスタムデータソースへの各々の参照のために、ダイアグラミングサービスバックエンド２２４は、関連するデータモジュールへのリフレッシュを遅らせることができる。このことにより、ダイアグラミングサービスバックエンド更新エンジンが最初のダイアグラムの要求を受信したフロントエンドサーバー（ウェブサービス２２２）に戻り（３３６）、上述の＜assembly＞及び＜class＞トークンに適合する任意のカスタムデータモジュールを検出しようとすることになる。
【００２３】
すべての参照されたカスタムデータモジュールが検出された場合、フロントエンドサーバーにおける更新エンジンコードによって、各データモジュールにおいてデータの検索（例えばBiginGetData）（３３７）を呼び出し、およびダイアグラムリクエスタのネットワークコンテキストをパラメータとして渡すことにより、クエリ、前述のように取り出された「追加の情報」および他の同様の情報の個人化を可能とすることによって、データに対する平行及び非同期のクエリを開始する。データモジュールは、それらのデータの検索、コードの生成、収集を実行する。コールバックシステムを通して、フロントエンドサーバー（ウェブサービス２２２）におけるコードにより、データモジュールのデータの検索、エラー、ハングアップを管理する。１つ又は２つ以上のデータモジュールが実行に失敗した場合、完全な要求は失敗し、及びエンドユーザーにエラーが戻される。
【００２４】
エラーが起こらない場合、データモジュールによって、検索されたデータの構造化（例えば、直列化されたデータのセット）表示をデータモジュールドライバコードに戻す。データの返送はダイアグラミングサービスバックエンド２２４に送られ、ダイアグラミングサービスバックエンド２２４によりそのデータを他のデータプロバイダ（カスタムまたは内蔵の）のデータとともにダイアグラム更新動作に統合する。データモジュールカスタムコードが例外に直面した場合、ディベロッパーは、それら自身の例外のオブジェクトを生成し、及びデータモジュールのエラーの特性に割り当てて、その例外をさらなる動作のために更新エンジンに伝える。例外を関連する例外のメッセージと共にエンドユーザーに表示することもできる。
【００２５】
（カスタムデータモジュールにより定義されたデータソースを含む）サポートされたデータソースへの各データ接続のために（２３９、２４０）、ダイアグラム更新エンジンは、ハードコード化されたデータ検索コードを呼び、それによりサポートされた外部データソースに接続し、データソースに対する定義されたクエリを実行することにより特定のデータを検索し、及び上述のスキーマに対し戻されたデータを有効化する。
【００２６】
ダイアグラム更新エンジンは、次いで、データに接続されたダイアグラム要素の視覚定義を解析し取り出し、各ダイアグラム要素の各属性に対するパブリッシュ時間の式を再評価し（この式は予め定義されたカスタムデータソースから検索された外部データの参照を含む）、及びエンドユーザーからの要求の型に依存するベクトル又はラスターフォーマットにおけるダイアグラムをレンダリングすることによって、ダイアグラム視覚定義をリフレッシュできる。図２におけるように、ウェブサービスは、更新されたダイアグラム（２４２）により要求（２３１）に応答する。
【００２７】
図２００及び３００におけるコンポーネント及び動作は図示の目的のみのものであり、実施例について限定を加えるものではない。他のコンポーネント、ソフトウェア又はハードウェア及び構成を用いて、ウェブに基づくダイアグラムの視覚化の拡張性を提供することもできる。
【００２８】
図４は、実施例が実装される複数のデータソースを有するウェブに基づくダイアグラミングサービスにおける主要なコンポーネントを示す概念図である。多くのウェブに基づくサービスにおけるように、ウェブに基づくダイアグラミングサービスは、３つの主要なコンポーネント、つまりブラウザ等のクライアントアプリケーションを実行するクライアントデバイス４５２、クライアントアプリケーションの間を仲介するウェブサービスフロントエンド４５４およびダイアグラムをレンダリングするための計算を実際に実行するダイアグラムサービスバックエンド４５６、の間の情報の変換を含む。
【００２９】
従って、外部データを参照してダイアグラムがクライアントアプリケーションにより要求されたとき、ウェブサービスフロントエンド４５４はダイアグラムサービスバックエンド４５６にその要求を転送する。ダイアグラム視覚化サービスにより本来的にサポートされないデータソースに対しては、カスタムデータモジュールを採用することによって拡張性を達成することができる。モジュールを、ウェブサービスサーバーにインストールして、データ接続文字列の識別子により識別するようにできる。各外部データソースに対して、ダイアグラムサービスバックエンド４５６によって、フロントエンド４５４にデータ接続情報を送信することができる。ウェブサービスフロントエンド４５４によって、データ接続情報を対応するモジュールに通信し、そこでモジュールは予め定義された抽象クラスを実装する。例えばデータモジュールは、（擬似コードにより示す）以下のものを含むことができる。
MyDataModule
BeginGetData(httpContext, callback, asynchState)
{
//A. Register callback
//B. Retrieve user identity & connect to data source
//C. Authenticate and initiate query.
}
EndGetData(asynchState)
{
//D. Transform data into predefined structure.
//E. Return data. Log errors if needed.
}
【００３０】
データソース（例えば４６２、４６４、４６６）は、予め定義された構造において、データモジュールを通して、又は例外的にそれがウェブサービス４５４の場合、拡張可能なデータフローインターフェース４５８を通して、データを戻す。ウェブサービスフロントエンド４５４は、さらなる処理のためにバックエンドにデータを戻して、ダイアグラムを更新し、必要な計算を行い、及びフロントエンドにダイアグラムをレンダリングしてクライアントデバイス４５２においてエンドユーザーのブラウザに表示する。
【００３１】
上記説明のシナリオ、例示のシステム、アプリケーション及びコマンドは例示の目的のためである。実施例はこれらの例により限定されない。他のアプリケーション、構成、通信モード及びコマンドを用いて、本明細書で説明した原理を使用して同様の方法で、拡張可能なアーキテクチャー及びウェブに基づくダイアグラミングサービスのデータフローを実装することができる。
【００３２】
図５は、実施例を実装することのできるネットワーク化された環境の例である。拡張可能なアーキテクチャー及びウェブに基づくダイアグラム可視化サービスのデータフローを提供するプラットフォームを、ホストによるサービス等の１つ又は２つ以上のサーバー５７４にわたって実行されるソフトウェアを通して実装することができる。プラットフォームは、ネットワーク５７０を通して、スマートフォン５７３、ラップトップコンピュータ５７２、及びデスクトップコンピュータ５７１（クライアントデバイス）等の個別のコンピュータデバイスにおいて、クライアントアプリケーション（例えば、ブラウザ）と通信する。ウェブフロントエンドサービスによって、サーバー５７６の分離したグループにおいて実行されるダイアグラムサービスバックエンドと通信することができる。
【００３３】
上述のように、カスタムデータモジュールを用いて、バックエンドサービスの標準のサポートされたデータソースリストに含まれないデータソースからデータを検索する処理を定義することができる。ウェブに基づくダイアグラミングサービスに関連付けられた情報を、１つ又は２つ以上データソース（例えばデータソース５７９）にストアして、そのデータソースをサーバー５７６のうちの任意の１つのサーバー又はデータベースサーバー５７８により管理することができる。
【００３４】
ネットワーク５７０は、サーバー、クライアント、インターネットサービスプロバイダ、及び通信媒体のトポロジを含むことができる。実施例によるシステムは、静的又は動的なトポロジを有することができる。ネットワーク５７０は、企業ネットワーク等の安全なネットワーク、無線のオープンネットワーク等の安全でないネットワーク、又はインターネットを含むことができる。ネットワーク５７０は、ＰＳＴＮ又は携帯電話ネットワーク等の他のネットワークを通して通信を調整することができる。ネットワーク５７０は、本明細書に記載されたノード間の通信を提供する。限定するものではないが、例として、ネットワーク５７０は、音響、ＲＦ、赤外線及び他の無線媒体等の無線媒体を含むことができる。
【００３５】
コンピューティングデバイス、アプリケーション、データソース及びデータ分配システムの多くの他の構成を用いて、カスタムデータモジュールを通して拡張可能なウェブに基づくダイアグラミングサービスを提供するためのシステムを実装することができる。さらに、図５において説明されたネットワーク化された環境は、図示の目的のためのみである。実施例は、例示のアプリケーション、モジュール又はプロセッサに限定されるものではない。
【００３６】
図６及び関連する説明は、実施例を実装することができる適切なコンピューティング環境の簡潔な全体的の説明を提供することを意図している。図６を参照するに、コンピューティングデバイス６００等の実施例によるアプリケーションのためのコンピュータ動作環境の例のブロック図が示される。基本的な構成において、コンピューティングデバイス６００は、クライアントブラウザにダイアグラム視覚化サービスを提供するウェブフロントエンドサービスのサーバーとすることができ、及び少なくとも１つの処理ユニット６０２及びシステムメモリ６０４を含むことができる。コンピューティングデバイス６００は、プログラムの実行に協力する複数の処理ユニットを含むこともできる。正確な構成及びコンピューティングデバイスの種類によって、システムメモリ６０４は、（ＲＡＭ等の）揮発性、（ＲＯＭ、フラッシュメモリ等の）不揮発性又はこれら２つの組合せとすることができる。システムメモリ６０４は、本件出願人の販売するＷＩＮＤＯＷＳ（登録商標）オペレーティングシステム等のプラットフォームの動作を制御するのに適切なオペレーティングシステム６０５を典型的には含む。システムメモリ６０４は、プログラムモジュール６０６及びダイアグラムサービス６２２等の１つ又は２つ以上のソフトウェアアプリケーションを含むことができる。
【００３７】
ダイアグラムサービス６２２は、前述のように、カスタムデータモジュールを使用して、データソースの接続性、外部データの操作及び収集を拡張できる。ダイアグラムサービス６２２を別個のアプリケーション又はクライアントアプリケーション／デバイスへダイアグラム視覚化サービスを提供するホストによるウェブに基づくサービスの一体的モジュールとすることができる。この基本的な構成は、点線６０８内のこれらのコンポーネントにより図６において示される。
【００３８】
コンピューティングデバイス６００は、追加の特徴又は機能を有することができる。例えば、コンピューティングデバイス６００はまた、例えば、磁気ディスク、光ディスク又はテープ等の（取り外し可能な及び／又は固定の）追加のストレージデバイスを含む。このような追加のデバイスは、取り外し可能なストレージ６０９及び固定のストレージ６１０により図６に示されている。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は他のデータ等の情報をストアする任意の方法又は技術において揮発性及び不揮発性の、取り外し可能及び固定の媒体を含むことができる。システムメモリ６０４、取り外し可能なストレージ６０９及び固定のストレージ６１０は、すべてコンピュータ読み取り可能な記憶媒体の例である。コンピュータ読み取り可能な記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（Digital versatile disk）又は他の光記憶媒体、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイス、又は所望の情報をストアするのに使用され、及びコンピューティングデバイス６００によりアクセス可能とされる他の媒体を含むが、これらに限定されない。このような任意のコンピュータ読み取り可能な記憶媒体はコンピューティングデバイス６００の一部とすることができる。コンピューティングデバイス６００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス及びそれらと同等の入力デバイス等の入力デバイス６１２を有することもできる。ディスプレイ、スピーカー、プリンター及び他の種類の出力デバイス等の出力デバイスも含むことができる。これらデバイスは当技術分野において周知であり、本明細書において長く説明する必要はない。
【００３９】
コンピューティングデバイス６００は、分散されたコンピューティング環境における無線ネットワーク、衛星リンク、携帯電話リンク、及び同等の機構を通して等、コンピューティングデバイス６００が他のデバイス６１８と交信するようにする通信接続６１６を含むこともできる。他のデバイス６１８は、通信アプリケーションを実行するコンピュータデバイス、ホストサービスサーバー及び同等のデバイスを含むことができる。通信接続６１６は通信媒体の一例である。通信媒体は、その中にコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は搬送波等の変調されたデータ信号における他のデータ又は他の伝送機構を含み、及び任意の情報配信媒体を含むことができる。用語「変調されたデータ信号」は、１つ又は２つ以上の特徴のセットを有するか又は信号における情報を符号化する等の方法で変更された信号を意味している。限定ではなく、一例として、通信媒体は、有線ネットワーク等または直接の有線接続のような有線媒体、及び音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体を含む。
【００４０】
実施例は方法も含む。これらの方法は、この明細書において説明された構成を含む任意の数の方法において実装される。このような方法のひとつは、この明細書に記載された種類のデバイスのマシンの動作によるものである。
【００４１】
他の方法は、いくつかの方法を実行する１人又は２人以上の人間のオペレータと関連して実行される方法の１つ又は２つ以上の個別の動作に対するものである。これら人間のオペレータは互いに結びつける必要はないが、各々を、プログラムの一部を実行するマシンとのみ結びつけることができる。
【００４２】
図７は、実施例による、ウェブにアクセス可能なダイアグラミングサービスを提供する処理７００の論理フロー図を示している。処理７００は、図３及び図４で説明したようにウェブサービスの一部として実装される。
【００４３】
処理７００は動作７１０をもって開始し、そこでブラウザ等のクライアントアプリケーションからダイアグラム要求を受信する。要求されたダイアグラムは、外部データソースからのデータへの参照を含む。動作７２０において、要求をウェブサービスフロントエンドによりダイアグラムサービスバックエンドに転送する。バックエンドサービスによって各データに対するデータ接続情報を判定し、そして動作７３０においてウェブサービスフロントエンドに送信する。ウェブサービスフロントエンドは、動作７３０において受信したデータ接続情報を使用して、適切なモジュールと交信し、そして動作７４０においてこれらモジュールを呼び出す。
【００４４】
呼び出されたモジュールは、ウェブサービスにより特定された抽象クラスを実装し、そして要求されたデータまたは例外を戻す。これを動作７５０において、ウェブサービスフロントエンドにおいて受信し、さらなる処理のために動作７６０においてダイアグラムサービスバックエンドへデータを転送する。動作７７０及び７８０において、データをバックエンドサーバーにおいて受信し、及び処理し、及びカスタムモジュールからのデータに依存するダイアグラム視覚を再評価する。ネイティブデータソースからのデータに依存するダイアグラム視覚を処理の間の任意の点においてバックエンドによりレンダリングすることができる。ダイアグラムの更新されたレンダリングを、動作７９０においてバックエンドから受信し、及び動作７９５においてエンドユーザーのブラウザに提供する。
【００４５】
処理７００に含まれる動作は、図示目的のためのものである。ウェブに基づくダイアグラム視覚化サービスは、より少ない又は追加のステップを有する同様の処理により、及び動作の異なる順序で、本明細書において説明された原理を使用して、実装される。
【００４６】
上記明細書、実例及びデータを、製品の完全な説明、及び実施例の構成の使用を提供する。主題は構造の特徴及び／又は方法の行為を特定する言葉で説明してきたが、添付の「特許請求の範囲」において定義された主題は、上述の特定の特徴又は行為に必ずしも限定されないことを理解すべきである。むしろ、上述の特定の特徴及び行為は「特許請求の範囲」及び実施例を実装する形態の実例として開示されている。
【図１】
0005677319.tif 000002
【図２】
0005677319.tif 000003
【図３】
0005677319.tif 000004
【図４】
0005677319.tif 000005
【図５】
0005677319.tif 000006
【図６】
0005677319.tif 000007
【図７】
0005677319.tif 000008