JP2008305411A - 機能強化されたウィジェットコンポジションプラットフォーム - Google Patents

機能強化されたウィジェットコンポジションプラットフォーム Download PDF

Info

Publication number
JP2008305411A
JP2008305411A JP2008152230A JP2008152230A JP2008305411A JP 2008305411 A JP2008305411 A JP 2008305411A JP 2008152230 A JP2008152230 A JP 2008152230A JP 2008152230 A JP2008152230 A JP 2008152230A JP 2008305411 A JP2008305411 A JP 2008305411A
Authority
JP
Japan
Prior art keywords
service
widget
output
data
selection
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
JP2008152230A
Other languages
English (en)
Other versions
JP5086183B2 (ja
Inventor
Alexander Dreiling
アレクサンダー・ドレイリング
Fabian Eberhardt
ファビアン・エベルハルト
Kathrin Fleischmann
キャサリン・フレイシュマン
Philipp Heltewig
フィリップ・ヘルテウィッグ
Daniel Ricketts
ダニエル・リケッツ
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of JP2008305411A publication Critical patent/JP2008305411A/ja
Application granted granted Critical
Publication of JP5086183B2 publication Critical patent/JP5086183B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】本発明は、機能強化されたウィジェットコンポジションプラットフォームに関する。
【解決手段】コードが、ウェブベースウィジェットコンポジションプラットフォームを介する少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいて自動的に生成され、コードが、選択されたウィジェットエンジンによって呼び出された時に第1サービスと通信するように動作可能なウィジェットを実施する、機能強化されたウィジェットコンポジションプラットフォーム。
【選択図】図2

Description

本開示は、全般的にはウィジェット(またはガジェット)に関し、少なくとも1つの特定の実施態様は、機能強化されたウィジェットコンポジションプラットフォームに関する。
的確な判断を下すためには、タイムリー、正確、かつ関連する情報へのアクセスを有することが重要である。さまざまな情報を有用な形で組み合わせることによって、それぞれ別々の情報が組み合わされた価値より高い価値を有するコンテキストを形成することができる。
1つの単純な例で、3つの別々のログエントリが、供給業者銀行口座番号変更および最初の口座番号へのロールバック、変更された供給業者銀行口座番号と等しい従業員銀行口座番号、および変更された供給業者銀行口座番号への送り状支払いを反映する場合がある。個別には、これらのログエントリは、完全に正常であるように見える可能性がある。しかし、組み合わされると、これらの別々のエントリが、詐欺のコンテキストを提供する。というのは、送り状が、供給業者銀行口座番号が変更された時点とその変更がロールバックされた時点との間に支払われており、変更された供給業者銀行口座番号が、従業員銀行口座番号と同一であるからである。したがって、異なるソースからの情報の組合せは、有用なコンテキストを形成するのに必要な相乗効果を提供することができる。
1つの一般的な実施態様によれば、コードは、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいて自動的に生成される。コードは、選択されたウィジェットエンジンによって呼び出される時に、第1サービスと通信するように動作可能なウィジェットを実施する。
実施態様は、次の特徴のうちの1つまたは複数を含むことができる。たとえば、第1サービスおよびウィジェットエンジンの選択は、ユーザ選択または自動選択とすることができる。ウェブベースウィジェットコンポジションプラットフォームは、設計モードおよびプレビューモードをさらに含むことができ、第1サービスは、(設計モードで)ウェブベースウィジェットコンポジションプラットフォームを介して選択され、ウィジェットは、(プレビューモードで)ウェブベースウィジェットコンポジションプラットフォームを介してシミュレートされる。コードを、ウィジェットエンジンをエミュレートする互換性レイヤを使用してブラウザ環境内で呼び出し、これによってウィジェットコンポジションプラットフォーム内でウィジェットをシミュレートすることができる。
さらなる例で、サービスメディエータインスタンスを、選択を受け取ることに基づいて作成することができ、サービスメディエータインスタンスは、サービスリクエスタコンポーネントと、インタープリタコンポーネントと、レンダラコンポーネントとを含む。サービスリクエスタコンポーネントは、入力パラメータを集め、入力パラメータに基づいて第1サービスにサービス呼出しを送り、サービス呼出しの生データ結果をサービスメディエータインスタンスに送るように動作可能である。インタープリタコンポーネントは、生データ結果を解釈されたSERVICEDATAMODELオブジェクトに処理し、SERVICEDATAMODELオブジェクトをサービスメディエータインスタンスに送るように動作可能である。レンダラコンポーネントは、SERVICEDATAMODELオブジェクト内のデータの視覚的表現をレンダリングするように動作可能である。
その上、コードは、さらに、ウィジェットの外見を定義するか非サービス関連機能を実行する設計要素の選択を受け取ることに基づいて、ウェブベースウィジェットコンポジションプラットフォームを介して第2サービスの選択を受け取ることに基づいて、またはWIDGETOBJECTMANAGERモジュールを介して第1サービスの出力を第2サービスの入力に接続する選択を受け取ることに基づいて、自動的に生成することができる。イベントのCONNECTORオブジェクトを生成することができ、CONNECTORオブジェクトは、第2サービスの入力をリスナとして追加し、第1サービスの出力を呼出し側として追加する。ENVELOPEオブジェクトを、イベントを検出することに基づいて呼出し側からリスナに送ることができ、ENVELOPEオブジェクトは、呼出し側からの出力値をカプセル化する。
さらに、第1サービスの出力を第2サービスの入力に接続する選択が有効であることを、LINEMANAGERモジュールを介して検証することができ、第1サービスの出力を第2サービスの入力に接続する選択が有効である場合に、第1サービスの出力を第2サービスの入力に接続する選択の表現を、LINEMANAGERモジュールを介して出力することができる。ウィジェットは、Service Oriented Architecture Protocol (SOAP)呼出しまたは他のHyperText Transfer Protocol (HTTP)呼出しを介して第1サービスと通信するように動作可能とすることができる。データを、第1サービスから受け取ることができ、データを、ウィジェットを介して表示することができる。
また、ウィジェットコンポジションプラットフォームを、What-You-See-Is-What-You-Get (WYSIWYG)統合開発環境(IDE)とすることができる。ウィジェットをユーザデバイスにアップロードすることによるなど、ウィジェットを出力することができる。第1サービスを、ウェブサービス、Really Simple Syndication (RSS)サービス、Multidimensional eXpressions (MDX)サービス、またはネットワークを介して到達可能な任意のデータソース(ウェブサイトなど)とすることができる。少なくとも第1サービスを、少なくとも第1サービスの選択を受け取ることに基づいて、WINDOWOBSERVERモジュールを使用してグローバルウィジェットモデルに追加することができる。ウィジェットコンポジションプラットフォームの状態変化を、WINDOWOBSERVERモジュールを介して追跡することができる。少なくとも第1サービス、少なくとも第1サービスのそれぞれの位置およびサイズ、ならびに少なくとも第1サービスの間の接続を含む配列を、WINDOWOBSERVERモジュールを介して送ることができる。
もう1つの一般的な実施態様によれば、コンピュータプログラム製品が、機械可読媒体内で有形に実施される。コンピュータプログラム製品は、機械によって読み取られた時に、データ処理装置に、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成させるように動作する命令を含み、コードは、選択されたウィジェットエンジンによって呼び出される時に、第1サービスと通信するように動作可能なウィジェットを実施する。
もう1つの一般的な実施態様によれば、デバイスが、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成するように構成されたプロセッサを含み、コードは、選択されたウィジェットエンジンによって呼び出される時に、第1サービスと通信するように動作可能なウィジェットを実施する。
もう1つの一般的な実施態様によれば、デバイスが、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成する手段を含み、コードは、選択されたウィジェットエンジンによって呼び出される時に、第1サービスと通信するように動作可能なウィジェットを実施する。
もう1つの一般的な実施態様によれば、第1サービスのユーザ選択は、ウェブベースのWYSIWYGウィジェットコンポジションプラットフォームを介して受け取られ、第2サービスのユーザ選択は、ウィジェットコンポジションプラットフォームを介して受け取られ、第1サービスの出力を第2サービスの入力に接続するユーザ選択は、ウィジェットコンポジションプラットフォームを介して受け取られる。第1サービスの出力を第2サービスの入力に接続するユーザ選択が有効であるかどうかが検証され、ウィジェットエンジンのユーザ選択が、ウィジェットコンポジションプラットフォームを介して受け取られ、コードが、第1サービス、第2サービス、およびウィジェットエンジンの選択を受け取ることに基づいて自動的に生成され、コードは、選択されたウィジェットエンジンによって呼び出された時に、第1サービスおよび第2サービスと通信するように動作可能なウィジェットを実施する。コードは、ウィジェットエンジンをエミュレートする互換性レイヤを使用してブラウザ環境内で呼び出され、これによって、ウィジェットコンポジションプラットフォーム内でウィジェットをシミュレートし、第1サービスからの第1データが、受け取られ、ENVELOPEオブジェクトが、イベントを検出することに基づいて第1サービスの出力から第2サービスの入力に送られ、このENVELOPEオブジェクトは、第1サービスからの出力値をカプセル化する。第2データが、第2サービスの入力でENVELOPEオブジェクトを受け取ることに基づいて第2サービスから受け取られ、第2データが、出力され、コードが、ユーザにアップロードされる。
1つまたは複数の実施態様の詳細を、添付図面および下の説明に示す。本開示の他の潜在的な特徴および利益は、その説明および図面から、ならびに特許請求の範囲から明白となろう。
類似する符号は、複数の図面を通じて対応する部分を表す。
最も基本的な形で、機能強化されたウィジェットコンポジションプラットフォームは、ユーザが直観的なデスクトップスタイルの開発環境を使用してウィジェットを簡単に作成することを可能にするウェブベースのWYSIWYG IDEである。ウェブブラウザを介してIDEを提供するのにWeb 2.0テクノロジを使用することによって、機能強化されたウィジェットコンポジションプラットフォームを、ローカルコンピュータに追加のアプリケーションソフトウェアをインストールせずに呼び出すことができる。それを行う際に、特殊化されたプログラミングの技量を有しないユーザでさえ、ウィジェットを視覚的に作成し、とりわけYAHOO!(登録商標)ウィジェットエンジンまたはMICROSOFT VISTA(登録商標)ガジェットエンジンなどのさまざまなウィジェットエンジンと共に使用するためにこれらのウィジェットを出力(または「展開」)することができる。IDEは、一般に、初心者または経験のあるソフトウェア開発者がソフトウェアを開発するのを支援するコンピュータアプリケーションを指す。
図1は、1つの一般的なクライアント-サーバ実施態様による例示的なシステム100のブロック図である。短く言うと、システム100は、ネットワーク105を介して接続された、デバイス101と、サーバ102および104とを含む。
デバイス101は、(他の構成要素の中でも)プロセッサ106、ウェブブラウザ107、ウィジェットエンジン109、および出力媒体110を含む。プロセッサ106は、少なくとも第1サービスおよびウィジェットエンジンの選択をウェブベースウィジェットコンポジションプラットフォームを介して受け取ることに基づいてコードを生成するように構成される。選択されたウィジェットエンジンによって呼び出された時に、コードは、第1サービスと通信するように動作可能なウィジェットを実施する(すなわち、引き起こす、遂行する、提供する、出力する、および/または実現する)。ウェブブラウザ107は、機能強化されたウィジェットコンポジションプラットフォームのフロントエンドを表し、機能強化されたウィジェットコンポジションプラットフォームのユーザインターフェースを表示する。ウェブブラウザ107は、MICROSOFT(登録商標) INTERNET EXPLORER(登録商標)ウェブブラウザ、APPLE(登録商標) SAFARI(登録商標)ウェブブラウザ、または他のウェブブラウザなど、任意のウェブブラウザとすることができる。
ウィジェット(または「ガジェット」)は、ローカルデータおよびリモートデータを表示し、更新するクライアント側の自己完結型ウェブアプリケーションまたは別のアプリケーションもしくはエンジンの助けを得てブラウザ環境内で動作するアプリケーションとすることができる。ウィジェットを、YAHOO!(登録商標)ウィジェットエンジンまたはMICROSOFT VISTA(登録商標) SIDEBAR(登録商標)ウィジェットエンジンなどのアプリケーションエンジン(または「ウィジェットエンジン」)を使用して実行することができる。ウィジェットは、データを取り出し、更新するために、SOAP呼出しまたは他のHTTP呼出しを使用してインターネット上のサービスと通信することができる。このデータは、その後、効率的な形でウィジェットによって表示される。SOAPは、しばしばHTTPを使用して、コンピュータネットワークを介してXMLベースのメッセージを交換するプロトコルを指す。
他の構成要素の中で、サーバ102は、機能強化されたウィジェットコンポジションプラットフォームアプリケーション111を含み、サーバ104は、サービス112を含む。サーバ102は、WICKET (商標)またはAsynchronous Java(登録商標)Script and XML (AJAX)動作を処理できる他のフレームワークを使用するAPACHE (商標) TOMCAT (商標)サーバとして実施することができる。サーバ102は、データストレージに、およびウィジェット展開(または「出力」)プロセスを管理するのに使用することができる。
サービスは、ウェブサービス、RSSサービス、MDXサービス、または別のサービスとすることができる。一般に、サービスは、ネットワークを介するインターオペラブルなマシン対マシン相互作用をサポートするように設計されたソフトウェアを含む。さらに、サービスは、ネットワークを介して到達可能な任意のデータソース(ウェブサイトなど)とすることができ、ここで、データは、そのデータソースから取り出され、解析される。たとえば、サービスは、SOAP標準規格に従うeXtensible Markup Language (XML)メッセージを使用して通信するクライアントまたはサーバを指すことができる。もう1つの実施態様では、サーバ102およびサーバ104の機能または構造が、単一のサーバに組み合わされ、あるいは部分的にまたは完全に省略される。
機能強化されたウィジェットコンポジションプラットフォームアプリケーション111のビジネスロジックの多くは、実際には、Java(登録商標)Scriptを使用してデバイス101で呼び出される。これに関して、多くの関連するプロセスが、Java(登録商標)Scriptファイルを介してクライアント側で実施される。リソースのこの分散を用いると、論理が、機能強化されたウィジェットコンポジションプラットフォームを使用してウィジェットを設計する時にクライアントデバイス上で使用可能であり、クライアントデバイスで出力されるウィジェット自体においても使用可能である。
図2は、もう1つの一般的な実施態様による例示的なプロセス200を示す流れ図である。短く言うと、コードは、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいて自動的に生成される。コードは、選択されたウィジェットエンジンによって呼び出された時に、第1サービスと通信するように動作可能なウィジェットを実施する。
より詳細には、プロセス200は、ウェブベースの機能強化されたウィジェットコンポジションプラットフォームのユーザインターフェースが、クライアントデバイス上のウェブブラウザを介して出力される時に開始される(S201)。このユーザインターフェースは、サーバ102などのバックエンドサーバによって生成し、デバイス101のウェブブラウザ107など、クライアントデバイスのウェブブラウザにネットワークを介して転送することができる。これに関して、機能強化されたウィジェットコンポジションプラットフォーム自体は、Java(登録商標)Scriptライブラリをロードし、ユーザインターフェース要素をウェブブラウザ環境内で位置決めすることによって初期化される。
前もって短く参照すると、図3は、1つのそのような例示的なウィジェットコンポジションプラットフォーム300を示し、ウィジェットコンポジションプラットフォーム300は、ウィジェット出力領域301、サービスリポジトリ領域302、設計要素リポジトリ領域304、背景イメージリポジトリ領域305、およびモードセレクタ領域306を含む。ウィジェット出力領域301は、ウィジェットコンポジションプラットフォーム300のうちで、ウィジェットコンポーネントが組み立てられ、配置され、再配置され、接続され、組み立てられたウィジェットオブジェクトが完全なウィジェットをシミュレートするかプレビューする部分である。
図3は、ウィジェットコンポジションプラットフォーム300で設計されつつあるウィジェットオブジェクト307を示す。ウィジェットオブジェクト307は、ウィジェットの外見を有するが、実際には、ウィジェット(具体的には、設計中のウィジェット)が、展開された時にどのように見えるかの視覚化である。下でより詳細に説明するように、ウィジェットオブジェクト307は、サービスと通信するのにウィジェットエンジン固有コードを使用することができるが、ウィジェットオブジェクト307の機能性は、ブラウザ環境内で1つまたは複数のウィジェットエンジンをエミュレートする互換性レイヤの使用を介して提供され、したがって、ウィジェットオブジェクト307を実際のウィジェットから区別する。
サービスが、プラットフォームの作業スペースに追加される時に、サービスメディエータインスタンスマネージャモジュールが、追加されるサービスに関連するサービスメディエータインスタンスのコンポーネントの間で調停するために包括的構文を生成する。この包括的構文は、サービスメディエータインスタンスを作業エリアに動的に含めるのに使用され、サービスの呼出しを処理する。下でより詳細に説明するように、サービスメディエータインスタンスマネージャモジュールは、たとえば、サービスリクエスタコンポーネントをインタープリタコンポーネントに接続するのに、およびインタープリタコンポーネントをレンダラコンポーネントに接続するのに使用することができる。
サービスメディエータインスタンスマネージャモジュールは、他のサービスメディエータインスタンスおよび設計要素インスタンスから受け取られるイベントまたはデータを処理するのに使用することもできる。「イベント」は、一般に、マウスクリックもしくはキー押下げなどのユーザアクションまたは別のアプリケーションからのメッセージの受取りを指す。
サービスリポジトリ領域302は、サービスを表示し、サービスの選択を可能にする。図3の例では、サービスは、使用可能なサービスのリストを展開可能ツリーコントロール309を使用して視覚的にフィルタリングすることによって、またはテキストフィールド310にテキストストリングを入力することによってサービスを検索することによって、選択することができる。他のコントロール、技法、または手法を使用して、サービスを突き止めることもできる。例のサービスには、GOOGLE(登録商標) News、YAHOO!(登録商標) News、GOOGLE(登録商標) Search、New York Stock Exchange Headlines、NASDAQ Headlines、New York Times Headlines、Washington Post Headlines、または他の内部サービスもしくは外部サービスなどのRSSサービスを含めることができる。
サービスリポジトリ領域302は、ウィジェットエンジンの選択を可能にする、コントロール311から313などの少なくとも1つのコントロールをも含む。この選択は、機能強化されたウィジェットコンポジションプラットフォームによって出力されるウィジェットコードのフォーマットまたは言語を決定するか指定するのに使用される。たとえば、YAHOO!ウィジェットを生成する(または「出力する」)ことを望むユーザは、単純に「Deploy Yahoo Widget」コントロール311を選択するはずであり、MICROSOFT WINDOWS(登録商標) VISTAガジェットまたはGOOGLEガジェットを生成することを望むユーザは、それぞれ「Deploy Vista Gadget」コントロール312または「Deploy Google Gadget」コントロール313を選択するはずである。さまざまなウィジェットタイプのそのような選択は、連続的にまたは並列に、あるいは異なるタイプのコントロールを使用して、行うこともできる。さらに、他のウィジェットタイプをコントロール311から313にマッピングすることができ、あるいは、さらなるコントロールを追加することができる。
サービスリポジトリ領域302は、複数の事前定義のサービスを含む場合があるが、これらのサービスを、削除するか再配置することができ、あるいは、サービスリポジトリ領域302を、サービス定義ウィンドウを使用して新しいサービスを作成することによって拡張することができる。サービス定義ウィンドウは、サービスのタイプ、新しいサービスの位置、構成プリファレンス、または他のデータをユーザから受け取ることによって、新しいサービスを追加するのに使用することができる。この構成プロセスに続いて、新しいサービスメディエータインスタンスを、たとえば展開可能ツリーコントロール309または他のコントロールに新しいサービスを追加することによって、サービスリポジトリ領域302に追加された新しいサービスに関連付けることができる。この形で、新しいサービスを追加することができ、既存のサービスを適合させることができる。
機能強化されたウィジェットコンポジションプラットフォーム300内で、サービスから受け取られたデータは、サービスウィンドウ内に表示される。サービスメディエータインスタンスのレンダラコンポーネントからのフォーマットされたデータを使用して、これらのサービスウィンドウは、事前定義のパラメータまたはユーザが調整可能なパラメータによって指定された形で、受け取られたデータを表示する。たとえば、ユーザは、サービスから受け取られたデータをテキストフィールド内、テーブル内、またはチャート内に出力するインタープリタコンポーネントおよびレンダラコンポーネントを割り当てることができる。したがって、各サービスは、サービスリポジトリ領域302内で、その従属するインタープリタコンポーネントおよびレンダラコンポーネントに関連して格納される。
同様に、設計要素リポジトリ領域304は、設計要素を表示し、設計要素の選択を可能にする。設計要素(DE)は、サービスに類似するが、設計要素はサービス呼出しを行わず、入ってくるデータを処理しないので、必ずしもサービスのようにサービスリクエスタコンポーネント、インタープリタコンポーネント、またはレンダラコンポーネントを含まない。さまざまな実施態様で、設計要素を、レイアウト目的に使用される非機能グラフィカル要素とすることができ、あるいは、設計要素が、アイコンの選択時に通信リンクを介してデータを送る能力、またはテキストストリングを受け入れるか出力する能力など、高度な機能性を含むことができる。サンプルの設計要素は、たとえば、変更不能なテキストフィールド、ラベル、形状、もしくはセパレータなどの非機能設計要素、またはmailto:、SKYPE(登録商標)、もしくは電話リンクなどの機能設計要素、または出力テキストストリングもしくはグラフィックスを表示するか入力テキストストリングを受け取るテキストフィールドを含む。
背景イメージリポジトリ領域305は、事前定義の背景テンプレートを表示し、事前定義の背景テンプレートの選択を可能にする。一般に使用される背景テンプレートを、機能強化されたウィジェットコンポジションプラットフォーム300の簡単にアクセスできる部分で提供することによって、初心者ユーザが、高度なプログラミングの技量を必要とせずにまたはこれを使用せずに、カスタム作成されたルックアンドフィールを有する視覚的にすばらしいウィジェットを作成することができる。
モードセレクタ領域306は、現在のモードを表示し、モードセレクタコントロール315を使用することによるなど、異なるモードの選択を可能にする。たとえば、機能強化されたウィジェットコンポジションプラットフォーム300に、設計モードおよびプレビューモードを含めることができる。サービスは、設計モードでウェブベースウィジェットコンポジションプラットフォーム300を介して選択され、ウィジェットは、プレビューモードで、機能強化されたウィジェットコンポジションプラットフォーム300を介してシミュレートされる。
直観的に、ウィジェットを設計モードで設計することができる。このモードでは、機能強化されたウィジェットコンポジションプラットフォーム300は、MICROSOFT(登録商標) VISUAL STUDIO(登録商標)ソフトウェア開発環境などのデスクトップベースのIDEに似て振る舞う。デスクトップベースのIDEに似て、機能強化されたウィジェットコンポジションプラットフォーム300は、ユーザが、サービスリポジトリ領域302または設計要素リポジトリ領域304などからコンポーネントをドラッグアンドドロップして、コンテキスト化のためにコンポーネントを接続し、色またはサイズなど、コンポーネントの視覚的特性を割り当てるか定義することを可能にする。しかし、設計モードにおいても、機能強化されたウィジェットコンポジションプラットフォーム300は、サービスと通信し、適当な時および場合にライブデータを出力し、コンポーネントの間でデータを交換する。
コンテキスト化は、一般に、第2データソースからの以前のデータアクセスの結果に基づいて第1データソースからのデータにアクセスするプロセスを指し、2つの別々のまたはばらばらのデータアクセスから生じるものより関連するデータの取出しをもたらすことができる。したがって、コンテキスト化されたデータは、第2データアクセスの出力または結果を指し、ここで、第2データアクセスの入力項または入力パラメータは、以前に発生した第1データアクセスによって定義される。
単純な例で、比較的静的な売上データベースの第1のアクセスが、先月に購入を行った顧客のリストを返すことができる。比較的静的な売上データベースの第2のアクセスが、先月に購入を行った、ある都市に住む顧客のリストをもたらすことができる。セールスマンが、この都市を訪れることを計画している場合に、先月に購入を行った、その都市に住む顧客のこのリストは、その都市に住む顧客のリストおよび先月に購入を行った顧客の別々のリストよりはるかに貴重であるはずである。先月に購入を行った、その都市に住む顧客のこのリストを2つの別々のソースから入手したので、そのリストは、コンテキスト化されたデータと考えられる。
より複雑な例で、比較的動的なニュースデータベースの第1アクセスが、その利益が増加した会社のリストをもたらすことができ、連絡先データベースの第2アクセスが、これらの会社で働く人事担当者の連絡先情報をもたらすことができる。職業紹介所が、成長している可能性があり、採用を必要としている可能性がある会社への手がかりを探している場合に、このフィルタリングされた連絡先情報は、おそらく貴重である。このフィルタリングされた連絡先情報は、異なるデータソースから取り出されたので、やはりコンテキスト化されたデータと考えられる。同じ調子で、コンテキスト化イベントは、データをあるデータソース(またはサービス)の出力から別のデータソース(またはサービス)の入力に渡させる任意のアクションまたはできごとである。
ウィジェットは、ランタイムモード(またはプレビューモード)でシミュレートされる。このモードでは、ウィジェットオブジェクトは、そのウィジェットが展開時にどのように見えるかをユーザに示すためにプレビューされる。このシミュレーションに基づいて、ユーザは、設計モードに戻って切り替え、要素を再設計することができ、あるいは、ウィジェットを出力することを選択することができる。コンテキスト化またはコンポーネントの間のデータの交換を見るためにランタイムモードに切り替える必要はない。というのは、機能強化されたウィジェットコンポジションプラットフォームが、設計モードでもサービスと通信するからである。
図2に戻って、第1サービスまたは設計要素の選択を、ウェブベースの機能強化されたウィジェットコンポジションプラットフォームを介して受け取る(S202)。第1サービスの選択を、自動選択とすることができ、あるいは、この選択を手動ユーザ選択とすることができる。ユーザ選択は、たとえば、ユーザが、マウスまたは他のポインティングデバイスを使用して、サービスリポジトリ領域302内でサービスを選択するか、設計要素リポジトリ領域304内で設計要素を選択する時に発生する。
図4に、サービス401および402が選択された状態での、例示的なウィジェットコンポジションプラットフォーム300を示す。第1のサービス401は、Australian Stock eXchange (ASX) Gainsサービスを表し、第2のサービス402は、GOOGLE(登録商標) Newsサービスを表す。ユーザは、マウスを使用してサービスリポジトリ領域302内でサービスを選択し、それらのサービスをウィジェット出力領域301にドラッグすることによって、これらのサービスのいずれをも選択することができる。代替案では、サービスを、キーストロークの組合せを介して、タッチスクリーンドラッグアンドドロップの使用または動作の選択によって、音声コマンドを介して、または任意の他の入力技法によって選択することができる。
ウィジェット出力領域301にドラッグされたならば、サービスウィンドウ404および405(それぞれ第1および第2のサービス401および402を表す)が表示され、関連するサービスから受け取られたデータを表フォーマットまたは他の事前定義のフォーマットもしくはユーザ選択可能なフォーマットで出力する。たとえば、サービスウィンドウ404は、会社名、株式相場表示器コード、価格、および利益パーセンテージを含む4つの列にASX Gainsサービス401からの特定の時刻の上位5つの値上がり株を表示する。サービスウィンドウ405は、GOOGLE(登録商標) Newsサービス402からのトップニュースを表示する。特筆すべきことに、図4に示された状態では、各サービスウィンドウに表示される情報が、必ずしも関連せず、コンテキスト化されていない。
各サービスウィンドウは、さまざまなコンポーネントを含む。たとえば、サービスウィンドウ404は、サービスウィンドウ404のユーザ調整可能な境界を定義するフレーム406、入力407などの少なくとも1つの入力コントロール(または「入力」)、および出力409から412などの少なくとも1つの出力コントロール(または「出力」)を含む。サービスへの呼出しが、入力パラメータを含む場合があるので、入力コントロールは、他のサービスまたは設計要素の出力を受け取るのに使用され、これによって、そのサービスによって使用される入力またはクエリパラメータを整形し、または他の形で定義する。同様に、出力コントロールは、サービスまたは設計要素からのデータを別のコンポーネントに出力するのに使用される。
一般に、各入力コントロールは、サービスの関連する入力パラメータ(または「ポート」)の視覚化である。たとえば、架空のニュースサービスが、キーワード、開始日付、および終了日付という入力パラメータまたはポートのデータ検索に基づくことができる。この架空のニュースサービスのサービスウィンドウは、ポートごとに1つの、3つまでの入力コントロールを有するはずである。キーワードデータ(第1ポートに関連する)を、テキストボックス設計要素を使用して、そのテキストボックス設計要素の出力をキーワードポートに関連する入力コントロールに接続することによって、動的にまたは静的に指定することができる。
代替案では、キーワードデータを、キーワードポートに関連する入力コントロールを別のサービスウィンドウの出力に接続することによって動的に指定することができ、ここで、その別のサービスウィンドウの出力は、キーワードを出力すると期待される。さらなる例では、その別のサービスウィンドウが、複数のキーワードを出力する潜在能力を有する場合に、イベント(マウスイベントなど)を、その別のサービスウィンドウに割り当てることができ、特定のキーワードが、イベントの発生に基づいてその別のサービスウィンドウから出力されるようになる。
単一のサービスが、複数のデータアイテムを出力することができる。たとえば、サービスウィンドウ404は、5つの異なる会社のそれぞれの、会社データ、ティッカシンボルデータ、価格データ、およびパーセンテージデータを出力する。したがって、異なる出力コントロールを、異なる別個のデータアイテムに割り当てることができる。図4の例では、出力コントロール409が、会社データに関連し、出力コントロール410が、ティッカシンボルデータに関連し、出力コントロール411が、価格データに関連し、出力コントロール412が、パーセンテージデータに関連する。代替案では、出力コントロール409から412を、サービスウィンドウ404に表示されるデータの第1行から第4行に関連付けることができる。
これに関して、出力コントロール409を介して出力されるデータを、ユーザ対話イベントと組み合わせて、関連するデータ領域または型によって定義することができる。たとえば、出力コントロール409が、会社名に関連する場合に、出力コントロール409を介して出力される会社名データを、会社名の上で発生するマウスイベントに応じて変更することができる。下でさらに詳細に説明するように、これらの入力コントロールおよび出力コントロールは、データをコンテキスト化するのに有用である。ユーザが、ユーザインターフェースを介して、あるサービスウィンドウに関連する出力を第2のサービスウィンドウの入力に接続する場合に、第2のサービスウィンドウで提示されるデータを、ユーザがそのサービスウィンドウ内のデータを選択するかこれと対話することに基づいて動的に更新し、コンテキスト化することができる。
サービスウィンドウ404は、図4では複数の要素、コンポーネント、またはコントロールを含むものとして示されているが、ランタイムモードで、これらの要素の多くを省略するか、透明にすることができる。一例として、フレーム要素406は、設計モードではサービスウィンドウ404の境界を確立するのに有用であるが、プレビューモードでは、視覚的な混乱を減らし、出力データの重要性を強調するかこれを視覚的にフィルタリングするために、除去することができる。
図5は、例示的なサービスメディエータインスタンス500を示すブロック図である。サービスメディエータインスタンスは、ウィジェットコンポジションプラットフォームを介してサービスの選択を受け取ることに基づいて作成される。サービスが選択される場合に、機能強化されたウィジェットコンポジションプラットフォーム300は、選択されたサービスに関連する新しいサービスメディエータインスタンス500ならびに選択されたサービスのレンダリングされた出力を表示する新しいサービスウィンドウ(または「ビジュアルコンテナ」)を作成する。サービスメディエータインスタンス500は、少なくとも、サービスリクエスタコンポーネント501、インタープリタコンポーネント502、およびレンダラコンポーネント504を含む。
サービスリクエスタコンポーネント501は、入力パラメータを集め、入力パラメータに基づいて第1サービスにサービス呼出し(たとえば、+SOAPCALL() 506、INVOKE()、またはサービスリクエスタコンポーネント501の別の関数もしくは概念によって生成されるサービス呼出し)を送り、サービス呼出しの生データ結果505をサービスメディエータインスタンス500に送るように動作可能である。
一実施態様で、サービスリクエスタコンポーネント501は、連合認証(federated authentication)機能性を備えるセキュリティフレームワークに組み込まれ、ウィジェットが各サービスと個別にまたは繰り返して認証することなく複数のサービスと通信することを可能にする。ウェブブラウザ環境内で、連合認証(または「シングルサインオン」認証)の使用は、クライアント証明書認証を介して、デフォルトでサポートすることができる。しかし、ウィジェットが動作できるブラウザ環境の外部では、追加のコンポーネントを含めて、さまざまなサービスリクエスタコンポーネントが連合認証をサポートすることを可能にすることができる。
インタープリタコンポーネント502は、サービスリクエスタコンポーネント501からの生データ結果505を解釈されたSERVICEDATAMODELオブジェクト507に処理し、SERVICEDATAMODELオブジェクト507をサービスメディエータインスタンス500に送るように動作可能である。SERVICEDATAMODELオブジェクト507への生データ結果505の解釈は、+INTERPRET() 509またはインタープリタコンポーネント502の別の態様を使用してXMLコードまたはHTMLコードを解析することによって行うことができる。
生データ結果505を使用できる形に処理した後に、SERVICEDATAMODELオブジェクト507が、解釈されたデータを移植され、サービスメディエータインスタンス500に送られる。インタープリタコンポーネント502は、生データを取り出し、その生データの意味のある解釈を提供するインターフェースとして働くので、そこからデータが受け取られるサービスのタイプに密接に関連するものとすることができる。たとえば、XML for Analysis (XMLA)データを取り出すサービスは、XMLAインタープリタを使用することができる。
レンダラコンポーネント504は、SERVICEDATAMODELオブジェクト507からデータの視覚的表現を出力するように動作可能である。SERVICEDATAMODELオブジェクト507の構造は、標準化されているので、任意のレンダラコンポーネント504を使用して、このオブジェクトを出力することができる。レンダラコンポーネント504は、色プロパティ、チャートタイプまたはチャートプロパティ、列または行のフォーマッティングプロパティ、フォントプロパティ、または他のプロパティなど、視覚化を変更するためにカスタマイズすることができるプロパティを含む。SERVICEDATAMODELオブジェクト507を使用して、レンダラコンポーネント504は、特有にフォーマットされた意味のあるデータをインタープリタコンポーネント502から受け取る。たとえば、テーブルレンダラが、セルの配列で、解釈されたテーブルデータを受け取ることができる。
レンダラタイプに基づいて、レンダラコンポーネント504は、+RENDER()関数510を使用して、ウィジェットオブジェクト上の特定の位置で、指定された次元を有する、処理されたデータの視覚的表現を出力する。処理されたデータの位置および次元は、処理されたデータを出力するためにレンダラコンポーネント504によって使用されるサービスウィンドウによって定義することができる。レンダラコンポーネント504は、ユーザとレンダラコンポーネント504によってレンダリングされたサービスウィンドウとの間の対話に基づいてコンテキスト化イベントをトリガするコンポーネントをも格納する。たとえば、レンダラコンポーネント504は、関連するサービスウィンドウでONMOUSEOVERイベントが発生することに基づいてアクションをトリガするコンポーネントを格納することができる。
サービスまたは設計要素は、ウィジェット出力領域301にドラッグアンドドロップされた後に、WINDOWOBSERVERモジュールを介してグローバルウィジェットモデルに追加され、このWINDOWOBSERVERモジュールは、ウィジェット出力領域301に追加されたすべてのサービスおよび設計要素を追跡する。WINDOWOBSERVERモジュールによって記憶されるデータは、設計プロセス中にまたはウィジェットの展開もしくは出力が要求される時に収集される。その後、WINDOWOBSERVERモジュールは、ウィジェット出力領域301内のサービスウィンドウまたは設計要素ウィンドウの位置、サイズ、または他の特性を記述した配列を配送する。
配列データは、保存され、出力ウィジェット上の適当な位置でサービスおよび設計要素を再初期化するのに使用される。WINDOWOBSERVERモジュールは、サービスおよび設計要素の間の接続をも追跡し、展開または出力の後の再初期化のためにこれらの接続を配送する。一般に、WINDOWOBSERVERモジュールは、ユーザインターフェース上で設計されたウィジェットの各状態変化を追跡し、機能強化されたウィジェットコンポジションプラットフォーム300がユーザの意図した設計に従ってウィジェットを正確に出力することを可能にする。
サービスウィンドウまたは設計要素ウィンドウが、ウィジェット出力領域301から除去される時に、WINDOWOBSERVERモジュールは、展開の前に、そのサービスをグローバルウィジェットモデルから除去する。ウィジェットを出力する選択を受け取る時に、WINDOWOBSERVERモジュールは、ウィジェット出力領域301内のサービスウィンドウおよび設計要素ウィンドウを通って反復し、位置および次元のデータを取り出す。WINDOWOBSERVERモジュールは、さらに、サービスおよび設計要素の間のさまざまな接続を通って反復し、接続情報をグローバルウィジェットモデルに追加する。さらに、WINDOWOBSERVERモジュールは、ウィジェットモデルを定義する全体的次元を更新し、この情報のすべてを使用してウィジェットを出力する。
図2に戻ると、第2サービスの選択を、ウィジェットコンポジションプラットフォームを介して受け取る(S204)。図4に関して上で説明したように、第1の選択されたサービス401は、ASX Gainsサービスであり、このASX Gainsサービスは、ASX-Service Requestorコンポーネント、ASX-Interpreterコンポーネント、および適切にフォーマットされたデータを受け取ることに基づいてテーブルをレンダリングすることができる包括的テーブルレンダラコンポーネント(「GENERICTABLERENDERER」)を使用する。テーブルを移植するために、ASX-Service Requestorコンポーネントは、ASXウェブサイトの内容を読み取り、生データをASX-Interpreterコンポーネントに送る。ASX-Interpreterコンポーネントは、生データのHTMLコードを解析することによってSERVICEDATAMODELオブジェクト507を充てんする。包括的テーブルレンダラコンポーネントは、SERVICEDATAMODELオブジェクト507のテーブル表現を適当なサービスウィンドウ内に示すのに使用される。
第2サービス402は、GOOGLE(登録商標) Newsサービスであり、このGOOGLE(登録商標) Newsサービスは、RSS-Service Requestorコンポーネント、RSS-Interpreterコンポーネント、および包括的テーブルレンダラコンポーネントを使用する。第2サービス402が、ウィジェット出力領域301にドロップされる時に、関連するサービスウィンドウが、WINDOWOBSERVERモジュール内およびWIDGETOBJECTMANAGERモジュール内で登録される。ドラッグ可能サービスウィンドウが作成された後に、RSS-Service Requestorコンポーネントが呼び出され、これによってRSSフィードを読み取る。RSSはXMLを使用するので、RSS-Interpreterコンポーネントは、返されたXMLを処理し、SERVICEDATAMODELオブジェクト507を充てんする。包括的テーブルレンダラは、SERVICEDATAMODELオブジェクト507を受け取り、そのデータのテーブル表現を適当なサービスウィンドウ内にレンダリングする。
2つのサービスを、ウィジェット出力領域301の左側に位置決めされた展開可能ツリーコントロール309からドラッグすることができる。展開可能ツリーコントロール309からウィジェット出力領域301にドラッグされたサービスのそれぞれについて、新しいサービスメディエータインスタンスが、関連するサービスリクエスタコンポーネント、インタープリタコンポーネント、およびレンダラコンポーネントをインスタンス化するために作成される。これらのコンポーネントは、サービスが最初に定義され、サービスリポジトリに保存される時に、サービスメディエータインスタンスに割り当てられる。
第1のサービスまたは設計要素の出力を第2のサービスまたは設計要素の入力に接続する選択を、ウィジェットコンポジションプラットフォームを介して受け取る(S205)。イベントのCONNECTORオブジェクトを生成することができ、このCONNECTORオブジェクトは、第2サービスの入力をリスナとして追加し、第1サービスの出力を呼出し側として追加する。
複数のサービスまたは設計要素が、ウィジェット出力領域301での配置のために選択された時に、これらを、ユーザインターフェースを介してコンテキスト化のために接続することができる。各サービスは、入力の矢印記号および出力のドットなど、関連する記号を有することができる複数の出力ポートおよび入力ポートを有する。ユーザは、単純にマウスまたは他の入力デバイスを使用してポートの間に線を描くことによって、あるサービスまたは設計要素の出力を別のサービスまたは設計要素の入力に接続することができる。
有効な接続が、サービスウィンドウまたは設計要素ウィンドウに描かれたならば、WIDGETOBJECTMANAGERモジュールは、ONBLURイベント、ONCHANGEイベント、ONCLICKイベント、ONFOCUSイベント、ONLOADイベント、ONMOUSEOVERイベント、ONSELECTイベント、ONSUBMITイベント、ONUNLOADイベント、キーストロークイベント、または他のイベントなどの特定のイベントに関連するCONNECTORオブジェクトを作成することによって、この2つのサービスを論理的に接続する。CONNECTORオブジェクトは、受け取るサービスの入力ポートをリスナとして追加し、配送するサービスの出力ポートを呼出し側として追加し、WIDGETOBJECTMANAGERモジュールは、CONNECTORオブジェクトを、配送するサービスに追加する。少なくとも第1サービス401、少なくとも第1サービス401のそれぞれの位置およびサイズ、ならびに第1サービス401と第2サービス402との間の接続を識別する配列を、WINDOWOBSERVERモジュールを介して送ることができる。
有効な接続とは、第1のサービスまたは設計要素の出力ポートと第2のサービスまたは設計要素の入力ポートとの間の接続を指す。名前を出力するサービスの出力から、名前を受け取ることに基づいてアドレスを返すサービスの入力への接続が、有効な接続の例である。あるサービスの出力から同一のサービスの入力への接続が、無効な接続の例である。さらなる例で、有効な接続は、特定のタイプまたはフォーマットのデータを出力する第1のサービスまたは設計要素の出力と、その特定のタイプまたはフォーマットのデータを受け入れる第2のサービスまたは設計要素の入力との間の接続を指す。有効な接続は、ポートの間のそのような基礎になる接続のグラフィカル表現をも指すことができ、たとえば、第1サービスウィンドウ上の出力コントロール(第1サービスの出力ポートに関連する)と、第2サービスウィンドウ上の入力コントロール(第2サービスの入力ポートに関連する)との間に描かれる矢印によって視覚化されるはずである。他のタイプの無効な接続は、あるサービスの入力から発する接続、またはあるサービスの出力から別のサービスの出力に向かう接続である。
同様に、有効な選択は、有効な接続の定義または関連付けをもたらす、自動化された入力またはマウスイベントもしくはキーストロークなどの手動入力である。したがって、あるサービスウィンドウの出力コントロールを同一のサービスウィンドウの入力コントロールに接続することを試みるマウスイベントは、無効な接続を作成するはずであり、したがって、無効な選択である。
図6に、第1サービスウィンドウ404の出力が第2サービスウィンドウ405の入力に接続された状態での、例示的なウィジェットコンポジションプラットフォーム300のウィジェット出力領域301を示す。具体的に言うと、ポインティングデバイスを介するユーザ選択に基づいて、第1サービス404の「company」列に関連する出力コントロール409が、第2サービス405の入力ポート601に接続される。したがって、ASX Gainsサービスウィンドウ404の出力コントロール409は、単純にASXサービス404の出力ポート409(会社名に関連する)からGOOGLE(登録商標) Newsサービスウィンドウ405の入力コントロール601に線を描くことによって、GOOGLE(登録商標) Newsサービスウィンドウ405の入力コントロール601に接続される。
さらに、やはりこのユーザ選択に基づいて、矢印コネクタ602が、この2つのポートコントロールを視覚的に接続するために表示され、ユーザが、接続の表現を簡単に見、変更し、または削除することを可能にする。この特定の例では、さまざまなイベントに応じて、第1サービス404の「company」列に関連する会社名データを、第1サービスから選択的に出力し、第2サービス405を使用するクエリまたは他のコンテキスト化の基礎として第2サービス405に入力パラメータとして自動的に入力することができる。
ユーザが、会社「Sims Grp」または「Babcock」の上にマウスを置く(マウスオーバー)か、これをクリックするか、これにタブ移動するか、他の形で選択する場合に、これらのアクションは、「Sims Grp」または「Babcock」の会社名の第2サービス402への出力をトリガするイベントを構成することができる。これらの会社名を第1サービス401から受け取ることに基づいて、第2サービス402は、GOOGLE(登録商標) Newsサービスを使用して株価上昇の理由または原因を判定する際に「Sims Grp」または「Babcock」をルックアップすることができ、これによって、第1サービス401によって出力されるデータがコンテキスト化される。
LINEMANAGERモジュールを使用して、第1のサービスまたは設計要素の出力を第2のサービスまたは設計要素の入力に接続するユーザ選択が有効であるかどうかを検証する(S206)。あるサービスまたは設計要素の出力から同一のサービスまたは設計要素の入力への接続が、無効な接続の例である。第1サービスの出力を第2サービスの入力に接続する選択が有効と検証される場合には、第1サービスの出力を第2サービスの入力に接続する選択の表現を、LINEMANAGERモジュールを介して出力することができる。
LINEMANAGERモジュールは、接続が有効であることを検証し、その後、線を描く。線は、基礎になるモデル内の2つのサービスのイベントベースの接続の視覚的表現である。この接続を確立するために、WIDGETOBJECTMANAGERが呼び出されて、たとえば、第1サービス401(ASX Gainsサービス)が指定されたイベント(すなわち、MOUSEOVERイベント)のCONNECTORオブジェクトを既に有するかどうかを判定する。
第1サービス401が、指定されたイベントのCONNECTORオブジェクトを既に有する場合には、そのCONNECTORオブジェクトが、サービスの間の接続を定義するのに使用され、またはそのために変更される。第1サービス401が、指定されたイベントのCONNECTORオブジェクトを有しない場合には、その後、新しいCONNECTORオブジェクトが作成される。図6の例では、出力コントロール409に関連するCONNECTORオブジェクトが、リスナとして入力コントロール601を追加する。このCONNECTORオブジェクトは、MOUSEOVERイベントに割り当てられ(または再割り当てされ)、MOUSEOVERイベントがトリガされる時に、MOUSEOVERイベントによって選択されたデータが適当な出力ポートに送られるようになる。
したがって、CONNECTORオブジェクトは、ウィジェットのサービスまたは設計要素を接続し、各CONNECTORオブジェクトは、リスナおよび呼出し側の配列を含む。イベントの発生を検出した時に、CONNECTORオブジェクトは、登録されたリスナを呼び出す。リスナに対応するサービスウィンドウが設計モードで削除される時など、リスナの破壊を検出した時に、CONNECTORオブジェクトは、呼出し側に関連する配列からそのリスナを除去する。CONNECTORオブジェクトは、すべての可視のサービスメディエータインスタンスまたは設計要素インスタンス、およびその接続の可視の表現、ならびにさまざまなウィジェットオブジェクトの破壊をも管理することができる。
図7は、呼出し側、イベント、およびリスナの間の例示的関係を示すブロック図である。具体的に言うと、出力コントロール701から703を、単一のサービスウィンドウの異なる出力ポートに関連付けることができ、出力コントロール701から703のそれぞれを、3つの異なるサービスウィンドウの出力ポートに関連付けることができ、あるいは、出力コントロール701から703を、そのある組合せに関連付けることができる。同様に、入力コントロール705および706のそれぞれを、2つの異なるサービスウィンドウの入力ポートに関連付けることができ、あるいは、入力コントロール705と706との両方を、同一のサービスウィンドウの単一の入力ポートまたは複数の入力ポートに関連付けることができる。
図7の例では、CONNECTORオブジェクト707は、出力コントロール701のサービスウィンドウでのONCLICKイベント709の発生に基づいて、呼出し側出力コントロール701のリスナとして入力コントロール705を定義する配列を記憶する。CONNECTORオブジェクト710は、出力コントロール702のサービスウィンドウでのkeypressイベント711の発生に基づいて、呼出し側出力コントロール702のリスナとして入力コントロール705を定義する配列を記憶する。CONNECTORオブジェクト712は、出力コントロール703のサービスウィンドウでのkeypressイベント714の発生に基づいて、呼出し側出力コントロール703のリスナとして入力コントロール706を定義する配列を記憶する。CONNECTORオブジェクト715は、出力コントロール703のサービスウィンドウでのONCLICKイベント716の発生に基づいて、呼出し側出力コントロール703のリスナとして入力コントロール706を定義する配列を記憶する。
これに関して、単一の呼出し側出力ポートに、異なるイベントの割当および発生に依存して、複数のリスナ入力ポートを関連付けることができる。逆に、単一のリスナ入力ポートに、類似するイベント割当手法に基づいて、複数の呼出し側出力ポートを関連付けることもできる。したがって、サービスおよび設計要素を、最上位にリストされた株に関する情報を提供するサービスウィンドウ内のマウスオーバーなどのイベントを使用して接続することができ、これによって、別のサービスウィンドウに、ウィジェットの異なる領域内のマウスオーバーされた株式シンボルに基づいて動的に検索させ、ニュースを話させることができる。
図2に戻って、ウィジェットコンポジションプラットフォームを介して、ウィジェットエンジンの選択を受け取る(S207)。複数の異なるウィジェットエンジンを使用して、YAHOO!(登録商標)ウィジェットエンジンまたはMICROSOFT VISTA(登録商標)ガジェットエンジンなどのウィジェットを実施することができるので、ユーザは、どのウィジェットエンジンが自分の要求または要望に適するかを選択する機会を提示される。図3では、たとえば、サービスリポジトリ領域302が、それぞれYAHOO!(登録商標)ウィジェットエンジン、MICROSOFT VISTA(登録商標)ガジェットエンジン、またはGOOGLE(登録商標)ガジェットエンジンの選択を可能にするコントロール311から313をも含むが、他のウィジェットエンジンまたはガジェットエンジンを追加し、または置換することもでき、他のタイプのコントロールを使用してそのような選択を受け入れることができる。
したがって、ウィジェットコンポジションプラットフォームは、設計されたウィジェットの複数の展開オプションならびにユーザが異なるサービスをウィジェットに組み立てることを可能にする対話型ランタイム環境を提供する。ウェブブラウザ環境内で、互換性レイヤは、ウィジェットコンポジションプラットフォームがさまざまなウィジェットエンジンによって使用されるコードを実行することを可能にし、機能強化されたウィジェットコンポジションプラットフォーム300内でまたは機能強化されたウィジェットコンポジションプラットフォーム300の外部で選択されたウィジェットエンジンを使用して、同一の自動的に生成されたコードを実行する能力を提供する。
第1のサービスまたは設計要素、第2のサービスまたは設計要素、ならびに/あるいはウィジェットエンジンの選択を受け取ることに基づいて、コードを自動的に生成する(S209)。選択されたウィジェットエンジンによって呼び出される時に、このコードは、第1のおよび/または第2のサービスと通信するように動作可能なウィジェットを実施する。呼出しは、一般に、コンピュータプログラムの命令を実行するプロセスを指し、コードの走行、呼出し、アクセス、ロード、および/または実行を含む。
ウィジェットコンポジションプラットフォームを介するウィジェットエンジンの選択は、ウィジェットの展開または出力を実現する。ウィジェットの現在の状態は、WINDOWOBSERVERモジュールに記憶されたデータを介して決定され、このデータは、生成され適当なコードおよび生成された関連するファイルを組み立てるためにサーバに送り返される。
コードを、さらに、ウィジェットの外見を定義するか非サービス関連機能を実行するために設計要素の選択を受け取ることに基づいて、ウェブベースウィジェットコンポジションプラットフォームを介して第2サービスの選択を受け取ることに基づいて、あるいはWIDGETOBJECTMANAGERモジュールを介して第1サービスの出力を第2サービスの入力に接続する選択を受け取ることに基づいて、自動的に生成することができる。
コードは、選択されたウィジェットエンジンの機能性の少なくとも一部をエミュレートする互換性レイヤを使用してブラウザ環境内で呼び出され、これによって、ウィジェットコンポジションプラットフォーム内でウィジェットをシミュレートする(S210)。ウェブブラウザ環境内でウィジェット様挙動を可能にするために、ウィジェットエンジンは、互換性レイヤを介してシミュレートされ、この互換性レイヤは、1つまたは複数のウィジェットエンジンの機能の少なくとも一部を実施するJava(登録商標)Scriptファイルである。この形で、展開の前にウェブブラウザ内で、ならびに展開後に出力ウィジェット自体の中で、同一のまたは類似するコードを使用することが可能である。
図8は、生成されるコードと互換性レイヤおよびウィジェットエンジンによって生成される応答との間の例示的な関係を示すブロック図である。Java(登録商標)Scriptを使用してウェブブラウザ環境内で作成されるテキストフィールドに関して、新しい<INPUT>コンポーネントが作成される必要があり、プロパティがそのコンポーネントに割り当てられる。YAHOO!(登録商標)ウィジェットエンジンは、<INPUT>コンポーネントを認識しないが、類似する<TEXTAREA>コンポーネントを認識し、この<TEXTAREA>コンポーネントは、Java(登録商標)Scriptによって認識されない。したがって、互換性レイヤは、ウェブブラウザ環境内で<TEXTAREA>コンポーネントを実施する。この形で、自動的に生成されるコードは、そのコードが互換性レイヤを介してウェブブラウザ環境内で呼び出されているのか、選択されたウィジェットエンジンを使用して呼び出されているのかにかかわりなく、<TEXTAREA>コンポーネントを発行することができる。
図8では、ブロック801aは、ウィジェットの展開の前の自動的に生成されたコードを表し、ブロック801bは、展開の後の自動的に生成されたコードを表す。ブラウザ環境内で<INPUT>コンポーネントを生成するのではなく、ブロック801aは、<TEXTAREA>コンポーネントを生成する。この<TEXTAREA>コンポーネントは、互換性レイヤ802によってインターセプトされ、互換性レイヤ802は、この例ではYAHOO!(登録商標)ウィジェットエンジン804をエミュレートし、ウェブブラウザによって理解される、応答内の<INPUT>コンポーネントを生成する。展開されたならば、同一の機能を実行するために、ブロック801bは、同一の<TEXTAREA>コンポーネントを生成し、この<TEXTAREA>コンポーネントは、YAHOO!(登録商標)ウィジェットエンジン804によって理解される。
互換性レイヤを介してウェブブラウザ内で<TEXTAREA>コンポーネントを実施することによって、同一の自動的に生成されるコードを、展開の前にウェブブラウザ内で、および展開の後にウィジェットエンジンによって使用することができる。展開の際に、互換性レイヤコードは、自動的に生成されたコードと共には出力されず、ウィジェットエンジンは、自動的に生成されたコードを受け取り、処理する。このコードは、たとえば、<TEXTAREA>コンポーネントなどのコンポーネントを含むことができる。その結果、ブロック801aおよび801bに含まれるコードは、同一とすることができ、異なる参照を使用するのみとすることができる。
もう1つの例で、YAHOO!(登録商標)ウィジェットは、ウェブブラウザ環境内でテーブルを表すのに使用される、<TABLE>、<SPAN>、<A>などのHyperText Markup Language (HTML)要素を認識しないが、類似する<TEXT>要素および<FRAME>要素を認識する。したがって、互換性レイヤは、TEXT()実施態様とFRAME()実施態様との両方を記憶し、包括的テーブルレンダラが、<TEXT>要素および<FRAME>要素がどのように解析されるかを顧慮せず、展開後にこれらの要素を変更せずに、ウェブブラウザ環境内でこれらの要素を生成することを可能にする。具体的に言うと、ウィジェットコンポジションプラットフォーム内で呼び出された時に、<TEXT>要素および<FRAME>要素は、HTML <TABLE>を返す。YAHOO!(登録商標)ウィジェットエンジンによって呼び出された時に、ウィジェットエンジンは、これらのネイティブ要素を認識し、それ相応に応答する。
図9に、ウィジェットがプレビューされる状態での、例示的なウィジェットコンポジションプラットフォーム300を示す。具体的に言うと、モードセレクタ315が選択される時に、ウィジェットコンポジションプラットフォームは、設計モードからプレビュー(または「ランタイム」)モードに切り替え、ここで、ウィジェットがシミュレートされる。上で示したように、設計モードであっても、ウィジェットコンポジションプラットフォームは、選択されたサービスと通信し、さまざまなサービスウィンドウは、ユーザによって構成されたまたは事前定義の、リアルタイムデータを移植される。
しかし、プレビューモードでは、ウィジェットオブジェクト307の、出力ウィジェット内で示されないある種の視覚的要素が、除去されるか、強調表示されるか、透明にされる。たとえば、図9に示されているように、プレビューモードでは、さまざまなサービスウィンドウに関連する入力コントロールおよび出力コントロールが、サービスウィンドウの境界を定義する拡張可能フレーム(および関連すコントロール)と同様に、除去される。さらに、さまざまなサービスの間の接続の表現も、これらの接続を示すことが望まれない限り、隠すことができる。さらなる図示されていない実施態様では、サービスリポジトリ領域302または設計要素リポジトリ領域304などのウィジェットコンポジションプラットフォームの諸領域も、プレビューモードではビューから隠される。
第1のサービスまたは設計要素から第1データを受け取る(S211)。ウィジェットは、SOAP呼出しまたはHTTP呼出しを介して第1サービスと通信するように動作可能とすることができる。データを第1サービスから受け取ることができ、そのデータをウィジェットを介して表示することができる。図7では、たとえば、第1サービス401が、トップ5 ASX Gainsに関するデータを受け取り、受け取ったデータを表フォーマットで第1サービスウィンドウ404に表示する。第1サービスウィンドウ404は、入力コントロール407に接続された他のサービスまたは設計要素を有しないので、第1サービス401によって受け取られるデータは、包括的な、コンテキスト化されていないデータである。
ENVELOPEオブジェクトが、イベントを検出することに基づいて第1のサービスまたは設計要素の出力から第2のサービスまたは設計要素の入力に送られ、このENVELOPEオブジェクトは、第1のサービスまたは設計要素からの出力値をカプセル化する(S212)。ENVELOPEオブジェクトを、イベントを検出することに基づいて呼出し側からリスナに送ることができ、このENVELOPEオブジェクトは、呼出し側からの出力値をカプセル化する。図7では、たとえば、第1サービスウィンドウ404内の会社名「Babcock」でのマウスオーバーイベントの検出時に、この単語を含むENVELOPEオブジェクトが、第2サービスに入力として送られる。したがって、第2サービスは、入力パラメータとしてこの単語「Babcock」を使用する。
イベントが、配送するサービスによってトリガされたならば、このイベントのCONNECTORオブジェクトが、配送するオブジェクトの登録されたポートから出力データまたは値を受け取ることによって、すべてのリスナを呼び出す。出力データは、ENVELOPEオブジェクトにカプセル化され、受け取るサービスにこのENVELOPEオブジェクトを送る。他のデータの中で、ENVELOPEオブジェクトは、次のようにフォーマットされた、レシーバポート(「リスナ」)およびそのリスナのために要求されたデータの配列を記憶する。
array[receiverPort]=data
第2サービスの入力でENVELOPEオブジェクトを受け取ることに基づいて、第2のサービスまたは設計要素から第2データを受け取り(S214)、第2データを出力する(S215)。リスナは、ENVELOPEオブジェクトを受け取り、これにアクセスし、出力データまたは値をその入力ポートに割り当てる。エンベロープ内容が適当な入力ポートに割り当てられた後に、第2サービスが、関連する入力データを使用して再呼出しされ、再レンダリングされる。
上で示したように、マウスポインタがASX Gainsサービスウィンドウ404内の会社名「Babcock」の上で検出される時に、MOUSEOVERイベントがトリガされる。ASX Gainsサービス401は、CONNECTORオブジェクトがそのMOUSEOVERイベントに関して定義されていると判定し、レシーバポートの配列を記憶する新しいENVELOPEオブジェクトが、インスタンス化される。
接続が、ユーザによってASX Gains (第1)サービス401の出力コントロール409とGOOGLE(登録商標) News (第2)サービス402の入力コントロール601とASX Gainsサービス出力コントロール409との間で作成されたので、ASX Gainsサービスの出力コントロール409に関連するarray[1]は、出力データ(「Babcock」)を記憶する。ENVELOPEオブジェクトが、GOOGLE(登録商標) Newsサービスに送られ、GOOGLE(登録商標) Newsサービスは、そのENVELOPEオブジェクトにアクセスし、値「Babcock」を入力コントロール601に関連するポートに割り当てる。次に、GOOGLE(登録商標) Newsサービスが、再呼出しされ、単語「Babcock」に関する新しいGOOGLE(登録商標) News検索の結果を受け取り、処理し、表示する。
コードをユーザにアップロードし(S216)、これによってプロセス200を終了する(S217)。コードは、たとえばウィジェットをユーザデバイスにアップロードすることによって出力することができる。ウィジェットの現在の状態は、WINDOWOBSERVERモジュールに記憶されたデータを介して決定され、ここで、このデータは、生成され適当なコードを組み立てるためにサーバに送り返され、このコードが、データストリーム内でウェブブラウザに返される。このデータストリームは、たとえば、ユーザによるダウンロードのためのアーカイブ(たとえば、.ZIP)ファイル内にウィジェットファイルを出力する。
ウィジェットのコンポジションが終了した後に、そのウィジェットを、複数のウィジェットエンジンのうちの任意の1つに合わせて調整されたウィジェットとして展開することができる。展開されたウィジェットは、ウェブブラウザのWYSIWYG環境内のウィジェットのスナップショットである。展開マネージャモジュールは、互換性レイヤを使用して、選択されたサービスに基づいてウィジェットまたはガジェットを生成する。したがって、ユーザは、WYSIWYG環境を使用してウィジェットを作成し、そのウィジェットをダウンロードし、他者に送信し、または他の形で展開することができる。
図10に、ウィジェットがユーザに出力された状態での、例示的なウィジェットコンポジションプラットフォーム300を示す。具体的に言うと、コントロール311を選択する時に、ウィジェットの現在の状態が、WINDOWOBSERVERモジュールに記憶されたデータを介して判定される。このデータは、生成され、YAHOO!(登録商標)ウィジェットに適当なコードを組み立てるためにサーバに送り返される。返す(The returns)、データストリーム内でウェブブラウザへのコード、コードの受け取りは、ウェブブラウザにメニュー1001を表示させる。このメニューを使用して、ユーザは、「open」コントロール1002を使用して、.WIDGETファイルとして適切にフォーマットされたコードを呼び出すこと、または「save」コントロール1004を使用してコードを保存することを選択することができる。
図11に示されているように、「open」コントロール1002の選択時に(または保存し、保存されたコードを後に実行することによって)、ウィジェット1101が呼び出される。特定のウィジェットエンジンによって判定されるウィジェットプリファレンスを、ウィジェットプリファレンスメニュー1102を使用して変更することもできる。ウィジェット1101は、WYSIWYG環境内で設計されたので、機能強化されたウィジェットコンポジションプラットフォーム300を介して設計されたウィジェットオブジェクト307に類似してまたはこれと同一に見える。
図12および13にも、例示的なウィジェットコンポジションプラットフォーム300を示すが、これらは、それぞれ設計モードおよびプレビューモードでウィジェットに通信リンクを確立させる機能的設計要素を含む。短く言うと、ウィジェットオブジェクト1201は、第1サービスウィンドウ1202ならびに設計要素ウィンドウ1204および1205を含む。設計要素ウィンドウ1204は、mailto:アイコン1206を含み、設計要素ウィンドウ1205は、SKYPE(登録商標)アイコン1207を含む。
サービスウィンドウ1202は、サービスウィンドウ1202に関連するサービスから受け取られたデータ(電子メールアドレスデータなど)を設計要素ウィンドウ1204に出力する出力コントロール1209を含む。サービスウィンドウ1202内の電子メールアドレスに対するまたはmailto:アイコン1206に対するMOUSEOVERイベントまたはONCLICKイベントは、電子メールメッセージをその電子メールアドレスに対して生成させる。同様に、サービスウィンドウ1202は、サービスウィンドウ1202に関連するサービスから受け取られたデータ(電話番号データなど)を設計要素ウィンドウ1205に出力する出力コントロール1210を含む。サービスウィンドウ1202内の電話番号に対するまたはSKYPE(登録商標)アイコン1207に対するMOUSEOVERイベントまたはONCLICKイベントは、SKYPE(登録商標)サービスを使用して、その電話番号に電話をかけさせる。図13では、矢印コネクタ1211などのさまざまな設計要素が、出力ウィジェットのより正確な描写をもたらすために省略されている。
機能強化されたウィジェットコンポジションプラットフォームによって出力されるウィジェットは、シナリオを包括的に定義するのに、たとえばオンザフライでコンテキスト化されるさまざまなリンクされたデータの動的選択に基づいてパターンを検出するのに、使用することができる。直観的なWYSIWYGインターフェースを使用することによって、データを、非技術的な形で、単一のプラットフォーム内で、特殊化されたプログラミングの技量を必要とせずにコンテキスト化することができる。これに関して、ユーザは、ユーザが結果の情報に永久的にアクセスすることを可能にする形で、ユーザに関連する可能性があるシナリオを定義できるものとすることができる。したがって、展開されるウィジェットが、事前定義のデータコンテキスト化をオンデマンドで実行すると言うことができる。
さらに、機能強化されたウィジェットコンポジションプラットフォームは、サービスからのデータの送信および受信を可能にするのに、およびユーザとサービスをホスティングするサーバとの間のユーザ認証を実現するのに必須のスクリプトおよびコードを準備する。したがって、ユーザは、もはや、基礎になるプロセスを実行するコードを手動で生成することを要求されず、技術的に経験のないユーザにとってさえ、ウィジェット作成がより容易になる。
セキュリティフレームワークは、シングルサインオンまたは連合認証を可能にするデータソースからデータを取り出す機能性を提供する。セキュリティフレームワークは、ランタイム環境内のセキュリティ機能と展開されたウィジェット内のセキュリティ機能との間の相違をも管理し、ウィジェットがセキュアサービス呼出しをサポートすることを可能にする。さらに、ウィジェットは、ユーザが連合認証を介してログインしているかどうかを検出し、ユーザが必要な許可を有する場合に選択的にデータを表示することができる。
他の手法と異なって、機能強化されたウィジェットコンポジションプラットフォームは、たとえばRSSフィード、ウェブサービス、および外部HTMLページを含む異なるデータソースおよび異なるタイプのデータソースからのデータの交換を提供する。さらに、機能強化されたウィジェットコンポジションプラットフォームは、ポータブルなソフトウェアとしてウィジェットを保存する能力を提供し、コミュニティまたはコンテンツ専門家が、技術的な技量または深いコンテンツの知識なしで、他者が使用できるサービスを作成することを可能にする。
図14に、もう1つの一般的な実施態様による、機能強化されたウィジェットコンポジションプラットフォームを実施する例示的なシステム1400の外見を示す。短く言うと、システム1400は、デバイス1401、機能強化されたウィジェットコンポジションプラットフォームアプリケーションを含むサーバ1402、および少なくとも1つのサービスを含むサーバ1404を含む。下でより詳細に説明するように、デバイス1401は、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成するように構成されたプロセッサを含み、このコードは、選択されたウィジェットエンジンによって呼び出された時に、第1サービスと通信するように動作可能なウィジェットを実施する。
さらなる詳細で、デバイス1401のハードウェア環境は、テキストおよびイメージをユーザに表示するディスプレイモニタ1408と、テキストデータおよびユーザコマンドをデバイス1401に入力するキーボード1409と、ディスプレイモニタ1408に表示されたオブジェクトをポイントし、選択し、調整するマウス1410と、固定ディスクドライブ1411と、取り外し可能ディスクドライブ1412と、テープドライブ1414と、ハードコピー出力デバイス1415と、コンピュータネットワーク接続1416と、ビデオおよびオーディオ検出器1417とを含む。
ディスプレイモニタ1408は、デバイス1401によって使用されるソフトウェアアプリケーションならびにデバイス1401を動作させるのに必要なオペレーティングシステムプログラムの表示を含むグラフィックス、イメージ、およびテキストを表示する。ユーザは、キーボード1409を使用して、コンピュータオペレーティングシステムプログラム、ウェブブラウザ、および/またはウィジェットエンジンを動作させ、制御するためのコマンドおよびデータを入力する。ユーザは、マウス1410を使用して、デバイス1401およびデバイス1401で動作するアプリケーションとの対話およびそれらの制御の一部としてディスプレイモニタ1408に表示されるグラフィックスオブジェクトおよびテキストオブジェクトを選択し、調整する。マウス1410は、任意のタイプのポインティングデバイスとすることができ、ジョイスティック、トラックボール、タッチパッド、または他のポインティングデバイスとすることができる。
ビデオおよびオーディオ検出器1417は、デバイス1401が、ディジタルイメージおよび/またはディジタルオーディオを取り込むことを可能にし、スキャナ、ディジタルカメラ、ディジタルビデオカメラ、マイクロホン、または他のディジタル入力デバイスとすることができる。機能強化されたウィジェットコンポジションプラットフォームを提供するのに使用されるソフトウェアを、固定ディスクドライブ1411などのコンピュータ可読記憶媒体上にローカルに格納することができる。
さらなる実施態様で、固定ディスクドライブ1411自体は、redundant array of independent disks (「RAID」)など、複数の物理的ドライブユニットを含むことができ、あるいは、別々のコンピューティングユニットに物理的に配置されるディスクドライブファームまたはディスクアレイとすることができる。そのようなコンピュータ可読記憶媒体は、デバイス1401が、取り外し可能記憶媒体および取り外し不能記憶媒体に格納された、コンピュータ実行可能処理ステップ、アプリケーションプログラム、および類似物にアクセスすることを可能にする。
無線または有線のコンピュータネットワーク接続1416は、モデム接続、イーサネット(登録商標)を含むローカルエリアネットワーク(「LAN」)接続、またはディジタル加入者回線(「DSL」)、ケーブル高速インターネット接続、ダイヤルアップ接続、T-1回線、T-3回線、光ファイバ接続、もしくは衛星接続などのブロードバンド広域ネットワーク(「WAN」)接続とすることができる。ネットワーク1406は、LANネットワーク、会社または政府のWANネットワーク、インターネット、または他のネットワークのうちの1つまたは複数とすることができる。
コンピュータネットワーク接続1416は、有線または無線のコネクタを使用する。例の無線コネクタは、たとえば、INFRARED DATA ASSOCIATION(登録商標)(「IrDA(登録商標)」)無線コネクタ、光無線コネクタ、米国電気電子技術者協会(INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(登録商標))(「IEEE(登録商標)」) Standard 802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ、ニアフィールド通信(「NFC」)コネクタ、直交周波数分割多重(「OFDM」)ウルトラワイドバンド(「UWB」)無線コネクタ、time-modulated ultra wide band (「TM-UWB」)無線コネクタ、または他の無線コネクタを含む。例の有線コネクタは、たとえば、IEEE(登録商標)-1394 FIREWIRE(登録商標)コネクタ、Universal Serial Bus (「USB」)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタを含む。
取り外し可能ディスクドライブ1412は、デバイス1401からデータをオフロードするかデバイス1401にデータをアップロードするのに使用される取り外し可能ストレージデバイスである。取り外し可能ディスクドライブ1412は、フロッピディスクドライブ、IOMEGA(登録商標) ZIP(登録商標)ドライブ、コンパクトディスク読取専用メモリ(「CD-ROM」)ドライブ、CD-Recordableドライブ(「CD-R」)、CD-Rewritableドライブ(「CD-RW」)、フラッシュメモリ、USBフラッシュドライブ、外部ハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、High-Density Digital Versatile Disc (「HD-DVD」)光ディスクドライブ、Blu-Ray光ディスクドライブ、Holographic Digital Data Storage (「HDDS」)光ディスクドライブ、あるいは、DVD-Recordable (「DVD-R」または「DVD+R」)、DVD-Rewritable (「DVD-RW」または「DVD+RW」)、またはDVD-RAMなどのさまざまな記録可能もしくは書換可能なディジタル多用途ディスク(「DVD」)ドライブのうちの1つとすることができる。オペレーティングシステムプログラム、アプリケーション、およびさまざまなデータファイルが、ディスクに格納され、このディスクは、固定ディスクドライブ1411または取り外し可能ディスクドライブ1412の取り外し可能媒体に格納される。
テープドライブ1414は、デバイス1401からデータをオフロードするかデバイス1401にデータをアップロードするのに使用されるテープストレージデバイスである。テープドライブ1414は、quarter-inch cartridge (「QIC」)、4mmディジタルオーディオテープ(「DAT」)、8mm digital linear tape (「DLT」)ドライブ、または他のタイプのテープとすることができる。
ハードコピー出力デバイス1415は、オペレーティングシステムプログラムおよびアプリケーションに出力機能を提供する。ハードコピー出力デバイス1415は、テキストデータもしくはイメージデータまたはテキストデータもしくはイメージデータのグラフィカル表現を含む、有形の出力オブジェクトを作るプリンタまたは任意の出力デバイスとすることができる。ハードコピー出力デバイス1415は、デバイス1401に直接に接続されるものとして図示されているが、そうである必要はない。たとえば、ハードコピー出力デバイス1415を、有線ネットワークまたは無線ネットワークなどのネットワークインターフェースを介してデバイス1401に接続することができる。
さらに、デバイス1401は、図14でデスクトップPCとして示されているが、さらなる実施態様で、デバイス1401を、ラップトップ機、ワークステーション、ミッドレンジコンピュータ、メインフレーム、組込みシステム、電話機、ハンドヘルドコンピュータ、タブレットコンピュータ、PDA、または他のタイプのコンピュータとすることができる。
図15は、図14に示された1つのコンピュータの内部アーキテクチャを示すブロック図である。このコンピューティング環境は、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理される中央処理装置(「CPU」)1501と、グラフィック、イメージ、およびテキストをディスプレイモニタ1408にレンダリングする通信インターフェースおよび処理機能を提供するディスプレイインターフェース1502と、キーボード1409への通信インターフェースを提供するキーボードインターフェース1504と、マウス1410または同等のポインティングデバイスへの通信インターフェースを提供するポインティングデバイスインターフェース1505と、ビデオおよびオーディオ検出器1417への通信インターフェースを提供するディジタル入力インターフェース1506と、ハードコピー出力デバイス1415への通信インターフェースを提供するハードコピー出力デバイスインターフェース1508と、コンピュータ命令およびデータがコンピュータCPU 1501による処理のために不揮発性メモリデバイスに記憶される、ランダムアクセスメモリ(「RAM」)1510と、基本的な入出力(「I/O」)、スタートアップ、またはキーボード1409からのキーストロークの受け取りなどの基本的なシステム機能の不変の低水準システムコードまたはデータが不揮発性メモリデバイスに格納される、読取専用メモリ(「ROM」)1511と、オペレーティングシステム1521、アプリケーションプログラム1522(ウェブブラウザアプリケーション1523、ウィジェットエンジン1524、および他のアプリケーション1525を必要に応じて含む)、およびデータファイル1526を含むファイルが格納される、ストレージ1520または他の適切なタイプのメモリ(たとえば、ランダムアクセスメモリ(「RAM」)、読取専用メモリ(「ROM」)、プログラマブル読取専用メモリ(「PROM」)、消去可能プログラマブル読取専用メモリ(「EPROM」)、電気的消去可能プログラマブル読取専用メモリ(「EEPROM」)、磁気ディスク、光ディスク、フロッピディスク、ハードディスク、取り外し可能カートリッジ、フラッシュドライブなど)と、コンピュータネットワーク接続1416を介するネットワーク1406への通信インターフェースを提供するコンピュータネットワークインターフェース1516とを含む。構成するデバイスおよびコンピュータCPU 1501は、コンピュータバス1527を介して互いに通信する。
ウィジェットエンジン1524は、TAFRI (商標)ウィジェットエンジン、WINDOWS(登録商標) SIDEBAR(登録商標)ガジェットエンジンもしくはKAPSULES (商標)ガジェットエンジンなどのMICROSOFT(登録商標)ガジェットエンジン、KONFABULTOR (商標)ウィジェットエンジンなどのYAHOO!(登録商標)ウィジェットエンジン、APPLE(登録商標) DASHBOARD(登録商標)ウィジェットエンジン、GOOGLE(登録商標)ガジェットエンジン、KLIPFOLIO(登録商標)ウィジェットエンジン、OPERA (商標)ウィジェットエンジン、WIDSETS (商標)ウィジェットエンジン、SAP(登録商標)ウィジェットエンジンもしくはガジェットエンジン、独自のウィジェットエンジンもしくはガジェットエンジン、または、デスクトップ上で物理的にもたらされたアプレットのホストシステムソフトウェアを提供する他のウィジェットエンジンもしくはガジェットエンジンとすることができる。
短く言うと、コンピュータプログラム製品は、ディスク1520すなわち機械可読記憶媒体内で有形に実施される。コンピュータプログラム製品は、機械によって読み取られた時に、データ処理装置に、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成させるように動作する命令を含み、このコードは、選択されたウィジェットエンジンによって呼び出された時に、第1サービスと通信するように動作可能なウィジェットを実施する。
RAM 1510は、オペレーティングシステム、アプリケーションプログラム、およびデバイスドライバなどのソフトウェアプログラムの実行中にコンピュータCPU 1501にすばやいRAMストレージを提供するために、コンピュータバス1527とインターフェースする。より具体的には、コンピュータCPU 1501は、ソフトウェアプログラムを実行するために、固定ディスクドライブ1411または他の媒体からRAM 1510のフィールドにコンピュータ実行可能プロセスステップをロードする。データは、RAM 1510に格納され、ここで、データは、実行中にコンピュータCPU 1501によってアクセスされる。
図15に示されているように、デバイス1401は、オペレーティングシステム1521と、ワードプロセッシング、スプレッドシート、プレゼンテーション、ゲーミング、ウェブブラウジング、Java(登録商標)Scriptエンジン、または他のアプリケーションなどのアプリケーションプログラム1522とのコンピュータ実行可能コードを記憶する。上で説明した実施態様を使用して機能強化されたウィジェットコンポジションプラットフォームを提供することが可能ではあるが、本開示による機能を、ダイナミックリンクライブラリ(「DLL」)、またはAPPLE(登録商標) SAFARI(登録商標)ウェブブラウザもしくはMICROSOFT(登録商標) INTERNET EXPLORER(登録商標)ウェブブラウザなどのインターネットウェブブラウザなどの他のアプリケーションプログラムへのプラグインとして実施することも可能である。
コンピュータCPU 1501は、INTEL(登録商標)またはAMD(登録商標)のプロセッサ、POWERPC(登録商標)プロセッサ、MIPS(登録商標)縮小命令セットコンピュータ(「RISC」)プロセッサ、SPARC(登録商標)プロセッサ、ACORN(登録商標) RISC Machine (「ARM(登録商標)」)アーキテクチャプロセッサ、HP ALPHASERVER(登録商標)プロセッサ、またはメインフレーム用の独自コンピュータプロセッサを含む複数の高性能コンピュータプロセッサのうちの1つである。追加の配置で、コンピュータCPU 1501は、高性能ワークステーションおよびサーバに見られる複数CPU構成またはメインフレームに見られる複数のスケーラブル処理ユニットを含む、複数の処理ユニットである。
オペレーティングシステム1521は、INTEL(登録商標)およびPOWERPC(登録商標)ベースのワークステーションおよびサーバ用のAPPLE(登録商標) MAC OS X(登録商標)か、MICROSOFT(登録商標) WINDOWS(登録商標) NT(登録商標)/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP Workstationか、MICROSOFT(登録商標) WINDOWS(登録商標) VISTA(登録商標)/WINDOWS(登録商標) NT(登録商標)/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP Serverか、IBM(登録商標)ワークステーションおよびサーバ用のAIX(登録商標)、SUN(登録商標)ワークステーションおよびサーバ用のSUNOS(登録商標)、INTEL(登録商標) CPUベースのワークステーションおよびサーバ用のLINUX(登録商標)、HP(登録商標)ワークステーションおよびサーバ用のHP UX WORKLOAD MANAGER(登録商標)、SGI(登録商標)ワークステーションおよびサーバ用のIRIX(登録商標)、Digital Equipment Corporationコンピュータ用のVAX/VMS、HP ALPHASERVER(登録商標)ベースのコンピュータ用のOPENVMS(登録商標)を含むさまざまなUNIX(登録商標)フレイバーのオペレーティングシステムか、モバイルデバイス用のSYMBIAN OS(登録商標)、NEWTON(登録商標)、IPOD(登録商標)、WINDOWS(登録商標) MOBILE(登録商標)またはWINDOWS(登録商標) CE(登録商標)、PALM(登録商標)、NOKIA(登録商標) OS (「NOS」)、OSE(登録商標)、またはEPOC(登録商標)か、コンピュータまたは組込みシステム用の独自オペレーティングシステムとすることができる。オペレーティングシステム1521用のアプリケーション開発のプラットフォームまたはフレームワークは、BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)(「BREW(登録商標)」)、Java(登録商標) Platform, Micro Edition (「Java(登録商標) ME」)またはJava(登録商標) 2 Platform, Micro Edition (「J2ME(登録商標)」)、PYTHON (商標)、FLASH LITE(登録商標)、またはMICROSOFT(登録商標).NET Compactとすることができる。
図14および15は、機能強化されたウィジェットコンポジションを実現するように構成されたプログラムコード、プログラムステップ、またはプロセスステップを実行するコンピューティングシステムの1つの可能な実施態様を示すが、他のタイプのコンピュータも、使用することができる。
形式的な問題として、用語「ユーザ」は、これらのプロセスと対話する実体を記述するのに一貫して使用されてきたが、そのような一般化は、さまざまな異なる、オーバーラップする、またはオーバーラップしない状態でこれらのプロセスと対話する、複数の、関連するまたは関連しない、生きているまたは自動化された実体または存在を記述することも意図されている。類似する調子で、用語「選択」は、本明細書全体を通じて、人間による手動選択、非人間による自動選択、またはこれらのある組合せを表すことが意図されている。
最後に、簡単にするために、本明細書線全体を通じて、用語「Java(登録商標)Script」は、SUN MICROSYSTEMS(登録商標) JAVA(登録商標)SCRIPT(登録商標)プログラミング言語を指すことが意図され、用語「XML」は、「eXtensible Markup Language」を指すことが意図されている。さらに、用語「ウィジェット」に言及する場所は、必ず用語「ガジェット」、「コントロール」、または「ミニアプリケーション」に置換することができる。
複数の実施態様を説明した。それでも、本開示の趣旨および範囲から逸脱せずに、さまざまな変更を行えることを理解されたい。したがって、他の実施態様は、添付の特許請求の範囲に含まれる。
1つの一般的な実施態様による例示的なシステムを示すブロック図である。 もう1つの一般的な実施態様による例示的なプロセスを示す流れ図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 例示的なサービスメディエータインスタンスを示すブロック図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 呼出し側、イベント、およびリスナの間の例示的関係を示すブロック図である。 生成されるコードと互換性レイヤおよびウィジェットエンジンによって生成される応答との間の例示的な関係を示すブロック図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 例示的なウィジェットを示す図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 ある状態での、もう1つの一般的な実施態様による例示的なウィジェットコンポジションプラットフォームを示す図である。 もう1つの一般的な実施態様による例示的なシステムの外見を示す図である。 図14に示されたデバイスの内部アーキテクチャを示すブロック図である。
符号の説明
100 システム
101 デバイス
102 サーバ
104 サーバ
105 ネットワーク
106 プロセッサ
107 ウェブブラウザ
109 ウィジェットエンジン
110 出力媒体
111 機能強化されたウィジェットコンポジションプラットフォームアプリケーション
112 サービス
200 プロセス
300 ウィジェットコンポジションプラットフォーム
301 ウィジェット出力領域
302 サービスリポジトリ領域
304 設計要素リポジトリ領域
305 背景イメージリポジトリ領域
306 モードセレクタ領域
307 ウィジェットオブジェクト
309 展開可能ツリーコントロール
310 テキストフィールド
311 「Deploy Yahoo Widget」コントロール
312 「Deploy Vista Gadget」コントロール
313 「Deploy Google Gadget」コントロール
315 モードセレクタコントロール
401 サービス
402 サービス
404 サービスウィンドウ
405 サービスウィンドウ
406 フレーム
407 入力
409 出力コントロール
410 出力コントロール
411 出力コントロール
412 出力コントロール
500 サービスメディエータインスタンス
501 サービスリクエスタコンポーネント
502 インタープリタコンポーネント
504 レンダラコンポーネント
505 生データ結果
506 +SOAPCALL()
507 SERVICEDATAMODELオブジェクト
509 +INTERPRET()
510 +RENDER()関数
601 入力ポート
601 入力コントロール
602 矢印コネクタ
701 出力コントロール
702 出力コントロール
703 出力コントロール
705 入力コントロール
706 入力コントロール
707 CONNECTORオブジェクト
709 ONCLICKイベント
710 CONNECTORオブジェクト
711 keypressイベント
712 CONNECTORオブジェクト
714 keypressイベント
715 CONNECTORオブジェクト
716 ONCLICKイベント
801a ブロック
801b ブロック
802 互換性レイヤ
804 YAHOO!(登録商標)ウィジェットエンジン
1001 メニュー
1002 「open」コントロール
1004 「save」コントロール
1101 ウィジェット
1102 ウィジェットプリファレンスメニュー
1201 ウィジェットオブジェクト
1202 第1サービスウィンドウ
1204 設計要素ウィンドウ
1205 設計要素ウィンドウ
1206 mailto:アイコン
1207 SKYPE(登録商標)アイコン
1209 出力コントロール
1210 出力コントロール
1211 矢印コネクタ
1400 システム
1401 デバイス
1402 サーバ
1404 サーバ
1406 ネットワーク
1408 ディスプレイモニタ
1409 キーボード
1410 マウス
1411 固定ディスクドライブ
1412 取り外し可能ディスクドライブ
1414 テープドライブ
1415 ハードコピー出力デバイス
1416 コンピュータネットワーク接続
1417 ビデオおよびオーディオ検出器
1501 中央処理装置(「CPU」)
1502 ディスプレイインターフェース
1504 キーボードインターフェース
1505 ポインティングデバイスインターフェース
1506 ディジタル入力インターフェース
1508 ハードコピー出力デバイスインターフェース
1510 ランダムアクセスメモリ(「RAM」)
1511 読取専用メモリ(「ROM」)
1516 コンピュータネットワークインターフェース
1520 ストレージ
1521 オペレーティングシステム
1522 アプリケーションプログラム
1523 ウェブブラウザアプリケーション
1524 ウィジェットエンジン
1525 他のアプリケーション
1526 データファイル
1527 コンピュータバス

