JP2005346719A - 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置 - Google Patents

完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置 Download PDF

Info

Publication number
JP2005346719A
JP2005346719A JP2005161905A JP2005161905A JP2005346719A JP 2005346719 A JP2005346719 A JP 2005346719A JP 2005161905 A JP2005161905 A JP 2005161905A JP 2005161905 A JP2005161905 A JP 2005161905A JP 2005346719 A JP2005346719 A JP 2005346719A
Authority
JP
Japan
Prior art keywords
logical
map
display target
model
logical form
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
JP2005161905A
Other languages
English (en)
Other versions
JP5099982B2 (ja
Inventor
Freddy Kristiansen
クリスチャンセン フレディ
Jens Moller-Pedersen
モラー−ペデルセン ジェンス
Jesper Theil Hansen
タイル ハンセン ジェスパー
Per Bendsen
ベンドセン パー
Peter Christensen
クリステンセン ペーター
Peter Sloth
スロス ペーター
Peter Villadsen
ビラドセン ペーター
Uffe Kjall
カール ウッフェ
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 JP2005346719A publication Critical patent/JP2005346719A/ja
Application granted granted Critical
Publication of JP5099982B2 publication Critical patent/JP5099982B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 アプリケーションモデルを示すためにモデルドリブンフォームユーザインターフェースを生成する、方法、コンピュータ読み取り可能な媒体、およびシステムを提供する。
【解決手段】 方法は、複数の異なる論理フォームタイプのどれが、アプリケーションモデルを示すために、フォームユーザインターフェースを生成するために使用するかを選択することを含む。方法は、また第1のマップを提供することも含む。ディスプレイターゲットから独立した論理フォームは、アプリケーションモデル、選択されたフォームタイプ、および第1のマップを使用して生成される。
【選択図】 図8

Description

本発明は、フォーム(form)の生成に関する。より詳細には、本発明は、フォームユーザインターフェース(UI)を生成する方法および装置に関する。
同じ日に出願された以下の同時係属の、本願譲受人に譲渡された特許出願、すなわち、どちらもその全体が参照により本明細書に組み込まれる、2004年6月3日に出願された「METHOD AND APPARATUS FOR GENERATING FORMS USING FORM TYPES」という名称の米国特許出願第10/860226号、および2004年6月3日に出願された「METHOD AND APPARATUS FOR MAPPING A DATA MODEL TO A USER INTERFACE MODEL」という名称の米国特許出願第10/860225号を参照する。
エンタープライズリソースプランニング(Enterprise Resource Planning、ERP)システムおよびカスタマ関係管理(Customer Relationship Management、CRM)システムなどの一般的なビジネスソフトウエア製品およびアプリケーションにおいて、多数のフォーム(forms or form)ユーザインターフェースが使用される。フォームは、データを見るかつ/またはデータを入力するためのウィンドウ、ダイアログ、ページ、または他のUI要素である。ビジネスソフトウエアアプリケーションとともに使用される多数のフォームが、数千を超えることは珍しくない。多数のフォームを開発することは、従来、ソフトウエア開発者(developer)の労働集約的な(labor−intensive)タスクであった。
さらに、ERPシステム、CRMシステム、およびアプリケーションに基づく他のフォームなどのビジネスアプリケーションにおける複雑さが増大した。これは、以下を含む多数の要因によって引き起こされる。(1)増大された機能性のためである各システムにおいて増大する数のフォーム、(2)ウェブページ有用性に慣れたエンドユーザにより生じる増大する有用性に対するフォーカス(focus)、(3)異なるプラットフォーム、デバイス、および技術の増大する数、(4)ユーザ権利に応じて異なるフォームを結果として生じることができるセキュリティに対する増大するフォーカス、および(5)柔軟性、効率、およびパーソナリゼーション(personalization)に対する増大する要求。同時に、システムがより早くかつより高い信頼性で開発を推し進められる。
実生活ビジネスアプリケーションの一例として、結果として2000個に近いフォームを生じる、3000個に近いテーブルを有するMicrosoft Business Solutions−Axapta(登録商標)が考えられる。各フォームは、実行時データが結び付けられる各テーブルのレイアウトとアライン(aligne)されなければならない。フォームおよび関連するフォーム論理は、テーブルレイアウトが変化したときはいつでも、およびビジネス論理が変化したとき、アラインされなければならない。複雑さに加えて、異なるクライアントプラットフォーム技術の数が増大する。従来のWindows UIは、今やウェブブラウザ(Web Browser)によって達成される。近い将来において、携帯情報端末(PDA)、携帯電話、および他のUI技術が、複雑さに加わるであろう。
インターネットは、アプリケーションをどのように使用するかを学ぶために14日間のコースを必要としないことを、エンドユーザに教えた。エンドユーザは、アプリケーションがタスクを介してそれらをガイドすることを期待し、かつエンドユーザは、アプリケーションがアピールを見せることを期待する。より多くのユーザ役割(role)が、ビジネスアプリケーションを介して示される情報技術に曝されるので、フォームが、各ユーザの必要性、および各役割が達成すべきタスクの情報を反映することへの要求が増大している。概してユーザ経験に対する要求は増大している。
一般に、ユーザ経験と開発者の経験は反対方向に働く。良好なユーザ経験は、アプリケーション開発者が作成しかつ維持することをより長くする。優れたユーザ経験を有するビジョンと、同時により高い開発者生産性をサポートすることは、両立しないように思われることがある。これは、ビジネスアプリケーションに関するフォーム生成の領域において特に真実である。
情報を呈するアプリケーションは、非常に様々な能力(ユーザのデスクトップで動作するリッチクライアント(rich client)から、ユーザのブラウザで動作するウェブクライアントへ、ポケットデジタルアシスタンス(Pocket Digital assistant)、電話技術に基づくデバイス、およびスピーチインターフェースまでに及ぶ)のプラットフォームに可能な限りリッチな経験を、それらのユーザに提供しなければならない。ビジネスアーキテクト(architect)は、顧客に関する問題を解決するためにビジネスエンジニアリングにおける知識を使用する。このビジネスアーキテクトは、コンピュータプログラム開発者ではなく、プログラム開発者の複雑性から保護されなければならない。
本発明は、1つまたは複数の上述の問題に対する解決方法を提供し、かつ/または従来技術に対して他の利点を提供する。
アプリケーション/ビジネスモデル(データモデルまたは問題ドメインモデル(problem domain model)とも呼ばれる)を表すために、モデルドリブン(model driven)フォームユーザインターフェースを生成する方法、コンピュータ可読媒体、およびシステムが提供される。この方法は、アプリケーションモデルを表すフォームユーザインターフェースを生成する論理フォーム(logical form)に適用するために、複数の異なる論理フォームタイプのどれかを選択することを含む。この方法は、第1のマップを提供することをも含む。ディスプレイターゲットから独立した論理フォーム(display target independent logical form)は、アプリケーションモデル、選択されたフォームタイプ、および第1のマップを使用して生成される。本発明の実施形態において、第1のマップは、いくつかの実施形態において必須で定義された機能または態様を有することができるが、第1のマップは、宣言マップ(declarative map)である。
第1のマップを使用するディスプレイターゲットから独立した論理フォームの生成は、ディスプレイターゲットから独立した論理フォームにおけるディスプレイターゲットから独立した論理制御に、アプリケーションモデルの適切なデータのタイプをマッピングすることを含む。いくつかの実施形態において、第1のマップは、ディスプレイターゲットから独立した論理フォームを生成するために使用されるマッピングエンジン(mapping engine)に対して外側である。
いくつかの実施形態において、宣言で適用される挙動(behavior)は、ディスプレイターゲットから独立した論理フォームに機能性を追加する。宣言で適用される挙動は、ディスプレイターゲットから独立した論理フォームに付けられ、フォームにおけるイベントによってアクティベートされる。宣言挙動は、論理制御の値および特性に応じて、他の制御に特性を設定する論理のパターンとすることができる。
この方法は、第2のマップを使用する物理的フォームに論理フォームをマッピングするステップをさらに含むことができる。論理フォームは、複数の論理制御を含むが、物理的フォームは、ディスプレイターゲットへの論理フォームのレンダリング(rendering)で使用可能な複数の物理制御を有する。第2のマップを使用する物理的フォームへの論理フォームのマッピングは、複数の利用可能な物理制御の1つへの論理フォームの各論理制御のマッピングを含む。一般に、特定のディスプレイターゲットへの特定のフォームタイプの特定のレイアウトへのマッピングも含む。
本発明の実施形態を特徴付ける他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することによって明らかになるであろう。
ビジネスアプリケーションおよび他の管理的なまたはフォームに基づくソフトウエアアプケーションにおいて常に複雑性が増大し、自動化に関する要求が増大する。本発明は、そのような自動化を容易にしかつ強化する方法を提供する。本発明は、革新に対する自由度を損なうことなく、ユーザインターフェースを開発するための自動化されかつ宣言的な解決方法を使用する。
本発明のシステムおよび方法を使用するアプリケーション開発者は、ビジネスモデルの開発に集中することができる。ビジネスモデル(UML、ERダイアグラム、クラスなど)は、1つまたは複数のステップで、ディスプレイターゲットに特定の技術およびレイアウト(Windows、ウェブブラウザ、PDA、電話など)に再びマッピングされる技術に独立の中間フォーマットに後でマッピングされる。フレームワーク開発者は、次に、アプリケーション開発者に無関係に、ディスプレイターゲット特有の技術をリッチにし、それを開発したアプリケーション全体に適用することができる。中間フォーマットは、フォーム毎に1回作成され、いくつかのディスプレイターゲットにわたって使用される。マッピングは、マッピングエンジンによって使用されるオープンかつ変更可能なマップにより、本来柔軟である。中間UIモデルおよび最終ディスプレイターゲットフォーマットもまたオープンかつ変更可能であり、独自のレベルの柔軟性を可能にする。以下の考察は、発明概念をさらに例示した。
図1は、本発明を実施することができる適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境100の一例にすぎず、本発明の使用または機能性の範囲に関して任意の制限を示唆することを目的とするものではない。コンピューティング環境100は、任意の従属性を有するものとして解釈されるべきではなく、また例示的なコンピューティング環境100に示される任意の1つの構成要素または構成要素の組み合わせに関連する要件であるとして解釈されるべきではない。
本発明は、多数の他の一般的な目的、または特定の目的のコンピューティングシステム環境または構成で動作する。本発明での使用に適切とすることができる良く知られているコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、任意の上述のシステムまたはデバイスを含む分散コンピューティング環境などを含むが、それらに限定されない。
本発明は、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で述べることができる。一般に、プログラムモジュールは、特定のタスクを実行しまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、タスクが、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散コンピューティング環境で実行することもできる。分散コンピューティング環境において、プログラムモジュールは、メモリストレージデバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方に位置することができる。
図1を参照して、本発明を実施するための例示的なシステムは、コンピュータ110の形態での一般的な目的のコンピューティングデバイスを含む。コンピュータ110の構成要素は、処理装置120、システムメモリ130、システムメモリを含む様々なシステム構成要素を処理装置120に結合するシステムバス121を含むが、それらに限定されない。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および任意の様々なバスアーキテクチャを使用するローカルバスを含む、任意のいくつかのバス構造のタイプとすることができる。一例として、限定されずに、このようなアーキテクチャはISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスを含む。
コンピュータ110は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスすることができる任意の使用可能な媒体とすることができ、揮発性および不揮発性媒体の両方、取り外し可能および固定媒体の両方を含む。一例として限定されず、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法または技術で実施される、揮発性および不揮発性媒体の両方、取り外し可能および固定媒体の両方を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用することができ、コンピュータ110によってアクセスすることができる任意の他の媒体を含むが、それらに限定されない。通信媒体は、一般的に、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの変調されたデータ信号において実施し、任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号に情報を符号化するように、その特性の1つまたは複数が設定または変更された信号を意味する。例示として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、RF、赤外線、および他の無線媒体などの無線媒体を含むが、それらに限定されない。上述の任意の組み合わせは、また、コンピュータ可読媒体の範囲内に含まれるべきである。
システムメモリ130は、読取専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などコンピュータ110内の要素間で情報を転送することを助ける基本的ルーチンを含む、基本入出力システム133(BIOS)は、一般にROM131内に格納される。RAM132は、一般に、処理装置120によって即時アクセス可能であり、かつ/または処理装置120によって現在処理されているデータおよび/またはプログラムモジュールを含む。例示として、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示すが、それらに限定されない。アプリケーションプログラムの特定のグループは、ビジネスアプリケーションと呼ばれる。これらは、総勘定元帳、在庫、給与、顧客、販売、購買、財務報告、およびビジネスに関して関係がある任意の他のデータの取り扱いを含むが、それらに限定されない企業の管理を目標とする。
コンピュータ110は、他の取り外し可能な/固定の、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。単に例示として、図1は、固定不揮発性磁気媒体から読み出しまたは固定不揮発性磁気媒体へ書き込むハードディスクドライブ141、取り外し可能な不揮発性磁気ディスク152から読み出しまたは取り外し可能な不揮発性磁気ディスク152へ書き込む磁気ディスクドライブ151、およびCDROMまたは他の光学媒体などの取り外し可能な不揮発性光学ディスク156から読み出しまたは取り外し可能な不揮発性光学ディスク156へ書き込む光学ディスクドライブ155を示す。例示のオペレーティング環境で使用することができる他の取り外し可能な/固定の揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含むが、それらに限定されない。ハードディスクドライブ141は、一般的に、インターフェース140などの固定メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光学ディスクドライブ155は、一般に、インターフェース150などの取り外し可能なメモリインターフェースによってシステムバス121に接続される。
上記で論じた、また図1に示されている、ドライブおよびそれらに結合されるコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、コンピュータ110に関する他のデータのストレージを提供する。例えば、図1において、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示される。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じとすることも、異なるものとすることもできることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、それらが最低異なるコピーであることを示すために、本明細書で異なる番号が与えられている。
ユーザは、キーボード162、マイクロフォン163、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス161などの入力デバイスを介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力デバイス(図示せず)は、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバスに結合されるユーザ入力インターフェース160を介して処理装置120にしばしば接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続することができる。入力デバイスは、データを作成し、修正し、および削除するために使用される。入力デバイスは、本明細書におけるアプリケーションプログラムおよび特定の機能を制御(開始および停止)するためにも使用することができる。機能は、フォームを開き(示し)かつフォームを閉じることを含む。モニタ191または他のタイプのディスプレイデバイスは、ビデオインターフェース190などのインターフェースを介して、システムバス121にも接続される。モニタに加えて、コンピュータは、スピーカ197およびプリンタ196など、出力周辺インターフェース195を介して接続することができる他の周辺出力デバイスを含むこともできる。モニタまたは他のディスプレイデバイスは、フォームを示す(レンダリングする)ために使用される。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、一般に、コンピュータ110に関して上述された多くのまたは全ての要素を含む。図1に示される論理接続は、ローカルエリアネットワーク(LAN)171、およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、オフィス、エンタープライズワイドコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
LANネットワーク環境で使用されるとき、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用されるとき、コンピュータ110は、一般に、インターネットなどのWAN173にわたって通信を確立するためのモデム172または他の手段を含む。内部または外部であり得るモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境において、コンピュータ110に関して示されたプログラムモジュールまたはその部分は、リモートメモリストレージデバイスに格納することができる。限定しない例示として、図1は、リモートコンピュータ180に存在するリモートアプリケーションプログラム185を示す。示されているネットワーク接続は例示であり、コンピュータ間の通信リンクを確立するための他の手段を使用することができることは理解されよう。
図2は、代替の例示的なコンピューティング環境であるモバイルデバイス200のブロック図である。モバイルデバイス200は、マイクロプロセッサ202、メモリ204、入出力(I/O)コンポーネント206、およびリモートコンピュータまたは他のモバイルデバイスと通信するための通信インターフェース208を含む。一実施形態において、後述されるコンポーネントは、適切なバス210にわたって互いに通信のために結合される。
メモリ204は、モバイルデバイス200に対する一般的な電力がシャットダウンされたとき、メモリ204内に格納された情報が失われないように、バッテリバックアップモジュール(図示せず)を有するランダムアクセスメモリ(RAM)などの不揮発性電子メモリとして実装される。メモリ204の一部は、好ましくはプログラム実行のためにアドレス指定可能なメモリとして割り当てられ、一方、メモリ204の他の部分は、ディスクドライブのストレージをシミュレートするなど、ストレージのために使用されることが好ましい。
メモリ204は、オペレーティングシステム212、アプリケーションプログラム214、ならびにオブジェクトストア216を含む。動作中、オペレーティングシステム212は、好ましくは、メモリ204からプロセッサ202によって実行される。好ましい一実施形態において、オペレーティングシステム212は、Microsoft Corporationから利用可能な市販のWINDOWS(登録商標)CEブランドオペレーティングシステムである。オペレーティングシステム212は、好ましくはモバイルデバイス用に設計され、一組のエクスポーズされたアプリケーションプログラミングインターフェースおよびメソッドを介して、アプリケーション214によって利用することができるデータベース機能を実装する。オブジェクトストア216内のオブジェクトは、エクスポーズされたアプリケーションプログラミングインターフェースおよびメソッドに対する呼出しに少なくとも部分的に応答して、アプリケーション214およびオペレーティングシステム212によって維持される。
通信インターフェース208は、モバイルデバイス200が情報を送信しかつ受信することを可能にする多数のデバイスおよび技術を表す。デバイスは、二、三の例をあげれば、有線および無線モデム、衛星受信器、およびブロードキャストチューナを含む。モバイルデバイス200は、間でデータを交換するためにコンピュータに直接接続することもできる。そのような場合、通信インターフェース208は、赤外線受信器またはシリアルあるいはパラレル通信接続とすることができ、それら全ては、ストリーミング情報を転送することができる。
入出力コンポーネント206は、タッチセンシティブスクリーン、ボタン、ローラ、およびマイクロフォンなどの様々な入力デバイス、ならびにオーディオジェネレータ、振動デバイス、およびディスプレイを含む様々な出力デバイスを含む。上で列挙されたデバイスは、例示であり、モバイルデバイス200に必ずしも全て存在する必要はない。さらに、他の入出力デバイスが、モバイルデバイス200に取り付けられ、またはモバイルデバイス200とともに見出される可能性がある。
層状にされ(layered)かつマッピングされたUIアーキテクチャおよび方法
上述のように、情報を示すアプリケーションは、非常に様々な能力のプラットフォーム(例えばディスプレイターゲット)で、可能な限りリッチな経験をユーザに提供しなければならない。これらのプラットフォームは、ユーザのデスクトップ上で実行するリッチなクライアントから、ユーザのブラウザで動作するウェブクライアントへ、PDAへ、電話技術に基づくデバイスへ、さらにはスピーチインターフェースに及ぶ。他のプラットフォームも可能である。本発明の実施形態によれば、当該プラットフォーム上でネーティブ(native)制御に、どのようにデータタイプをマッピングするかを規範的に定義するスキーマが用いられる。
ビジネスアーキテクトは、顧客に関する問題を解決するためにビジネスエンジニアリングでの知識を使用する。しかしながら、このビジネスアーキテクトは、一般にコンピュータプログラム開発者ではなく、理想的にはプログラム開発の複雑性から保護される。本発明は、ビジネスアーキテクト(ユーザ)が、アプリケーションのビジネス論理に焦点を合わすが、どのようにデータが、所定のプラットフォーム上に存在するかに焦点を合わせないことを可能にする方法および装置を提供する。提示された発明は、アプリケーション開発者が、ビジネスのモデルに基づき、複数のディスプレイターゲットを目標にし、かつ各ディスプレイターゲットの技術的能力を利用するユーザインターフェースを導き出すことを可能にする。
これは、開発者が、「正しい」抽象レベルを有する層に対する知的な労力に焦点を合わせることを可能にする、層状にされたUI定義によって達成される。パターンは、各抽象化レベルで捕捉されかつ再使用される。抽象化のより高いレベルからより多くの特定のレベルへのマップは、マッピングプロセスにおけるパターンを捕らえるが、アプリケーション開発者が、結果を微細に調整することも可能にする。本発明は、制御、論理フォームタイプ、および挙動にしたがって、ターゲットの特定の物理モデルを表示するビジネスモデルをマッピングするために、これらのマップを使用する。
本発明の方法において、ビジネスモデルがマスタである。ビジネスモデルに行われる知的作業は、保存され、かつユーザインターフェースを生成することに基づくように使用される。モデルは、Unified Modeling Language(UML)、enterprise resource(ER)ダイアグラム、または任意の他のグラフィカルまたは非グラフィカルモデリング言語で記述することができる。ビジネスモデルは、従来のオブジェクト指向プログラム、関連データベース、または他のフォーマットに見出すこともできる。以下に記載されるように、本発明のいくつかの例示的な実施形態において、ビジネスモデルは、プロパティを有するエンティティのクラス階層である。
本発明の実施形態において、ビジネスモデルは、ディスプレイターゲットから独立したユーザインターフェースの中間モデルにマッピングされる。UIモデルは、最終ディスプレイターゲットについてどんな技術知識をも必要とすることなしに、アプリケーション開発者がそれを見てかつ修正することを可能にする高い抽象化レベルで記述される。コードは、全てのディスプレイターゲットに関して作用するUIモデルに追加することができる。UIモデルにおけるパターンが捕捉され、それらは再使用することができ、結果として同種のUIを生じる。UIモデルを記述するために使用されるビルディングブロックは、拡張することもできる。
以下により詳細に記載されるように、本発明のいくつかの実施形態において、エンティティは、論理制御を有する論理フォームを含む「論理UI」と呼ばれるUIモデルにマッピングされる。エンティティおよび特性は、設計時に、それぞれ論理フォームおよび論理制御にマッピングされる。実行時において、論理フォームおよび論理制御データは、エンティティおよび特性に結び付けられる。フォームにおけるパターンは、フォームタイプと呼ばれる。フォームおよび制御は、コアクライアントマッピングエンジンによって使用されるが、コアクライアントマッピングエンジンの一部ではない。コアクライアントは、UIクライアントのディスプレイターゲットの独立した部分である。本発明の実施形態において、論理制御およびフォームタイプのリストは、拡張することができる。本発明のこれらの態様のさらなる考察は、また以下に提供される。
本発明のいくつかの実施形態において、UIモデルは、アクティブサーバページ言語(ASP.NET)、無線マークアップ言語(WML)、ハイパーテキストマークアップ言語(HTML)などのディスプレイターゲットに特定のマークアップ言語にマッピングされる。UIモデルは、他のディスプレイ技術(例えば、Win32、WinForms、PocketPC)にマッピングすることができる。本発明の1つの特定の例示的な実施形態において、論理的なフォームは、ウェブクライアントディスプレイターゲット、WinFormsクライアントディスプレイターゲットなどにマッピングされ、新たなディスプレイターゲットが動的に追加することができる。
本発明の実施形態によれば、マッピングは、オープンでありかつ変更可能な宣言マップに基づく。UIにおけるパターンは、マップにおいて捕捉される。マップは、結果として高いレベルの柔軟性を生じるいくつかの条件に基づいて行うことができる。異なるモデルは、それらがマッピングされた後、(コードを介することを含み)手動で修正することができる。これは、最終レベルの柔軟性を開発者に与える。マップの動的な性質は、制御などの新たなUI要素の開発および使用を可能にする。新たな制御は、新たな制御に特性をマッピングすることによって、フォームで簡単に使用可能にされる。新たな制御は、所定の契約に従わなければならず、この実施形態において、新たな制御は、特定のベースクラスを引き継がなければならない。実行時に、論理フォームはエンティティに結合され、ディスプレイターゲットは論理層に結合される。これは、ディスプレイターゲット間に共通の全ての機能性(セキュリティ、パーソナリゼーション、イントラフォーム論理)が、論理層で1回実装されかつ多くの例で使用されることを可能にする。
フォームタイプ
本発明は、ビジネスおよび他のアプリケーションのためのフォームユーザインターフェース(フォーム)を構築する新規な方法を提供するために、論理フォームおよび論理フォームタイプの概念を使用する。本発明の例示的実施形態または実装において、論理フォームおよび論理フォームタイプが使用されるが、論理層の使用は、全ての実施形態で必要ではない。したがって、本発明は、一般的なフォームを形成するためにフォームタイプの使用に適用される。現在のビジネスアプリケーションは、一般に、しばしばわずかな数のカテゴリに入りまたは同様のパターンに従う多数のフォームからなる。カテゴリの数は、一般に2から20であるが、より多く定義することができる。本発明のフォームタイプは、設計時および実行時の両方でビジネスまたはアプリケーションモデルに保存しおよび作用することによって、モデルドリブンユーザインターフェースを容易にする。これは、ソフトウエア開発者に抽象化の高いレベルを提供する。さらに、本発明によるフォームタイプの使用は、全てのフォームは、わずかな個別のタイプになるので、より多くの均一なフォームユーザインターフェースの1組の再使用することを確実にし(1つの層が多数回使用される)、より容易に維持されるフォームを確実にする(タイプのレイアウトは、フォームを変更することなく変更することができ、異なるタイプは、フォームを変更することなく適用することができる)。本発明は、アプリケーション開発者が、アプリケーションのルック・アンド・フィールの複数のディスプレイターゲットにわたる完全な制御を有し、アプリケーション内のどのようにナビゲーションが行われるかを確実にする。ディスプレイターゲットの例は、現在および将来のオペレーティングシステムの各複数のタイプ、ならびに多くの利用可能なまたは将来の各モバイルデバイスを含む。他の例として、特定のオペレーティングシステム上の各レンダリング技術が、ディスプレイターゲットにもなり得る。
本発明の概念を使用して、論理フォームは、論理フォームをディスプレイターゲット自体に独立にする、論理制御に独立のディスプレイターゲットを含む。論理フォームは、論理フォームが従わなければならないパターンを定義する論理フォームタイプを参照する。論理フォームによって参照される論理フォームタイプは、論理フォームの外観およびコンテンツを迅速に確立するために、複数の異なる論理フォームタイプから選択することができる。本発明の実施形態において、論理フォームタイプは、ビジネスまたは他のアプリケーションモデルと組み合わされたとき、結果として論理フォームの生成を生じるモデルである。
論理フォームタイプは、フォームが、ビジネスモデルを論理的モデルに(アプリケーション開発者を介して自動的にまたは手動で)、かつこれから物理的モデルへマッピングするマップ(またはルール)に従わなければならないスキーマ(フォームの構造を記述し、どの要素をそれが含むことができるなど)を明らかにする。さらに、フォームタイプは、(論理的)フォームの動的挙動を修正するコードを含むことができる。それゆえ、フォームタイプは、スタイルおよびレイアウト情報、およびディスプレイターゲットの他のタイプの特定情報を明らかにする。しかしながら、それらは、論理フォームおよびそのコンテンツに関するルールも特定するので、それらは、より大きな役割を果たす。本発明のフォームタイプの特定の態様は、以下のように導入される。
異なるフォームタイプ
上述のように、本発明の一般的な使用において、複数の異なるフォームタイプは、フォームの形成においてアプリケーション開発者による使用のために提供される。例えば、1つの例示的な実施形態において、フォームタイプは、Dialogフォームタイプ、CardまたはCardViewフォームタイプ、ListViewフォームタイプ、EntityOverviewフォームタイプ、およびActivityCenterフォームタイプを含むことができる。これらのフォームタイプは、一例におけるビジネスアプリケーションにおいて使用されるフォームの典型的な異なるカテゴリに対応する。したがって、複数のフォームタイプを提供することは、アプリケーション開発者が、従来技術のビジネスアプリケーションを作るフォーム全てを構築することを可能にする。当業者によって理解されるように、これらの特定のフォームタイプは、単に一例であり、本発明は、任意の特定のフォームタイプまたは任意の特定の数のフォームタイプに限定されない。
フォームタイプレイアウト
レイアウト情報のコンテンツおよび構造は、各フォームタイプに関して異なることがある。さらに、レイアウト情報は、ディスプレイターゲットに特定であり得る。例えば、ActivityCenterフォームタイプに関するレイアウト情報は、特定のオペレーティングシステムプラットフォーム上でフォームをディスプレイするためのHTML(すなわち、World Wide Webすなわちインターネット)ディスプレイターゲットによって使用される、Themes/Skins/StylesおよびMaster Pageのためのサポートを有することができる。これは、異なるディスプレイターゲットを刷新し、かつ必要なだけ多くのフォームユーザインターフェースを微調整(tweak)するために、ビジネス開発者に自由を与える。
プラグ可能(pluggable)および拡張可能
フォームタイプは、独立ソフトウエアベンダ(Independent Software Vendor、ISV)が、それらを修正しまたは拡張することができ、新たなフォームタイプを作ることができるので、完全な柔軟性および拡張性を提供し、それによってアプリケーション全体に関するルック・アンド・フィールを変更する。
さて図3−1および図3−2を参照すると、本発明の例示的な実施形態にしたがって、Cardフォームタイプを使用して作られた販売注文論理フォームの概略が示される。この例において、販売注文論理フォームは、3つの異なる論理制御グループにまとめられる一組の論理制御を含む。以下にさらに記載されるように、Cardフォームタイプは、どのようにかつどこで制御が、異なるディスプレイターゲットで物理的フォームに現れるかを定義する。図3−1および図3−2は、同じ情報を示し、図3−2は、論理フォームタイプと論理フォームとの間の関係および情報の起源と、論理フォームから物理的フォームの生成とを示す矢印を含む。
図3−1および図3−2は、フォームタイプ300を使用して生成されたフォームインスタンス(form instance)305を概略的に示す。コアクライアント310で、フォームインスタンス305は、(フォームの概念モデルとして示される)論理フォーム306であり、フォームタイプ300は、論理フォームタイプ301である。ディスプレイターゲット320で、フォーム305は、論理フォーム306を使用し、かつ最終的には論理フォームタイプ301から作られたレンダリングされたフォーム370である。レンダリングされたフォーム370は、1つの特定の実装であるが、多くの他の実装またはレンダリングを達成することができる。レンダリングされたフォーム370は、物理的フォームとして参照することもできる。
フォームタイプ300は、2つの部分を含む。すなわち、何が、フォームタイプを使用する特定のフォームに含まれるべきかを定義するスキーマ330、およびどのようにフォームが、特定のディスプレイターゲットにレンダリングされまたは引き出されるかを特定する制御を含むレイアウト331である。フォームタイプは、コードビハインド(code−behind)クラスを含むこともできる。フォームタイプによって使用することができる異なるレイアウトを有することによって、フォームタイプを使用して作られるフォームは、異なるディスプレイターゲット(例えば、携帯電話ディスプレイ、携帯情報端末ディスプレイ、パーソナルコンピュータモニタなど)に合わせることができる。複数のフォームで使用されるべき捕捉されたパターンを示すフォームタイプ300で、複数のフォームインスタンス305は、フォームタイプ300を使用して生成することができる。
この例に関して、販売注文エンティティまたはオブジェクトモデル(すなわち、ビジネスまたはアプリケーションモデル)に関してフォームを作るために、開発者が行うことができるプロセスを考慮する。第1に、開発者は、どの種類のフォームを開発者が選択すべきかを知るために見ることができる。図3−1および図3−2に325で示されるように「Card」フォームタイプを選択することは、図3−2に矢印326によって示されるように、Cardスキーマ330を呼び出しまたは指定する。
開発者は、特定のフォームタイプおよび関連スキーマを特定するときに、開発者は、いくつかの実施形態において、ユーザのビジネスからのメタデータ(meta data)またはフィールド値にポピュレーティング(populating)する他のモデルで、スキーマによって示される情報またはフィールドをフォームに含むように選択する。例えば、Cardフォームタイプ301(および選択されたCardスキーマ330)を選択することによって、論理フォーム306は、スキーマ330において定義されるコンテンツエリア335に対応するコンテンツエリア336を含む。コンテンツエリア335に対応するコンテンツエリア336の起源は、図3−2で矢印337によって示される。同様に、Cardフォームタイプのスキーマ330は、UIパートエリア340、関連するエンティティUIパートエリア345、およびアクションエリア350を含むため、論理フォーム306は、341、346、および351で示されるこれらエリアまたはフィールドを含む。再び、これらフィールドの起源は、矢印342、347、および352によって概略的に図示される。
上述したように、フォームが、どのように特定のディスプレイターゲットにレンダリングされまたは引き出されるべきかを特定する制御を含む、少なくとも1つのレイアウト331(通常は、ディスプレイターゲット毎に1つ)も含む。図3−1および図3−2に概略的に図示されるように、cardフォームタイプに関するレイアウトは、ディスプレイターゲット320が、コンテンツエリア339、UIパートエリア344、関連するエンティティUIパートエリア349、およびアクションエリア354を含むことをもたらす制御を含む。矢印338、343、348、および353は、Cardスキーマにおけるそれらの対応するエリアに対する、cardレイアウトにおけるこれらのエリアの相関を図示する。選択された論理フォームタイプおよびアプリケーションモデルからのメタデータを使用して生成された論理フォーム306(この例では販売注文エンティティ)は、ディスプレイターゲット320上の物理的フォーム370としてレンダリングされる。このプロセスは、矢印361および362を使用して図3−2に示される。
モデルおよびマップ
多くの情報システムは、モデルを使用する。モデルの例は、オブジェクトダイアグラム、拡張可能なマークアップ言語(XML)スキーマ、データベース定義、およびフォーム定義である。モデルは、特性、組成、および関連をそれぞれ含む、しばしば一組のオブジェクトとして識別される。ビジネスUIにおいて、フォームをレンダリングするために使用される制御階層は、Windows制御ツリー、およびハイパーテキストマークアップ言語(HTML)オブジェクトモデルなどのモデルとして考えることができる。また、ユニファイドモデリング言語(UML)などのシンタックスは、モデル(例えばクラス定義)を定義するために使用することができる。本発明の方法を図示するために使用される例のフレームワークにおいて、アプリケーションは、ビジネスエンティティを使用してモデル化される。したがって、ビジネスモデルは、エンティティと呼ばれるこれらのビジネスオブジェクト、エンティティ間の関係、およびエンティティの特性からなる。単純なモデル380の一例に関して、図4−1に示されるエンティティ381、382、383、および384を参照されたい。エンティティは、特性(例えば、エンティティ381の特性385を参照)、および他のエンティティとの関係(例えば、エンティティ381および384間の関係386を参照)を有する。
モデルが他のモデルに変換されるとき、マップは、明示的にまたは時々暗示的に使用される。マップは、モデル間の関係を記述する。いくつかの例は、XMLへXMLをマッピングするような拡張可能なスタイルシート言語変換(XSLT)、特定のデバイスサーフィスにオブジェクトモデルをレンダリングするために使用される制御、1つのアプリケーションから他のアプリケーションへのオーダのマッピング(異なるアプリケーションにおけるオーダは、異なるフォーマットを有することがあるので)、およびクラス定義へUMLをマッピングするコンピュータ支援ソフトウエアエンジニアリング(CASE)ツールを含む。
現在のビジネスアプリケーションにおいて、マップは、マッピングが、入力として特定のオブジェクトを取りかつ他のオブジェクトに戻るコード内の「switch」ステートメントとしてコード化される、オブジェクトアットアタイム(object−at−a−time)マッピングを使用して主としてプログラムされる。したがって、従来のビジネスアプリケーションは、一般に、一般的なプログラミング言語のコードで書かれた必須のマップを使用する。本発明にしたがってモデルアットアタイム(model−at−a−time)を使用して、生産性を桁単位で改善することができることが提示される。生産性の利益に加えて、マップを使用して他のモデルに対するモデルのマッピングとして、UI生成の問題がわかる精神的な利益がある。さらに、他の利点は、本発明の宣言的に定義されたマップに見出されるより高いアブストラクションレベルである。本発明は、マップが明示されかつ宣言されることを可能にする。本発明において、マップは、宣言的または必須である(コードにおけるマッピングより優先できる事実による)ことができる。
マップの明示的な性質は、マップが、マッピングまたはレンダリングするために使用される生成エンジンに対して外部にあり、かつマップが、それ自体マップであることを意味する。つまり、マップの明示的な性質は、それらが、制御およびフォームから別個に定義されることを意味する。従来、このマッピングは、コントロールコードおよびフォームコードの内部で暗示的に行われていた。
マップの宣言的な性質は、マップが、必須ではない(一般的にプログラミング言語でコード化される)ことを意味する。本明細書で使用されるように、句「宣言的に定義される」は、マップが、従来の場合のようにコードだけで定義されるのでなく、マップを容易に変更することを可能にするフォーマットで定義されることを意味する。宣言的に定義されたフォーマットの例は、限定はしないが、XMLドキュメント、コンマ分離された(comma−separated)ファイル、BizTalkマップ(データスキーマの他へのマッピング)、およびMBFエンティティマップ(データスキーマへのオブジェクトモデルのマッピング)を含む。広範な様々な宣言的なマッピングフォーマットは、本発明にしたがって使用することができ、選択されるフォーマットは、特に重要ではない。宣言マップが制限された一組の可能性を有することが重要であり、したがって、マップを定義するために、直感的な(intuitive)設計ツールを提供することをより容易にする。対照的に、必須なマップ(コードを使用する)は、プログラミング言語を介してほぼ制限されない可能性を有し、したがって、直感的な設計ツールを作ることは非常に困難である。代わりに、プログラミングスキルは、それを作るために必要である。
宣言マップを使用する本発明の実施形態において、マップは、必ずしも宣言的である必要はないことに留意されたい。宣言的に定義されるには複雑過ぎるマップを作ることが必要な場合には、そうでなければ宣言的であるマップに必須マッピングの態様を含むことができる。例えば、複雑な機能を作成し、マップに含むことができる。一例は、送り状アドレス(Invoice Address)および輸送アドレス(Shipping Address)が、ほぼ同じであれば、送り状アドレスだけがフォームに示されることであり得る。2つのアドレスがほぼ同じであるかどうかを決定するアルゴリズムは、マップ内で使用される暗示的に定義された関数とすることができる。
本発明は、分散されたサービス指向のアーキテクチャに基づくビジネスアプリケーションの開発および展開に適切なプログラミングアブストラクションおよび規定されたアーキテクチャを提供する。フレームワークは、それらアブストラクションに書かれたビジネス論理を基本になる技術への変化から隔離し、ビジネスアプリケーション開発チームの重要なアセット(asset)を保存する。本発明は、コード生成を有する設計時モデルから、実行時においてビジネスモデルを解釈することができる、真の「モデルアウェアアプリケーションサービス(model aware application service)」へ移動する、モデルドリブン開発への解決方法へ拡張する。
マップに基づくモデルドリブンUI
本発明の実施形態で構築された、ビジネスアプリケーションのためのUIを生成するとき、アプリケーションモデルを有することは重要な特徴である。UIの大部分は、ビジネス論理のモデルおよびマップに基づいてだけで生成することができる。アプリケーション開発者が、新規なエンティティをモデル化したとき、UIは、これから生じる。これは、UIモデル390へマッピングされる(388で示される)ビジネスモデル380を示す図4−2に概略的に示される。矢印388は、マッピングプロセス、ならびにマッピングプロセスを行うためにマップを使用する適切に構成されたマッピングエンジンを示す。
このマッピングは、従来のコード化技術を使用して達成することができるが、マッピングは、ある種の挑戦課題に対処すべきなら単純ではない。挑戦課題は、新たな特性のタイプがエンティティで作られかつ使用されるとき、コード化された変換は、どのように新たなタイプを取り扱うかを知らないことがあり、したがって変換は、修正されかつ再編集されなければならないことである。他の挑戦課題は、変換に含まれる場合だけ価値がある、新たに開発された制御を取り扱うことであり、これもやはり、変換を再プログラミングすることになる。本発明のマッピング技術は、これら挑戦課題に対処することを可能にする。実行時においてUIの任意の修正(コードを介して)は、マッピングを考慮することもできることに留意されたい。本発明において使用されるプラットフォームは、層状にされたUIモデルを明らかにし、かつ1つの層から他の層にモデルを変換するためにマップを使用する。これは、より詳細に以下に記載される。
本発明の方法および装置は、どのように所定のプラットフォームでユーザにビジネス情報を示すかを計算する方法を提供する。本発明は、まさにアブストラクトモデル(対話するためにビジネスエンティティを記述する)から具体的なモデル(どのデバイスに固有の制御が、ビジネス情報をレンダリングするために使用されるべきであるかを正確に特定する)へ作用する、他のモデルへのモデルのマッピングに基づく。一般に、このマッピングは、任意の数のステップを含むことができる。
例えば、2つの明示的でありかつ宣言的なマッピングステップを使用して、マスタモデル405から専門(specialized)モデル425へのマッピングのプロセスを示す、図5−1に示されるブロック図400を考慮する。マスタモデル405(すなわち、「モデルA」)は、例えばデータベース、テーブル、エンティティ、オブジェクト、またはユーザに固有の問題ドメインにおける他のタイプのモデルとすることができる。マスタモデル405は、マップ410を使用する411で示されるマッピングステップ(すなわち「A−Bマップ」)を用いて、中間モデル415(すなわち「モデルB」)にマッピングされる。中間モデル415は、以下により詳細に記載されるように、論理制御を有するディスプレイターゲットから独立したモデルとすることができる。中間モデル415は、第2のマップ420を使用する421で示されるマッピングステップ(すなわち「B−Cマップ」)を用いて、専門モデル425(すなわち「モデルC」)に次にマッピングされる。専門モデル425は、以下により詳細に記載されるように、物理制御を有するディスプレイターゲットに固有のモデルとすることができる。マッピングステップ411および421を示すために使用される矢印は、また、マッピングステップを実施するためにマップ410および420を利用するために構成されたマッピングエンジンを表す。
本発明のいくつかの実施形態によれば、ユーザがクライアントプラットフォームでビジネス情報と対話することをどのように可能にするかを決定することを含むマッピングスキーマは、以下に記載されかつ図5−2のブロック図450に概略的に示されるような少なくとも3つのステップを含む。初期のモデル455(図5−1に示されるマスタモデル405も参照)は、ユーザが対話しなければならないビジネスエンティティに関する情報を含む。このアプリケーションモデルの各データは、特定のタイプである。第1のステップは、示すデータの所定のタイプ(ストリング、整数、金銭上の値を示す10進法タイプ、他の値を含むアドレスなど)を用いるための論理制御を決定することを含む。
所与のタイプに関する使用のための論理制御は、モデル455におけるデータタイプからモデル465における論理制御へのマッピングを使用して決定される。マッピングプロセスは、461で示され、マップ460(すなわち、「論理制御マップに対するデータタイプ」)を使用する。論理制御は、いくつかの有用な特性を有する。それらは、任意の特定のディスプレイターゲットに対する従属性からは完全に自由であるが、物理制御に特定の挙動を管理する特性を保持する。論理制御のルックアップは、階層タイプを考慮して実行される。論理制御が、特定のタイプの特性を要約するために特に適していないなら、サーチは、論理制御が扱うタイプを見出すまでベースタイプで継続する。
論理制御が、示されるデータのタイプから識別されると、所定のプラットフォームにレンダリングを実際に実行するために使用される物理制御は、見出さなければならない。これらの物理制御は、時々「アダプタ」と呼ばれる。これは、論理制御およびディスプレイターゲットから物理制御を生み出す、他のマッピングを使用して行われる。マッピングプロセスは、471に示され、論理制御モデル465から物理制御モデル475を生成するためにマップ470(すなわち「物理制御に対する論理制御マップ(logical control to physical control map)」)を使用する。
クライアントが、ユーザのディスプレイターゲットで動作するとき、物理制御は、ユーザと対話するために使用されるネーティブ制御のインスタンスを作るために使用される。これは、物理制御から一組のネーティブ制御を生じる第3のマッピングによって行われる。例えば、物理制御がアドレス制御であった場合、物理制御は、ストリート、町、国に関するネーティブ制御にマッピングされる。マッピングプロセスは、481に示され、物理制御モデル475からネーティブ制御モデル485を生成するためにマップ480(すなわち「ネーティブ制御への物理制御マップ(physical control to native control map)」)を使用する。いくつかの実施形態において、これは、必須のマップであるが、必ずしもそうである必要はない。再び、矢印461、471、および481は、また、マップ460、470、および480によって特定されるように、マッピング機能を実行するために使用されるマッピングエンジンを示す。
上述のマッピングは、所望の結果を達成するために他のマッピングで論じることができる。他の要因は、レンダリングされるフォームのタイプ(カードまたはリストビュー)、ユーザルール(恐らくユーザに提供される情報を制限する)を含む。アブストラクトモデルから具体的モデルへ達するプロセスは、純粋に規定され(含まれるマッピングを記述することによって)、柔軟性は、3つのマッピングを変更できることによってもたらされる。
他の例として、図5−3は、顧客の名前および識別ナンバ(ID)から、ブラウザにこの情報をレンダリングするために使用されるHTMLを得るためのマッピングプロセスを示すブロック図500を示す。マスタまたは初期のビジネスモデル505は、エンティティ(またはオブジェクト)、または特性として顧客の名前およびIDを有するエンティティのクラス(またはオブジェクトのクラス)である。モデル505の「名前」および「ID」特性は、それぞれ「ストリング」および「ナンバ」のタイプである。モデル505は、規定のマップ510を使用してモデル515の論理制御層にマッピングされる。マッピングプロセスは、511に示される。この例において、データタイプ「ストリング」は、「TextBox」論理制御にマッピングされ、一方、データタイプ「ナンバ」は、「NumberBox」論理制御にマッピングされる。
次に、論理制御モデル515は、マップ520を使用してHTMLモデル525にマッピングされる。マッピングプロセスは、521で示される。この例において、モデル525は、HTMLモデルのフォームにおける物理制御モデルである。したがって、マップ520は、モデル515の論理制御をモデル525におけるHTMLタグまたは要素にマッピングする。HTMLモデル525は、次に、ブラウザにおけるモデル505からの情報をレンダリングするために使用される。再び、マッピングステップ511および521を示すために使用される矢印は、また、マッピングプロセスを実施するためのマップ510および520を使用する適切に構成されたマッピングエンジンを表す。
図5−4は、いくつかの異なる特性タイプを同一の最終制御にマッピングすることができ、したがって必要な制御の数は、特性タイプの数が増加するとき必ずしも増加しない、本発明の実施形態のさらなる態様を示す。図5のブロック図550に示されるように、異なるタイプの特性561を有するビジネスモデル560は、マップ555を使用するディスプレイターゲットモデル580にマッピングされる。前述の例と同様に、モデル560は、論理制御571を有する論理層モデル570にマッピングされる。マップ565を使用するマッピングエンジンおよびマッピングプロセスは、566で示される。マップ565は、論理制御(「ナンバ」および「ストリング」)に、モデル560の特性561のデータタイプ(「IDタイプ」、「ストリング」、および「フロート」)をマッピングする。この場合、「IDタイプ」および「フロート」の両方のデータタイプは、「ナンバ」の論理制御タイプをマッピングし、一方、「ストリング」のデータタイプは、「ストリング」の論理制御タイプにマッピングする。
次に、論理層モデル570は、特定のディスプレイターゲットに特定の物理制御581を有するディスプレイターゲットモデル580にマッピングされる。モデル570は、576で示されるプロセスおよびマッピングエンジンで、マップ575を使用してモデル580にマッピングされる。マップ575は、モデル580の物理制御タイプ「TextBox」に、モデル570の論理制御タイプの「ナンバ」および「ストリング」をマッピングし、特定のモデルからいくつかの異なるタイプは、この場合も他のモデルに単一のタイプにマッピングすることができることを示す。拡張によって、ビジネスモデルからの複数の異なる特性タイプは、同一の最終(例えば「物理」)制御にマッピングすることができる。
開発者経験
開発者が、存在するタイプからだけ構築される新たなエンティティを作るとき、デフォルトUIもマップを介して構築される。デフォルトUIが、所望のユーザ経験を提供しない場合、開発者は、以下を選択することができる。
・ 要件を反映するためのビジネスモデルの修正。例えば、いくつかの実施形態において、特性のシーケンスのソートが誤っているなら、すなわちIDが前の名前で表示されるべきなら、エンティティを編集することができる。他の実施形態において、特性の順序付けは、外部「挙動」にある。しかしながら、オーダされた特性をグループにまとめることは、エンティティに「追加する」ことができ、これは、そうするために使用することができる。したがって、これらの実施形態において、最良のアプローチは、グループに分けることにおけるオーダを変更することになり得る。
・ 生成された論理フォームモデルの修正。名前およびIDを切り替えることは、フォームにおいて行うこともできる。ビジネス論理が、ビジネス論理における変更がフォームにおける変更を重ね書きするなど変更されるなら、これは、おそらくは後でいくつかの保守挑戦課題を示す。また、フォーム毎にビジネス論理を変更することが必要であり得る。
・ マップの修正。IDがナンバ制御にマッピングされるが、ストリング制御がより適切であるなら、マップは、変更を行うための権利の場所である。
より多くの従来のモデルの修正の代わりに、マップを変更することは多数の利点がある。まず第1に、変更はより広い範囲を有することができる。前述の例で使用されるマップエントリが変更されるなら、「IDタイプ」を使用する全てのエンティティは、自動的に更新する。これは、結果としてエンドユーザが利益を得るまさに一致するUIを生じる。
他の利点は、保守およびアプリケーションのさらなるバージョンを調べるときに明らかになる。モデルが生成される方法を変更するが、生成されたモデルを変更しないことにより、マスタモデルを更新することができ、以降従属するモデルは、不一致の任意のリスクなしに再生することができる。全くフォームを再生しないことは、結果としてエンティティ間の不一致、およびそれらを見てかつ編集するために使用されるフォームを生じることができる。マップは、また大きな生成タスクをいくつかの小さな宣言マップエントリに分ける。
開発者が、「金銭」などの新たな特性タイプを作る場合、ただ1つのマップエントリだけが追加されるならUIが効率的に生成されるので、これは、ただちに使用することができる。この例において、新たな「金銭」特性は、「ナンバ」制御にマッピングすることができる。開発者は、また追加されたメタデータ情報を利用することを選択し、かつ「金銭」制御を作り、新たな制御に対する特性マップを持つこともできる。マッピング技術は、両方のシナリオを有効にする。
マッピング言語
マッピングは、拡張可能である単純な宣言マッピング言語を使用する。マッピングは、入力として1つまたは複数のトークン(token)をとり、かつ出力として1つまたは複数のトークンを戻す。入力として特性タイプを考慮すれば、1つまたは複数の論理制御は、出力として特定することができる。ゼロとして出力を特定することも可能でなければならない。例えば、「IDタイプ」は、ユーザが編集または見ることができず、その場合、タイプが何にもマッピングされないコンピュータによって生成されたフィールドとすることができる。また、マッピングは、出力のパラメータを制御できる。例えば、「ストリング」特性は、フォーム上の他のTextBoxに比べてより広いTextBoxを結果として生じることができる。
より前に対処されたスコーピング(scoping)の問題を取り扱うために、スコープ状態は、前述の例示的なフォームで、「ID制御」に対する「IDタイプ」マップが必要であるが、全ての他のフォームで、「ナンバ」制御が使用される。他のパラメータは、ビジネスエンティティ、エンティティステレオタイプ(stereotype)、フォームタイプなどを含む、スコープとして使用することもできる。マップが実行されるべきであるとき、考慮することが有利である他の状態がある。一例は、ペアレント(parent)制御である。ペアレント制御がリストであるなら、エニュメレータ(enumerator)特性は、ラジオボタンではなく、ドロップダウン(drop−down)リストへのマップを選択することがある。他の状態は、エニュメレータにおける可能な選択の数とすることができ、ラジオボタンは、2つまたは3つであれば使用することができるが、より多くの選択は、結果としてリストを生じることがあり得る。この方法が作動しないと、マッピング言語は、初期の要件に比べて非常に複雑になり、マップのトップ上の他のアブストラクションレベルは、開発者がマップを理解することを必要とする。このパターンは、いくつかのツールが複雑性を隠すために実施される、拡張可能なスタイルシート(StyleSheet)言語変換(XSLT)で見ることができる。
論理フォーム−UIモデル
ビジネス論理のモデルからUIモデルのマッピングのとき、論理層とも呼ばれるレイアウトに独立な層が挿入される。ビジネス論理のモデルが、ディスプレイターゲットに関わりなく最終的なUIにマッピングされ得ると考えられるなら、論理層は、単純な(straight forward)アブストラクションである。いくつかのメタデータは、ビジネスエンティティ自体など全てのディスプレイターゲットに関して共通であり、いくつかの部分は、特定のディスプレイターゲットに関して特定される。論理層は、共通の部分である。
図6は、フォームを作るために使用される設計時アクティビティおよび実行時アクティビティの概略図である。設計時において、モデリングツール605は、前述のものなどのモデルまたはフォーム定義およびマップを作るために使用される。これらのフォーム定義およびマップは、メタデータデータベース610に格納することができる。
実行時において、モデルまたはフォームは、論理層モデル625にマッピングされる。論理層モデル625は、また、ビジネス論理620に適用されるデータベース615に格納される実行時データを使用して生成される。また、実行時において、論理層モデル625は、前述ようにディスプレイターゲットモデル630にマッピングされる。
フォームおよび制御を含む論理層は、ビジネス論理620とディスプレイターゲット630との間のブリッジ(bridge)である。それは、限定されたレイアウトの知識および限定されたビジネス論理の知識を有する。論理層は、ビジネスエンティティに基づきフォームのコンテンツを定義し、フォームをビジネスエンティティの実行時インスタンスに結合するデータなど、共通の実行時の問題を取り扱う。さらに、論理層は、全てのディスプレイターゲットに共通のセキュリティを取り扱い、それは、各ディスプレイターゲットにメタデータを提供し、論理層は、入力妥当性を取り扱うことができる。
ビジネスアーキテクチャまたは開発者は、ドメインに特定のビジネス論理およびデータに焦点を合わせることができる。焦点がUIに移されるとき、レイアウト詳細、データ結合の問題、プラミング(plumbing)コード、入力妥当性、読み取りできない特性を隠すこと、エラー処理などは、論理層に見出されるアブストラクションの高いレベルに全て隠される。ドメインスペシャリストは、ユーザが見るために何が意味を成すかなど、UIのコンテンツに焦点を合わせることができ、特定のディスプレイターゲットおよびそれらの異なるレンダリング技術に関する広範囲にわたる知識を必要としない。
上述のように、論理フォームまたは論理層モデルは、論理制御を使用して構築される。新たな制御は、容易に追加することができ、論理層を非常に柔軟かつ拡張可能にする。新たな制御が開発されたとき、それは、使用されるマップを変更することによって既存のフォームに単に追加される。各ディスプレイターゲットは、新たな制御を実施する必要なく新たな機能性から利益を得るが、それが意味を成すなら、新たな制御を導入することができる。
ディスプレイターゲット
論理フォームおよび制御は、ディスプレイターゲットによって使用される特定のレンダリング技術にマッピングされる。他の図のように、これは、論理層モデルまたはフォーム705がいくつかの特定のディスプレイターゲットにマッピングされる図7に示される。この特定の例において、ディスプレイターゲット710は、Windowsレンダリング技術を使用し、一方、ディスプレイターゲット715は、ウェブレンダリング技術を使用する。ディスプレイターゲットは、フォームおよび制御のレンダリング、およびユーザ入力の取り扱いを含む全てのユーザ対話を担当する。各ディスプレイターゲットは、論理層における制御が何か意味のあるものにマッピングされるように、多数の制御を必要とする。すなわち、特性は、値のタイプと両立しなければならず、その値のタイプは、制御が取り扱うことができ、かつ制御が実際的な方法でその値をレンダリングすべきである。換言すれば、マッピング技術がこれに有意な影響を有するとき、各ディスプレイターゲットで利用可能でなければならない特定の多数の制御は存在しない。
ディスプレイターゲットは、ユーザ対話を制御し、また本質的に対話パラダイムを制御する。ウェブページおよびWindows Formsウィンドウは、同じ論理フォームに基づき生成することができるが、それらが、チャッティ(chatty)対話ポリシーまたはチャンキー(chunky)ポストバックポリシーを使用かどうかは、ディスプレイターゲットによって当然決定される。各ディスプレイターゲットは、どれだけ多くのフォームがユーザに表示されるかを選択する。Windowsフォームは、タブウェブ上の情報を隠すことができ、一方、ウェブページは、一時に全ての情報を示すために選択することができる。これらの決定は、ディスプレイターゲットが得る、論理フォーム、したがってまたフォームタイプに基づいて行われる。異なるディスプレイターゲットは、そのようなページング決定を行うための追加の情報を必要とし、同様に論理フォームおよび制御には、ディスプレイターゲットに特定の情報で注釈を付けることができる。
挙動−宣言フォーム論理
フォームが、コンテンツを定義する論理制御を構築するので、フォームに対してダイナミックスを追加する必要がまだある。これは、コードを使用して行うことができる。しかし、フォーム上にコードをマッピングすることは容易ではなく、したがって宣言的抽象レベルは必要である。同時に、フォームに追加されるコードにおける多くのパターンが存在する。例えば、他のフィールドが満たされるなら、フィールドを使用不可にするためのコードは、多くのフォームに見出される。「Cash」が、フォーム上の支払いタイプとして選択される場合、「クレジットカードナンバ」は、グレイにされまたはさらに隠される。
これらのパターンは、「挙動」と呼ばれる概念で捕捉される。挙動は、宣言的にフォームに追加され、フォームにおけるイベントを介してアクティベートされる。挙動は、制御の値および特性に応じて、他の制御に特性を設定することができるが、挙動は、この使用に限定されない。挙動は、エンティティにおける制約または他のメタデータ特性に基づき主にマッピングされる。エンティティは、ビジネス論理を取り扱うことを担当し、挙動は、UI論理を担当する。換言すれば、挙動は、これが関心事の分離を妨げるので、任意のビジネス論理を実行すべきではない。
層状にされたシステムおよび方法例
さて図8を参照して、上述の様々な概念(すなわち、論理フォームタイプ、UIマップ、制御、挙動など)を組み合わせて実施する、層状にされたシステムおよび方法の概略的な図示である。図8に示されるように、システムまたは方法900は、ビジネスアプリケーションおよびコンピューティングシステム、コアクライアントマッピングエンジンまたはコンポーネント910、および1つまたは複数のディスプレイターゲット915を含むことができる、ビジネスフレームワーク905を使用して実施される。例示の目的で、図8は、マップ920(マップ921および922を含む)、モデル925(アプリケーションまたはビジネスモデル926、論理フォームモデル927、および物理的モデル928を含む)、およびライブラリ930を示すためにセグメント化される。
ライブラリ930は、アプリケーションモデル926におけるデータの様々な特性タイプ923を定義する、ビジネスフレームワーク905における特性タイプライブラリ931を含む。コアクライアント910において、ライブラリ930は、論理制御ライブラリ932、挙動ライブラリ933、および論理フォームタイプライブラリ934を含む。上述されたように、論理制御ライブラリ932は、モデル926のデータまたは特性タイプ923をマッピングすることができる様々な論理制御924を定義する。アプリケーションモデル926と論理フォームモデル927との間のこのマッピングは、マップ921を使用するコアクライアントマッピングエンジンによって実行される。
挙動ライブラリ933および論理フォームタイプライブラリ934は、前述のように、フォームを設計および生成するプロセスにおいて、コアクライアントマッピングエンジン910によって使用される。ライブラリ930は、物理的フォームモデル928を生成するために、したがって物理的フォームをレンダリングするためにディスプレイターゲット900によって使用される、スタイルライブラリ935、物理的またはネーティブ制御ライブラリ936、およびフォームタイプライブラリ937も含む。制御ライブラリ936は、マップ922を使用して論理制御924をマッピングすることができる特定のディスプレイターゲットに関する様々な物理制御925を定義する。
本発明は、特定の実施形態を参照して述べたが、当業者は、本発明の精神および範囲から逸脱することなく、形態および詳細に変更を加えることができることは理解されよう。
本発明を使用することができる1つの例示的な環境のブロック図である。 本発明を実施することができる一般的なモバイルコンピューティング環境のブロック図である。 論理フォームおよび物理的フォームを生成するために、本発明のフォームタイプの使用の概略的な例示の図である。 図3−1に示されるフォームタイプの使用の概略的な例示であり、フォームタイプと論理フォームおよび物理的フォームの生成との間の関係をさらに例示する図である。 ビジネスモデル例を例示するブロック図である。 フォームに対してマッピングされたエンティティビジネスモデルを例示するブロック図である。 マップを使用するモデルおよび他のモデルを生成するプロセスを例示するブロック図である。 一連のマッピングを介して初期のアプリケーションまたはビジネスモデルから、ディスプレイターゲットの特定モデルを生成するプロセスを例示するブロック図である。 一例の実施形態に関して図4−1および図4−2に示されるタイプのプロセスを例示するブロック図である。 ディスプレイターゲットから独立した論理フォームを作成するために、制御に対してマッピングされたエンティティ特性で、ビジネスモデルエンティティが、最初にディスプレイターゲットから独立したフォームにマッピングされ、次に論理フォームが、ディスプレイターゲットにマッピングされる、例示的なマッピングプロセスを例示するブロック図である。 本発明の設計時および実行時の態様を例示し、かつ論理層が、ビジネス論理とディスプレイターゲットとの間のブリッジであることを例示するブロック図である。 ディスプレイターゲットの特定のレンダリング技術にマッピングされた論理的なフォームを例示するブロック図である。 本発明の概念の概略の例示の図である。
符号の説明
120 プロセッシングユニット
130 システムメモリ
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取り外し可能な不揮発性メモリインターフェース
160 ユーザ入力インターフェース
161 ポインティングデバイス
162 キーボード
163 マイクロフォン
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 ワイドエリアネットワーク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
202 プロセッサ
208 通信インターフェース
216 オブジェクトストア

Claims (24)

  1. アプリケーションモデルを示すために、モデルドリブンフォームユーザインターフェースを生成する方法であって、
    前記アプリケーションモデルを示す前記フォームユーザインターフェースを生成するために使用する、複数の異なる論理フォームタイプのどれかを選択するステップと、
    第1のマップを提供するステップと、
    前記アプリケーションモデル、前記選択されたフォームタイプ、および前記第1のマップを使用して、ディスプレイターゲットから独立した論理フォームを生成するステップとを備えることを特徴とする方法。
  2. 前記第1のマップは、第1の宣言マップであり、前記第1の宣言マップを使用してディスプレイターゲットから独立した論理フォームを生成するステップは、前記ディスプレイターゲットから独立した論理フォーム内のディスプレイターゲットから独立した論理制御に、前記アプリケーションモデルのデータの特性タイプをマッピングするステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記ディスプレイターゲットから独立した論理フォームを生成するステップは、ディスプレイターゲットから独立した論理フォームモデルを生成するステップを含むことを特徴とする請求項2に記載の方法。
  4. 前記アプリケーションモデル、前記選択されたフォームタイプ、および前記第1の宣言マップを使用して、前記ディスプレイターゲットから独立した論理フォームを生成するステップは、前記ディスプレイターゲットから独立した論理フォームに対して宣言的に適用される挙動をさらに付けるステップをさらに含むことを特徴とする請求項2に記載の方法。
  5. 前記宣言的に適用される挙動は、前記フォームにおけるイベントによってアクティベートされることを特徴とする請求項4に記載の方法。
  6. 前記宣言的に適用される挙動は、前記論理制御の値および特性に応じて、他の制御に特性を設定する論理のパターンであることを特徴とする請求項5に記載の方法。
  7. 前記第1の宣言マップは、前記ディスプレイターゲットから独立した論理フォームを生成するために使用されるマッピングエンジンに対して外部にあることを特徴とする請求項2に記載の方法。
  8. 前記第1の宣言マップは、前記論理制御モデルを生成するために前記マッピングエンジンによって使用されるモデルであることを特徴とする請求項7に記載の方法。
  9. 第2の宣言マップを使用して物理的フォームに対して前記論理フォームをマッピングするさらなるステップをさらに備えることを特徴とする請求項2に記載の方法。
  10. 前記物理的フォームは、ディスプレイターゲットへの前記論理フォームのレンダリングで使用するために利用可能な複数の物理制御を有し、前記第2の宣言マップを使用して前記物理的フォームに対して前記論理フォームをマッピングするステップは、前記複数の利用可能な物理制御の1つに対して前記論理フォームにおける各前記論理制御をマッピングするために、前記第2の宣言マップを使用することをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記アプリケーションモデルが、実行時に作用されるように、前記生成された論理フォームを使用して実行時に前記フォームユーザインターフェースをレンダリングするステップをさらに備えることを特徴とする請求項10に記載の方法。
  12. 実行時に前記フォームユーザインターフェースをレンダリングするステップは、前記選択された論理フォームタイプおよび前記アプリケーションモデルからのメタデータの両方を使用して、実行時に前記論理フォームを生成するステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. 各前記複数の異なる論理フォームタイプは、前記生成された論理フォームに含まれるべきアプリケーションモデルデータを定義する関連スキーマを有し、実行時に前記論理フォームを生成するステップは、前記関連スキーマを使用して前記論理フォームを生成するステップをさらに含むことを特徴とする請求項12に記載の方法。
  14. 各前記複数の異なる論理フォームタイプの前記スキーマは、複数のフォームから捕捉されたパターンを示すことを特徴とする請求項13に記載の方法。
  15. 各前記複数の論理フォームタイプは、少なくとも1つの定義されたレイアウトを有し、前記方法は、前記少なくとも1つの定義されたレイアウトを使用して、実行時に前記物理的フォームを生成することをさらに含むことを特徴とする請求項13に記載の方法。
  16. フォームユーザインターフェースを生成するステップを実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、フォームユーザインターフェースを生成するステップは、
    アプリケーションモデルを示すフォームユーザインターフェースを生成するために使用する、複数の異なる論理フォームタイプのどれかを選択するための選択入力を受信するステップと、
    第1のマップを提供するステップと、
    前記アプリケーションモデル、前記選択されたフォームタイプ、および前記第1のマップを使用して、ディスプレイターゲットから独立した論理フォームを生成するステップとを含むことを特徴とするコンピュータ可読媒体。
  17. 前記第1のマップは、第1の宣言マップであり、前記第1の宣言マップを使用して前記ディスプレイターゲットから独立した論理フォームを生成するステップは、前記ディスプレイターゲットから独立した論理フォーム内のディスプレイターゲットから独立した論理制御に、前記アプリケーションモデルのデータの特性タイプをマッピングすることもさらに含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 前記アプリケーションモデル、前記選択されたフォームタイプ、および前記第1の宣言マップを使用して、前記ディスプレイターゲットから独立した論理フォームを生成するステップは、前記ディスプレイターゲットから独立した論理フォームに対して宣言的に適用される挙動を付けるステップもさらに含むことを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. 前記第1の宣言マップは、前記ディスプレイターゲットから独立した論理フォームを生成するために使用されるマッピングエンジンに対して外部にあることを特徴とする請求項17に記載のコンピュータ可読媒体。
  20. 第2の宣言マップを使用して物理的フォームに対して前記論理フォームをマッピングするさらなるステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項17に記載のコンピュータ可読媒体。
  21. 前記物理的フォームは、ディスプレイターゲットへの前記論理フォームのレンダリングで使用するために利用可能な複数の物理制御を有し、前記第2の宣言マップを使用して前記物理的フォームに対して前記論理フォームをマッピングするステップは、前記複数の利用可能な物理制御の1つに対して前記論理フォームにおける各前記論理制御をマッピングするために、前記第2の宣言マップを使用することをさらに含むことを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 各前記複数の異なる論理フォームタイプは、前記生成された論理フォームに含まれるべきアプリケーションモデルデータを定義する関連スキーマを有し、前記論理フォームを生成するステップは、前記関連スキーマを使用して前記論理フォームを生成するステップをさらに含むことを特徴とする請求項21に記載のコンピュータ可読媒体。
  23. 各前記複数の異なる論理フォームタイプの前記スキーマは、複数のフォームから捕捉されたパターンを示すことを特徴とする請求項22に記載のコンピュータ可読媒体。
  24. 各前記複数の論理フォームタイプは、少なくとも1つの定義されたレイアウトを有し、前記コンピュータ可読媒体は、前記少なくとも1つの定義されたレイアウトを使用して、実行時に前記物理的フォームを生成するさらなるステップを実行するためのコンピュータ実行可能な命令をさらに有することを特徴とする請求項22に記載のコンピュータ可読媒体。
JP2005161905A 2004-06-03 2005-06-01 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置 Expired - Fee Related JP5099982B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/860,306 US7424485B2 (en) 2004-06-03 2004-06-03 Method and apparatus for generating user interfaces based upon automation with full flexibility
US10/860,306 2004-06-03

Publications (2)

Publication Number Publication Date
JP2005346719A true JP2005346719A (ja) 2005-12-15
JP5099982B2 JP5099982B2 (ja) 2012-12-19

Family

ID=34940048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005161905A Expired - Fee Related JP5099982B2 (ja) 2004-06-03 2005-06-01 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置

Country Status (11)

Country Link
US (1) US7424485B2 (ja)
EP (1) EP1603034B1 (ja)
JP (1) JP5099982B2 (ja)
KR (1) KR101120815B1 (ja)
CN (1) CN1704900B (ja)
AU (1) AU2005201433B2 (ja)
BR (1) BRPI0501581A (ja)
CA (1) CA2504082C (ja)
ES (1) ES2692120T3 (ja)
MX (1) MXPA05004862A (ja)
RU (1) RU2390822C2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054168A (ja) * 2009-08-31 2011-03-17 Sap Ag サービス指向アーキテクチャモデルからサービス指向インフラストラクチャモデルへの変換
JP2011113571A (ja) * 2009-11-27 2011-06-09 Korea Electronics Telecommun 資源間の物理的/論理的な関係をマッピングする方法及び装置
JP2016224923A (ja) * 2015-04-29 2016-12-28 リミテッド ライアビリティー カンパニー “1シー” ユーザフォームインタフェースの自動生成の方法およびシステム

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412658B2 (en) 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US7363578B2 (en) * 2004-06-03 2008-04-22 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US9038001B2 (en) * 2004-07-01 2015-05-19 Mindjet Llc System and method for graphically illustrating external data source information in the form of a visual hierarchy in an electronic workspace
US9047388B2 (en) 2004-07-01 2015-06-02 Mindjet Llc System, method, and software application for displaying data from a web service in a visual map
US20060026522A1 (en) * 2004-07-27 2006-02-02 Microsoft Corporation Method and apparatus for revising data models and maps by example
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
US20060294006A1 (en) * 2005-06-28 2006-12-28 International Business Machines Corporation Business transaction process controller for composite transactions
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US20070192364A1 (en) * 2005-12-29 2007-08-16 International Business Machines Corporation Apparatus and method for porting of business logic among computer platforms
US7757204B2 (en) * 2005-12-29 2010-07-13 Sap Ag Limiting extensibility of a visual modeling language
US7774745B2 (en) * 2005-12-29 2010-08-10 Sap Ag Mapping of designtime to runtime in a visual modeling language environment
US8156469B2 (en) * 2005-12-29 2012-04-10 Sap Ag Single composition of pattern modules
US7840935B2 (en) * 2005-12-29 2010-11-23 Sap Ag Restrictive visualization of a stereotype construct for entities in a visual modeling environment
US7840936B2 (en) * 2005-12-29 2010-11-23 Sap Ag Support of a platform-independent model including descriptions of modeling language entities
US7584416B2 (en) * 2006-02-21 2009-09-01 Microsoft Corporation Logical representation of a user interface form
US7984416B2 (en) * 2006-03-24 2011-07-19 The Mathworks, Inc. System and method for providing class definitions in a dynamically typed array-based language
US8966456B2 (en) 2006-03-24 2015-02-24 The Mathworks, Inc. System and method for providing and using meta-data in a dynamically typed array-based language
US8924335B1 (en) * 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US7945891B2 (en) * 2006-04-12 2011-05-17 Microsoft Corporation Time business process validations within data context
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US8887130B2 (en) * 2006-06-16 2014-11-11 Sony Corporation Software design and development in a service oriented environment
US20080005159A1 (en) * 2006-06-28 2008-01-03 International Business Machines Corporation Method and computer program product for collection-based iterative refinement of semantic associations according to granularity
US7730412B2 (en) * 2006-06-30 2010-06-01 Sap Ag System and method for model-based user interface using transformation nodes
US20080059944A1 (en) * 2006-08-15 2008-03-06 Zeligsoft Inc. Deployment-aware software code generation
US7844912B2 (en) * 2006-12-22 2010-11-30 Sap Ag System and method using transformation nodes with enhancement layers
US8689174B2 (en) * 2006-12-28 2014-04-01 Sap Ag Extensibility of pattern components
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US7917893B2 (en) * 2007-03-07 2011-03-29 Microsoft Corporation Using a system of annotations to generate views and adapters
US8010970B2 (en) * 2007-04-10 2011-08-30 Microsoft Corporation Developing controls for outlook add-ins
CN101316296B (zh) * 2007-05-29 2012-09-05 中兴通讯股份有限公司 管理多种电子工单生成的方法及系统
US20090043592A1 (en) * 2007-08-06 2009-02-12 Sap Ag Method and system for managing product development processes
US20090064205A1 (en) * 2007-08-16 2009-03-05 Oracle International Corporation System and method for harvesting service metadata from a metadata repository into an architecture diagram
US20090083697A1 (en) * 2007-09-21 2009-03-26 Honeywell International Inc. Integration of User Interface Design and Model Driven Development
US8458648B2 (en) * 2007-12-10 2013-06-04 International Business Machines Corporation Graphical modelization of user interfaces for data intensive applications
US9817540B2 (en) * 2007-12-31 2017-11-14 Intel Corporation Device, system, and method of composing logical computing platforms
US10304095B2 (en) * 2008-02-04 2019-05-28 Thomson Reuters Global Resources Unlimited Company System and method for accounting gateway
US20090319923A1 (en) * 2008-06-20 2009-12-24 International Business Machines Corporation Method for generating role-based user interfaces utilizing uml models
US20100070891A1 (en) * 2008-09-18 2010-03-18 Creekbaum William J System and method for configuring an application via a visual map interface
US9396455B2 (en) 2008-11-10 2016-07-19 Mindjet Llc System, method, and software application for enabling a user to view and interact with a visual map in an external application
CN102246227A (zh) * 2008-12-19 2011-11-16 国际商业机器公司 用于从数据元模型生成有声用户接口编码的方法和系统
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8190499B1 (en) 2009-08-21 2012-05-29 Intuit Inc. Methods systems and articles of manufacture for collecting data for future electronic tax return
CA2679786A1 (en) * 2009-09-16 2009-12-16 Ibm Canada Limited - Ibm Canada Limitee Conceptual representation of business processes for cross-domain mapping
US20110185294A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Pattern-based user interfaces
US9513882B2 (en) * 2010-04-15 2016-12-06 Microsoft Technology Licensing, Llc Platform independent presentation composition
US8583517B1 (en) 2010-04-30 2013-11-12 Intuit Inc. Systems and methods for generating and sending electronic messages related to a tax return
CN102004645B (zh) * 2010-12-17 2014-06-25 无锡永中软件有限公司 一种实现电子表格单变量求解的方法
DK177307B1 (en) * 2010-12-17 2012-11-12 Aquaporin As A liquid membrane
US8560827B1 (en) * 2010-12-28 2013-10-15 Emc International Company Automatically determining configuration parameters for a system based on business objectives
RU2479867C2 (ru) * 2010-12-29 2013-04-20 Олег Владимирович Горохов Способ работы пользовательского лингвистического интерфейса
US9141403B2 (en) * 2011-02-15 2015-09-22 Microsoft Technology Licensing, Llc Data-driven schema for describing and executing management tasks in a graphical user interface
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US20120284735A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Interaction-Based Interface to a Logical Client
US20130067365A1 (en) * 2011-09-13 2013-03-14 Microsoft Corporation Role based user interface for limited display devices
US9720583B2 (en) * 2011-09-22 2017-08-01 Microsoft Technology Licensing, Llc User interface for editing a value in place
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
CN103473622B (zh) * 2012-06-07 2021-11-02 Sap欧洲公司 基于业务方案的范围界定
US10268662B2 (en) * 2012-09-10 2019-04-23 The Boeing Company Panoptic visualization of a document according to the structure thereof
US9858624B2 (en) * 2012-10-04 2018-01-02 Qvinci Software, Llc Methods and apparatus for providing data normalization, scalability and maintainability
GB201300465D0 (en) 2013-01-11 2013-02-27 Aquaporin As A hollow fiber module having tfc-aquaporin modified membranes
DK177696B1 (en) 2013-02-25 2014-03-17 Aquaporin As Systems for water extraction
CN103713901B (zh) * 2013-12-24 2018-01-12 金蝶软件(中国)有限公司 单据的展示方法和系统
CN103809976A (zh) * 2014-02-19 2014-05-21 浪潮软件股份有限公司 工作流关联多终端类型表单的方法
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
CN104391725B (zh) * 2014-12-08 2017-11-14 畅捷通信息技术股份有限公司 页面展示方法和页面展示装置
US10572129B2 (en) * 2014-12-24 2020-02-25 Sap Portals Isreal Ltd Declarative user interface representation conversion via hierarchical templates
EP3358470B1 (en) 2015-09-30 2020-11-04 Obschestvo S Ogranichennoy Otvetstvennostyu "Intersoft" Method of preparing documents in markup languages
RU2613026C1 (ru) * 2015-09-30 2017-03-14 Общество с ограниченной ответственностью "Интерсофт" Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
US10203939B2 (en) * 2015-10-30 2019-02-12 Sap Se Method and system for parameter model framework
CN105739984B (zh) * 2016-01-29 2019-08-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示系统
US10521721B2 (en) * 2016-04-08 2019-12-31 International Business Machines Corporation Generating a solution for an optimization problem
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11625662B2 (en) 2016-09-22 2023-04-11 Qvinci Software, Llc Methods and apparatus for the manipulating and providing of anonymized data collected from a plurality of sources
US10372443B2 (en) 2016-10-18 2019-08-06 Oracle International Corporation Multi-platform pattern-based user interfaces
EP3462309A1 (en) * 2017-09-28 2019-04-03 Siemens Aktiengesellschaft Method for generating user interfaces from a manufacturing application model
WO2020006076A1 (en) * 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11055073B2 (en) * 2019-04-08 2021-07-06 Citrix Systems, Inc. Transforming validated user interface layouts using inter-platform design mapping data
CN110633459B (zh) * 2019-07-23 2023-10-10 石化盈科信息技术有限责任公司 数据报表的自动生成方法及系统、计算机可读存储介质
CN113050930A (zh) * 2019-12-27 2021-06-29 北京华为数字技术有限公司 用户图形界面修改方法以及相关设备
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
CN112163049B (zh) * 2020-09-29 2024-04-09 北京中电普华信息技术有限公司 将业务对象映射为数据实体的方法及装置
CN113204329A (zh) * 2021-03-19 2021-08-03 浙江华云信息科技有限公司 统一数据模型驱动业务应用的控制方法及其应用系统
CN114064716B (zh) * 2021-10-29 2023-10-20 北京市农林科学院信息技术研究中心 基于元数据的web报表自动生成方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330715A (ja) * 2002-05-08 2003-11-21 Docomo Communications Laboratories Usa Inc 異種装置プラットフォーム間をマイグレーションするプラットフォーム特定型のグラフィカルユーザインターフェイスのウィジェットのレイアウト

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649190A (en) * 1994-06-14 1997-07-15 Harris Corporation Multi-model database system for dynamic creation and maintenance of complex objects in a real time environment
US6076051A (en) 1997-03-07 2000-06-13 Microsoft Corporation Information retrieval utilizing semantic representation of text
US5999948A (en) * 1997-09-03 1999-12-07 3Com Corporation Dynamic configuration forms in network management software
US6012098A (en) 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
AU769742B2 (en) 1999-03-02 2004-02-05 Amway Corp. Electronic commerce transactions within a marketing system that may contain a membership buying opportunity
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6704743B1 (en) 1999-09-13 2004-03-09 Copernus, Inc. Selective inheritance of object parameters in object-oriented computer environment
US6657584B2 (en) 2000-06-23 2003-12-02 Sportvision, Inc. Locating an object using GPS with additional data
US20020083068A1 (en) 2000-10-30 2002-06-27 Quass Dallan W. Method and apparatus for filling out electronic forms
WO2002037261A2 (en) * 2000-11-03 2002-05-10 Wilde Technologies Limited A software development process
WO2002041624A2 (en) 2000-11-06 2002-05-23 Terry Bernard Young Electronic markets business interchange system and metheo
US20020152118A1 (en) * 2000-11-06 2002-10-17 Hadjigeorgis George K. System of a computer-networked, point-of-sale rebate award program
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
CA2329559A1 (en) * 2000-12-22 2002-06-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for generating serialization code for representing a model in different type systems
US7194683B2 (en) 2001-03-02 2007-03-20 International Business Machines Corporation Representing and managing dynamic data content for web documents
US20020163538A1 (en) * 2001-05-07 2002-11-07 Koninklijke Philips Electronics N.V. Electronic mail guide
US7246326B2 (en) * 2001-06-25 2007-07-17 Siemens Medical Solutions Health Services Corporation System and procedure for providing a user interface display
US20030025732A1 (en) * 2001-07-31 2003-02-06 Prichard Scot D. Method and apparatus for providing customizable graphical user interface and screen layout
US20030221165A1 (en) 2002-05-22 2003-11-27 Microsoft Corporation System and method for metadata-driven user interface
US20050005259A1 (en) * 2003-03-14 2005-01-06 Infowave Software, Inc. System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems
US7698176B2 (en) 2003-07-28 2010-04-13 At&T Intellectual Property I, L.P. Method, system, and computer-readable medium for updating inventory data in an inventory management system
US7933762B2 (en) 2004-04-16 2011-04-26 Fortelligent, Inc. Predictive model generation
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330715A (ja) * 2002-05-08 2003-11-21 Docomo Communications Laboratories Usa Inc 異種装置プラットフォーム間をマイグレーションするプラットフォーム特定型のグラフィカルユーザインターフェイスのウィジェットのレイアウト

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011054168A (ja) * 2009-08-31 2011-03-17 Sap Ag サービス指向アーキテクチャモデルからサービス指向インフラストラクチャモデルへの変換
JP2011113571A (ja) * 2009-11-27 2011-06-09 Korea Electronics Telecommun 資源間の物理的/論理的な関係をマッピングする方法及び装置
US8346816B2 (en) 2009-11-27 2013-01-01 Electronics And Telecommunications Research Institute Method and apparatus for physical/logical relationship mapping between resources
JP2016224923A (ja) * 2015-04-29 2016-12-28 リミテッド ライアビリティー カンパニー “1シー” ユーザフォームインタフェースの自動生成の方法およびシステム

Also Published As

Publication number Publication date
RU2390822C2 (ru) 2010-05-27
EP1603034A3 (en) 2007-12-26
CA2504082C (en) 2012-02-07
US20060004845A1 (en) 2006-01-05
AU2005201433A1 (en) 2005-12-22
AU2005201433B2 (en) 2010-04-08
KR101120815B1 (ko) 2012-03-23
BRPI0501581A (pt) 2006-01-24
MXPA05004862A (es) 2005-12-07
EP1603034B1 (en) 2018-07-25
KR20060047250A (ko) 2006-05-18
CN1704900A (zh) 2005-12-07
RU2005116964A (ru) 2006-11-20
JP5099982B2 (ja) 2012-12-19
CN1704900B (zh) 2012-09-05
US7424485B2 (en) 2008-09-09
ES2692120T3 (es) 2018-11-30
EP1603034A2 (en) 2005-12-07
CA2504082A1 (en) 2005-12-03

Similar Documents

Publication Publication Date Title
JP5099982B2 (ja) 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置
US7363578B2 (en) Method and apparatus for mapping a data model to a user interface model
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
US8281283B2 (en) Model-based integration of business logic implemented in enterprise javabeans into a UI framework
US8719773B2 (en) Workflow data binding
US20070220035A1 (en) Generating user interface using metadata
US20050066304A1 (en) Custom and customizable components, such as for workflow applications
US20080126409A1 (en) Systems and methods for providing a decoupled simulation for business objects
US20060026506A1 (en) Test display module for testing application logic independent of specific user interface platforms
US7603624B2 (en) System and method for styling content in a graphical user interface control
US8201147B2 (en) Generic XAD processing model
JP2013518321A (ja) パターンベースのユーザインターフェース
US7657869B2 (en) Integration of external tools into an existing design environment
WO2009055759A2 (en) Declarative model interpretation
US20060026522A1 (en) Method and apparatus for revising data models and maps by example
JP2004310279A (ja) 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
Japikse et al. Building Web Applications with. NET Core 2.1 and JavaScript: Leveraging Modern JavaScript Frameworks
US20080016492A1 (en) Modeled types-attributes, aliases and context-awareness
KR101219960B1 (ko) 엔터티 패턴들을 사용하여 데이터 모델의 구조를 캡처하는시스템 및 방법
Prakash et al. Service Builder Concepts
Voulalas et al. Developing and deploying dynamic application: An Architectural Prototype
Bowley Rapid Portlet Development with WebSphere Portlet Factory: Step-by-step Guide for Building Your Own Portlets
Sanderson User Interface Techniques
Langit Reporting Tools
Japikse et al. Building Web Applications with .NET Core 2.1 and JavaScript

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120724

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120813

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

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

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5099982

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