Claims (20)

  1. ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを自動的に生成する段階を含み、前記コードが、前記選択されたウィジェットエンジンによって呼び出される時に、前記第1サービスと通信するように動作可能なウィジェットを実施する、コンピュータ実施される方法。
  2. 前記ウェブベースウィジェットコンポジションプラットフォームが、設計モードおよびプレビューモードをさらに含み、
    前記第1サービスが、設計モードで前記ウェブベースウィジェットコンポジションプラットフォームを介して選択され、
    前記ウィジェットが、プレビューモードで前記ウェブベースウィジェットコンポジションプラットフォームを介してシミュレートされる
    請求項1に記載の方法。
  3. 前記ウィジェットエンジンをエミュレートする互換性レイヤを使用してブラウザ環境内で前記コードを呼び出し、これによって前記ウィジェットコンポジションプラットフォーム内で前記ウィジェットをシミュレートする段階をさらに含む、請求項1に記載の方法。
  4. 前記選択を受け取ることに基づいてサービスメディエータインスタンスを作成する段階をさらに含み、前記サービスメディエータインスタンスが、
    入力パラメータを集め、
    前記入力パラメータに基づいて前記第1サービスにサービス呼出しを送り、
    前記サービス呼出しの生データ結果を前記サービスメディエータインスタンスに送る
    ように動作可能なサービスリクエスタコンポーネントと、
    前記生データ結果を解釈されたSERVICEDATAMODELオブジェクトに処理し、
    前記SERVICEDATAMODELオブジェクトを前記サービスメディエータインスタンスに送る
    ように動作可能なインタープリタコンポーネントと、
    前記SERVICEDATAMODELオブジェクト内のデータの視覚的表現をレンダリングするように動作可能なレンダラコンポーネントと
    を含む、請求項1に記載の方法。
  5. 前記コードが、さらに、前記ウィジェットの外見を定義する設計要素の選択を受け取ることに基づいてまたは非サービス関連機能を実行する設計要素の選択を受け取ることに基づいて自動的に生成される、請求項1に記載の方法。
  6. 前記コードが、さらに、前記ウェブベースウィジェットコンポジションプラットフォームを介して第2サービスの選択を受け取ることに基づいて自動的に生成される、請求項1に記載の方法。
  7. 前記コードが、さらに、WIDGETOBJECTMANAGERモジュールを介して、前記第1サービスの出力を前記第2サービスの入力に接続する選択を受け取ることに基づいて自動的に生成される、請求項6に記載の方法。
  8. イベントのCONNECTORオブジェクトを生成する段階であって、前記CONNECTORオブジェクトが、前記第2サービスの前記入力をリスナとして追加し、前記第1サービスの前記出力を呼出し側として追加する、段階と、
    前記イベントを検出することに基づいて前記呼出し側から前記リスナにENVELOPEオブジェクトを送る段階であって、前記ENVELOPEオブジェクトが、前記呼出し側からの出力値をカプセル化する、段階と
    をさらに含む、請求項7に記載の方法。
  9. LINEMANAGERモジュールを介して、前記第1サービスの前記出力を前記第2サービスの前記入力に接続する前記選択が有効であることを検証する段階と、
    前記第1サービスの前記出力を前記第2サービスの前記入力に接続する前記選択が有効である場合に、前記LINEMANAGERモジュールを介して、前記第1サービスの前記出力を前記第2サービスの前記入力に接続する前記選択の表現を出力する段階と
    をさらに含む、請求項8に記載の方法。
  10. 前記ウィジェットが、Service Oriented Architecture Protocol (SOAP)呼出しまたは他のHyperText Transfer Protocol (HTTP)呼出しを介して前記第1サービスと通信するように動作可能である、請求項1に記載の方法。
  11. 前記第1サービスからデータを受け取る段階と、
    前記ウィジェットを介して前記データを表示する段階と
    をさらに含む、請求項1に記載の方法。
  12. 前記ウィジェットコンポジションプラットフォームが、What-You-See-Is-What-You-Get (WYSIWYG)統合開発環境(IDE)を含む、請求項1に記載の方法。
  13. 前記ウィジェットを出力する段階をさらに含む、請求項1に記載の方法。
  14. 前記ウィジェットを出力する段階が、前記ウィジェットをユーザデバイスにアップロードする段階をさらに含む、請求項13に記載の方法。
  15. 前記第1サービスが、ウェブサービス、Really Simple Syndication (RSS)サービス、またはMultidimensional eXpressions (MDX)サービスである、請求項1に記載の方法。
  16. 前記少なくとも第1サービスの前記選択を受け取ることに基づいて、WINDOWOBSERVERモジュールを使用して前記少なくとも第1サービスをグローバルウィジェットモデルに追加する段階をさらに含む、請求項1に記載の方法。
  17. 前記WINDOWOBSERVERモジュールを介して前記ウィジェットコンポジションプラットフォームの状態変化を追跡する段階をさらに含む、請求項16に記載の方法。
  18. 前記少なくとも第1サービス、前記少なくとも第1サービスのそれぞれの位置およびサイズ、ならびに前記少なくとも第1サービスの間の接続を含む配列を前記WINDOWOBSERVERモジュールを介して送る段階をさらに含む、請求項17に記載の方法。
  19. 機械によって読み取られた時に、データ処理装置に、ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成させるように動作する命令を含む、機械可読媒体内で有形に実施されるコンピュータプログラム製品であって、前記コードが、前記選択されたウィジェットエンジンによって呼び出される時に、前記第1サービスと通信するように動作可能なウィジェットを実施する、コンピュータプログラム製品。
  20. ウェブベースウィジェットコンポジションプラットフォームを介して少なくとも第1サービスおよびウィジェットエンジンの選択を受け取ることに基づいてコードを生成するように構成されたプロセッサを含むデバイスであって、前記コードが、前記選択されたウィジェットエンジンによって呼び出される時に、前記第1サービスと通信するように動作可能なウィジェットを実施する、デバイス。
JP2008152230A 2007-06-11 2008-06-10 機能強化されたウィジェットコンポジションプラットフォーム Active JP5086183B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/761,139 2007-06-11
US11/761,139 US8578330B2 (en) 2007-06-11 2007-06-11 Enhanced widget composition platform

Publications (2)

Publication Number Publication Date
JP2008305411A true JP2008305411A (ja) 2008-12-18
JP5086183B2 JP5086183B2 (ja) 2012-11-28

Family

ID=39731683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008152230A Active JP5086183B2 (ja) 2007-06-11 2008-06-10 機能強化されたウィジェットコンポジションプラットフォーム

Country Status (4)

Country Link
US (2) US8578330B2 (ja)
EP (1) EP2003573A1 (ja)
JP (1) JP5086183B2 (ja)
CN (1) CN101373431B (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093799A1 (en) * 2004-09-08 2011-04-21 Universal Electronics Inc. System and method for configuration of controlling device functionality
US20070061699A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Named object view of electronic data report
US20110145689A1 (en) * 2005-09-09 2011-06-16 Microsoft Corporation Named object view over multiple files
US8495494B2 (en) * 2007-04-12 2013-07-23 Nuance Communications, Inc. Method and system for mapping a virtual human machine interface for a mobile device
US20090100329A1 (en) * 2007-10-04 2009-04-16 Danny Javier Espinoza Method of Deploying a Web Widget In a Desktop Widget Platform
US8146110B2 (en) * 2007-12-10 2012-03-27 Microsoft Corporation Service platform for in-context results
US8589955B2 (en) * 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices
US10460085B2 (en) 2008-03-13 2019-10-29 Mattel, Inc. Tablet computer
US20100299183A1 (en) * 2009-05-20 2010-11-25 Robb Fujioka Device and Method for Creating, Distributing, Managing and Monetizing Widgets Including Streaming
US8918758B2 (en) 2008-04-11 2014-12-23 Adobe Systems Incorporated Systems and methods for storing object and action data during media content development
US8769490B2 (en) * 2008-09-16 2014-07-01 Oracle International Corporation Desktop widget engine emulator component for a rapid application development tool
US9063740B2 (en) * 2008-09-16 2015-06-23 Oracle International Corporation Web widget component for a rapid application development tool
US8719896B2 (en) * 2008-09-16 2014-05-06 Oracle International Corporation Widget host container component for a rapid application development tool
US8645489B1 (en) * 2008-10-30 2014-02-04 Adobe Systems Incorporated Systems and methods for the developing content and applications in hosted and non-hosted development environments
US9032312B2 (en) * 2008-12-15 2015-05-12 Mastercard International Incorporated Platform for generating composite applications
KR101470499B1 (ko) * 2008-12-30 2014-12-08 삼성전자주식회사 휴대용 단말기의 위젯 제작 장치 및 방법
US8510333B2 (en) * 2008-12-31 2013-08-13 Verizon Patent And Licensing Inc. Methods, systems, and apparatus for developing widgets
US8695020B2 (en) * 2009-02-06 2014-04-08 Visicom Media, LLC Techniques for customizing a toolbar using widgets
EP2362306A4 (en) * 2009-05-11 2012-04-25 Huawei Tech Co Ltd METHOD AND SERVER FOR WIDGET COMMUNICATION
US8239781B2 (en) * 2009-06-30 2012-08-07 Sap Ag Drag and drop of an application component to desktop
EP2320623B1 (fr) * 2009-11-09 2020-04-01 Orange Procédé de fourniture d'un service
US20110119609A1 (en) * 2009-11-16 2011-05-19 Apple Inc. Docking User Interface Elements
CN101894155A (zh) * 2010-07-06 2010-11-24 中兴通讯股份有限公司 widget的分类方法及系统、终端
US8479154B1 (en) 2010-08-20 2013-07-02 Google Inc. Interaction with partially constructed mobile device applications
US8068011B1 (en) 2010-08-27 2011-11-29 Q Street, LLC System and method for interactive user-directed interfacing between handheld devices and RFID media
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
USD684986S1 (en) * 2010-11-29 2013-06-25 Cisco Technology, Inc. Display screen with a graphical interface
US8972873B2 (en) * 2010-11-30 2015-03-03 International Business Machines Corporation Multi-environment widget assembly, generation, and operation
US9274862B2 (en) 2010-12-09 2016-03-01 Mimecast North America Inc. Reducing latency in performing a task among distributed systems
US9111238B2 (en) * 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data feed having customizable analytic and visual behavior
US9104992B2 (en) 2010-12-17 2015-08-11 Microsoft Technology Licensing, Llc Business application publication
US20120272190A1 (en) * 2011-04-20 2012-10-25 Raytheon Company Method and System for Graphically Enabled Service Oriented Architecture
US8442980B2 (en) * 2011-07-07 2013-05-14 Oracle International Corporation Attribute change coalescing in order to deal with component moves on a page
WO2013044515A1 (en) * 2011-09-30 2013-04-04 Nokia Corporation Method and apparatus for inter-widget communication
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9098312B2 (en) 2011-11-16 2015-08-04 Ptc Inc. Methods for dynamically generating an application interface for a modeled entity and devices thereof
US9576046B2 (en) 2011-11-16 2017-02-21 Ptc Inc. Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof
KR101873744B1 (ko) 2011-11-29 2018-07-03 엘지전자 주식회사 이동단말기 및 그 제어방법
EP2795448A4 (en) * 2011-12-23 2015-08-12 Airstrip Ip Holdings Llc SYSTEMS AND METHODS FOR DEVELOPING MULTIPLATEFORM APPLICATIONS FOR COMPUTER DEVICES
US20140047409A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Enterprise application development tool
US20140047368A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Application development tool
US20140082476A1 (en) * 2012-09-17 2014-03-20 ShopAdvisor, Inc. Asynchronous method and system for integrating user-selectable icons on web pages
CN102903054A (zh) * 2012-09-27 2013-01-30 腾讯科技(深圳)有限公司 线上交易验证方法、装置及系统
KR20140108458A (ko) * 2013-02-28 2014-09-11 삼성전자주식회사 웹 위젯을 제작하기 위한 장치 및 그 방법
JP6285010B2 (ja) 2013-03-15 2018-02-28 ピーティーシー インコーポレイテッド 意味論的モデル化およびタグ付けを使用してアプリケーションを管理する方法およびその装置
US9052891B2 (en) * 2013-05-14 2015-06-09 International Business Machines Corporation Declarative configuration and execution of card content management operations for trusted service manager
US9264538B2 (en) * 2013-06-13 2016-02-16 Verizon Patent And Licensing Inc. Mobile services hosting
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US9612804B2 (en) * 2013-09-06 2017-04-04 Unisys Corporation Business suite framework for developing software applications
CN104516880A (zh) 2013-09-26 2015-04-15 Sap欧洲公司 图形的基于区块的布局
US20150113451A1 (en) * 2013-10-23 2015-04-23 Steve Kopp Creation of widgets based on a current data context
US9846682B1 (en) * 2013-11-25 2017-12-19 Amazon Technologies, Inc. Cross-platform presentation of digital content
US9124575B2 (en) 2013-11-27 2015-09-01 Sap Se Self-single sign-on
US10353989B1 (en) * 2013-12-19 2019-07-16 Open Text Corporation Method to allow switching of user interface layout based on context and configuration
US10313410B2 (en) 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9350812B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of message routing using name-based identifier in a distributed computing environment
US9762637B2 (en) 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
WO2015143416A1 (en) 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US10025942B2 (en) 2014-03-21 2018-07-17 Ptc Inc. System and method of establishing permission for multi-tenancy storage using organization matrices
US9961058B2 (en) 2014-03-21 2018-05-01 Ptc Inc. System and method of message routing via connection servers in a distributed computing environment
US9462085B2 (en) 2014-03-21 2016-10-04 Ptc Inc. Chunk-based communication of binary dynamic rest messages
US9560170B2 (en) 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US20160019557A1 (en) * 2014-04-21 2016-01-21 Alok Batra Systems, methods, and apparatus for providing machine-to-machine and consumer-to-machine interaction application platforms
US11188308B2 (en) * 2014-07-23 2021-11-30 Apple Inc. Interactive code editing
CN106796578B (zh) * 2014-08-06 2019-05-10 凯巴士有限公司 知识自动化系统和方法以及存储器
US10031729B1 (en) * 2014-12-30 2018-07-24 Open Text Corporation Method and system for implementing custom UI actions in a web application using hidden containers
US10262006B2 (en) 2016-04-29 2019-04-16 Microsoft Technology Licensing, Llc Contextually triggered entry point
US10600063B2 (en) 2016-05-17 2020-03-24 Sap Se Real-time system to identify and analyze behavioral patterns to predict churn risk and increase retention
CN106325866B (zh) * 2016-08-22 2019-09-20 网易(杭州)网络有限公司 跨引擎调用方法及装置
WO2018148834A1 (en) * 2017-02-17 2018-08-23 Royal Bank Of Canada Web application firewall
US11645046B2 (en) * 2017-07-03 2023-05-09 Unqork, Inc. Systems and methods for development and deployment of software platforms having advanced workflow and event processing components
US11315560B2 (en) * 2017-07-14 2022-04-26 Cognigy Gmbh Method for conducting dialog between human and computer
EP3435228A1 (en) * 2017-07-28 2019-01-30 Sap Se Merging applications
CN107423072B (zh) * 2017-08-11 2020-10-30 苏州浪潮智能科技有限公司 web页面动态列筛选与搜索表格数据的方法和装置
US11068559B2 (en) * 2018-01-25 2021-07-20 ClickFunnels Website creation system for creating websites having at least one series of directional webpages and related methods
US10846357B2 (en) 2018-01-25 2020-11-24 ClickFunnels Website creation system for creating websites having at least one series of directional webpages and related methods
US10867068B2 (en) * 2018-06-15 2020-12-15 Gogoody Inc Personal computing devices with assisted form completion
US10901593B2 (en) * 2018-09-21 2021-01-26 Salesforce.Com, Inc. Configuring components in a display template based on a user interface type
US11294555B2 (en) * 2019-04-24 2022-04-05 Appian Corporation Intelligent manipulation of dynamic declarative interfaces
EP4075213A1 (en) * 2021-04-16 2022-10-19 Siemens Aktiengesellschaft Method and system for generating engineering programs for an industrial domain
WO2023128793A1 (ru) * 2021-12-27 2023-07-06 Общество С Ограниченной Ответственностью "Кейс Студио" Система и способ динамической визуализации элементов программного обеспечения
CN115309299B (zh) * 2022-09-14 2024-02-23 Oppo广东移动通信有限公司 桌面卡片的显示方法、装置、终端、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954688A (ja) * 1995-08-14 1997-02-25 Fujitsu Ltd Gui設計支援方法
JPH1069376A (ja) * 1996-03-25 1998-03-10 Sun Microsyst Inc ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス
JP2004265076A (ja) * 2003-02-28 2004-09-24 Quick Corp 情報配信管理方法及び情報配信管理プログラム
JP2008293502A (ja) * 2007-05-23 2008-12-04 Sap Ag 強化されたウィジェットアーキテクチャ

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189030B1 (en) * 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
US6731314B1 (en) * 1998-08-17 2004-05-04 Muse Corporation Network-based three-dimensional multiple-user shared environment apparatus and method
WO2000070531A2 (en) * 1999-05-17 2000-11-23 The Foxboro Company Methods and apparatus for control configuration
US20020152244A1 (en) * 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US20030004746A1 (en) * 2001-04-24 2003-01-02 Ali Kheirolomoom Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components
US20030063723A1 (en) * 2001-09-28 2003-04-03 Derek Booth Interactive system for managing and remotely connecting customer utility loads
JP2005515851A (ja) * 2002-02-01 2005-06-02 ザ クリーヴランド クリニック ファウンデーション 調整可能な刺激装置およびその使用方法
JP2006504156A (ja) * 2002-02-15 2006-02-02 トリディウム・インコーポレーテッド リアルタイム・システム制御のためのコンポーネント・モデル
US7810038B2 (en) * 2002-05-03 2010-10-05 International Business Machines Corporation Method for modifying a GUI for an application
US7720910B2 (en) * 2002-07-26 2010-05-18 International Business Machines Corporation Interactive filtering electronic messages received from a publication/subscription service
US20040133445A1 (en) * 2002-10-29 2004-07-08 Marathon Ashland Petroleum L.L.C. Generic framework for applying object-oriented models to multi-tiered enterprise applications
US7111245B2 (en) * 2002-12-17 2006-09-19 International Business Machines Corporation System and method for smart graphical components
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US8024703B2 (en) * 2004-10-22 2011-09-20 International Business Machines Corporation Building an open model driven architecture pattern based on exemplars
US20060129917A1 (en) * 2004-12-03 2006-06-15 Volk Andrew R Syndicating multiple media objects with RSS
US20060173669A1 (en) * 2004-12-30 2006-08-03 Alexander Dreiling Process model consolidation
US20060212836A1 (en) * 2005-03-15 2006-09-21 Nokia Corporation Personalized user interfaces for presentation-oriented web services
US8086995B2 (en) * 2005-04-18 2011-12-27 Research In Motion Limited System and method for flexible visual representation of device fonts
US20060264204A1 (en) * 2005-05-19 2006-11-23 Comcast Cable Holdings, Llc Method for sending a message waiting indication
US8341536B2 (en) * 2005-07-08 2012-12-25 International Business Machines Corporation Dynamic interface component control support
US8924869B2 (en) * 2005-08-12 2014-12-30 Barry Fellman Service for generation of customizable display widgets
US20070050710A1 (en) * 2005-08-31 2007-03-01 Redekop Christopher K Graphical user interface for a web application
US7873422B2 (en) * 2005-09-02 2011-01-18 Sap Ag Event-based coordination of process-oriented composite applications
CA2550832A1 (en) 2005-09-13 2007-03-13 Cognos Incorporated Query framework system and method
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US20070220035A1 (en) * 2006-03-17 2007-09-20 Filip Misovski Generating user interface using metadata
US7917858B2 (en) * 2006-06-09 2011-03-29 Hewlett-Packard Development Company, L.P. Engine for rendering widgets using platform-specific attributes
US8056092B2 (en) * 2006-09-29 2011-11-08 Clearspring Technologies, Inc. Method and apparatus for widget-container hosting and generation
US20080091777A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Method, system and program product for building collaboration applications using multiple-peer user interface libraries
US20080189679A1 (en) * 2007-02-05 2008-08-07 Jared Rodriguez Method and system for creating, deploying, and utilizing a service
US20080300980A1 (en) * 2007-05-31 2008-12-04 Goodstorm, Inc. Method and system of synchronizing data processed through web widgets distributed across network nodes
US8001519B2 (en) * 2007-06-27 2011-08-16 International Business Machines Corporation Model driven development including aspect integration tool
US8127237B2 (en) * 2007-09-24 2012-02-28 Sap Ag Active business client
US8234622B2 (en) * 2008-03-31 2012-07-31 Microsoft Corporation Cross platform compositional widgets
US8713520B2 (en) * 2008-04-04 2014-04-29 Adobe Systems Incorporated Web development environment that enables a developer to interact with run-time output presentation of a page
US8171451B2 (en) * 2008-05-09 2012-05-01 International Business Machines Corporation Providing reports as web services
US8291408B1 (en) * 2010-03-10 2012-10-16 Google Inc. Visual programming environment for mobile device applications
US8826229B2 (en) * 2011-06-02 2014-09-02 The Mathworks, Inc. Immutable properties in a class

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954688A (ja) * 1995-08-14 1997-02-25 Fujitsu Ltd Gui設計支援方法
JPH1069376A (ja) * 1996-03-25 1998-03-10 Sun Microsyst Inc ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス
JP2004265076A (ja) * 2003-02-28 2004-09-24 Quick Corp 情報配信管理方法及び情報配信管理プログラム
JP2008293502A (ja) * 2007-05-23 2008-12-04 Sap Ag 強化されたウィジェットアーキテクチャ

Also Published As

Publication number Publication date
US9021423B2 (en) 2015-04-28
EP2003573A1 (en) 2008-12-17
US8578330B2 (en) 2013-11-05
JP5086183B2 (ja) 2012-11-28
US20140026095A1 (en) 2014-01-23
US20080307385A1 (en) 2008-12-11
CN101373431A (zh) 2009-02-25
CN101373431B (zh) 2012-09-05

Similar Documents

Publication Publication Date Title
JP5086183B2 (ja) 機能強化されたウィジェットコンポジションプラットフォーム
US10261757B2 (en) System and method for automated web processing service workflow building and application creation
US20210034336A1 (en) Executing a process-based software application in a first computing environment and a second computing environment
US8972873B2 (en) Multi-environment widget assembly, generation, and operation
JP4824110B2 (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
US8365203B2 (en) Method for creating a native application for mobile communications device in real-time
US10088980B2 (en) Method and system for providing menu data for mobile applications
US20140096014A1 (en) Method for enabling dynamic client user interfaces on multiple platforms from a common server application via metadata
US20100161713A1 (en) Method and system for personalizing a desktop widget
US20090132919A1 (en) Appending Hover Help to Hover Help for a User Interface
US20230021546A1 (en) Customizable user interface layouts
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
JP2016224923A (ja) ユーザフォームインタフェースの自動生成の方法およびシステム
US20140101635A1 (en) Automated generation of two-tier mobile applications
US20050076330A1 (en) Browser-based editor for dynamically generated data
KR20100005636A (ko) Ui 제공방법 및 그 장치
CN111797340B (zh) 一种自定义提取流程的服务封装系统
US20100287292A1 (en) Method, apparatus and computer program product for generating a content website in a data communications network
US20050033764A1 (en) Interactive editor for data driven systems
JP5835447B2 (ja) 情報処理装置、情報処理システム、制御方法、およびプログラム
KR101673937B1 (ko) 바로 가기 객체의 생성 및 사용을 위한 장치, 시스템 및 방법
Troelsen et al. Introducing ASP. NET Web Forms
Pars et al. Foundations of ASP. NET AJAX
Satav News on world map
Moroney et al. Foundations of ASP. NET AJAX

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120906

R150 Certificate of patent or registration of utility model

Ref document number: 5086183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250