JP5099982B2 - Method and apparatus for generating a user interface based on automation with full flexibility - Google Patents

Method and apparatus for generating a user interface based on automation with full flexibility Download PDF

Info

Publication number
JP5099982B2
JP5099982B2 JP2005161905A JP2005161905A JP5099982B2 JP 5099982 B2 JP5099982 B2 JP 5099982B2 JP 2005161905 A JP2005161905 A JP 2005161905A JP 2005161905 A JP2005161905 A JP 2005161905A JP 5099982 B2 JP5099982 B2 JP 5099982B2
Authority
JP
Japan
Prior art keywords
form
model
mapping
type
user interface
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.)
Active
Application number
JP2005161905A
Other languages
Japanese (ja)
Other versions
JP2005346719A (en
Inventor
クリスチャンセン フレディ
モラー−ペデルセン ジェンス
タイル ハンセン ジェスパー
ベンドセン パー
クリステンセン ペーター
スロス ペーター
ビラドセン ペーター
カール ウッフェ
Original Assignee
マイクロソフト コーポレーション
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
Priority to US10/860,306 priority Critical
Priority to US10/860,306 priority patent/US7424485B2/en
Application filed by マイクロソフト コーポレーション filed Critical マイクロソフト コーポレーション
Publication of JP2005346719A publication Critical patent/JP2005346719A/en
Application granted granted Critical
Publication of JP5099982B2 publication Critical patent/JP5099982B2/en
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • 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

Description

本発明は、フォーム(form)の生成に関する。 The present invention relates to the generation of a form (form). より詳細には、本発明は、フォームユーザインターフェース(UI)を生成する方法および装置に関する。 More particularly, the present invention relates to a method and apparatus for generating a form user interface (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号を参照する。 The following co-pending, filed on the same day, commonly assigned patent application herein assignee, namely, both entirely incorporated herein by reference, filed June 3, 2004 "METHOD aND APPARATUS fOR GENERATING FORMS USING FORM TYPES entitled "US Patent application No. 10/860226, and filed on June 3, 2004, the" METHOD aND APPARATUS fOR MAPPING a DATA MODEL tO a USER INTERFACE MODEL "entitled Referring to U.S. Patent application No. 10/860225.

エンタープライズリソースプランニング(Enterprise Resource Planning、ERP)システムおよびカスタマ関係管理(Customer Relationship Management、CRM)システムなどの一般的なビジネスソフトウエア製品およびアプリケーションにおいて、多数のフォーム(forms or form)ユーザインターフェースが使用される。 Enterprise Resource Planning (Enterprise Resource Planning, ERP) systems and customer relationship management (Customer Relationship Management, CRM) in general business software products and applications such as the system, a number of forms (forms or form) a user interface is used . フォームは、データを見るかつ/またはデータを入力するためのウィンドウ、ダイアログ、ページ、または他のUI要素である。 Form, a window for entering and / or data looking at the data, dialog, a page or other UI elements,. ビジネスソフトウエアアプリケーションとともに使用される多数のフォームが、数千を超えることは珍しくない。 Numerous forms used in conjunction with the business software application, it is not uncommon for more than several thousand. 多数のフォームを開発することは、従来、ソフトウエア開発者(developer)の労働集約的な(labor−intensive)タスクであった。 To develop a large number of forms, conventional, it was a labor-intensive (labor-intensive) task of software developers (developer).

さらに、ERPシステム、CRMシステム、およびアプリケーションに基づく他のフォームなどのビジネスアプリケーションにおける複雑さが増大した。 Furthermore, ERP system, complexity in business applications such as other forms based on the CRM system, and applications increased. これは、以下を含む多数の要因によって引き起こされる。 This is caused by a number of factors, including the following. (1)増大された機能性のためである各システムにおいて増大する数のフォーム、(2)ウェブページ有用性に慣れたエンドユーザにより生じる増大する有用性に対するフォーカス(focus)、(3)異なるプラットフォーム、デバイス、および技術の増大する数、(4)ユーザ権利に応じて異なるフォームを結果として生じることができるセキュリティに対する増大するフォーカス、および(5)柔軟性、効率、およびパーソナリゼーション(personalization)に対する増大する要求。 (1) increased functionality number of forms to increase in each system is for, focus for utility in increasing caused by an end user accustomed to (2) the web page usability (focus), (3) different platforms , devices, and increasing the number of techniques increases for (4) a focus to increase to the security that can result in different forms depending on the user rights, and (5) flexibility, efficiency, and personalization (personalization) request. 同時に、システムがより早くかつより高い信頼性で開発を推し進められる。 At the same time, the system is promoted to develop faster and more reliable.

実生活ビジネスアプリケーションの一例として、結果として2000個に近いフォームを生じる、3000個に近いテーブルを有するMicrosoft Business Solutions−Axapta(登録商標)が考えられる。 As an example of a real life business applications, resulting form close to 2000 as is contemplated Microsoft Business Solutions-Axapta having a table close to 3000 (registered trademark). 各フォームは、実行時データが結び付けられる各テーブルのレイアウトとアライン(aligne)されなければならない。 Each form has to be the table layout and align the runtime data is bound (aligne). フォームおよび関連するフォーム論理は、テーブルレイアウトが変化したときはいつでも、およびビジネス論理が変化したとき、アラインされなければならない。 Form and the associated form logic, whenever the table layout has changed, and when the business logic changes, must be aligned. 複雑さに加えて、異なるクライアントプラットフォーム技術の数が増大する。 In addition to the complexity, the number of different client platform technology increases. 従来のWindows UIは、今やウェブブラウザ(Web Browser)によって達成される。 Traditional Windows UI is now achieved by a web browser (Web Browser). 近い将来において、携帯情報端末(PDA)、携帯電話、および他のUI技術が、複雑さに加わるであろう。 In the near future, a personal digital assistant (PDA), cellular phones, and other UI technologies will join the complexity.

インターネットは、アプリケーションをどのように使用するかを学ぶために14日間のコースを必要としないことを、エンドユーザに教えた。 The Internet is, that you do not need a course of 14 days in order to learn how to use the application, taught to the end user. エンドユーザは、アプリケーションがタスクを介してそれらをガイドすることを期待し、かつエンドユーザは、アプリケーションがアピールを見せることを期待する。 End users expect applications to guide them through the task, and the end-user expects the application show appeal. より多くのユーザ役割(role)が、ビジネスアプリケーションを介して示される情報技術に曝されるので、フォームが、各ユーザの必要性、および各役割が達成すべきタスクの情報を反映することへの要求が増大している。 More user roles (role) is so exposed to information technology represented through the business application, the form, the needs of each user, and to be each role to reflect the information of the task to be achieved demand is increasing. 概してユーザ経験に対する要求は増大している。 In general request for the user experience is increasing.

一般に、ユーザ経験と開発者の経験は反対方向に働く。 In general, developers of experience and user experience works in the opposite direction. 良好なユーザ経験は、アプリケーション開発者が作成しかつ維持することをより長くする。 Good user experience, the longer that the application developers and maintain created. 優れたユーザ経験を有するビジョンと、同時により高い開発者生産性をサポートすることは、両立しないように思われることがある。 Excellent and vision with user experience was, able to support the high developer productivity than simultaneously, it may appear to be incompatible. これは、ビジネスアプリケーションに関するフォーム生成の領域において特に真実である。 This is particularly true in the area of ​​foam generation related business applications.

情報を呈するアプリケーションは、非常に様々な能力(ユーザのデスクトップで動作するリッチクライアント(rich client)から、ユーザのブラウザで動作するウェブクライアントへ、ポケットデジタルアシスタンス(Pocket Digital assistant)、電話技術に基づくデバイス、およびスピーチインターフェースまでに及ぶ)のプラットフォームに可能な限りリッチな経験を、それらのユーザに提供しなければならない。 Applications that exhibit the information is based on from a very wide range of ability (rich client (rich client that runs on the desktop of the user), to the web client running in the user's browser, Pocket Digital Assistance (Pocket Digital assistant), in telephone technology device , and a rich experience as much as possible to the platform of speech extends to up to interface), it must be provided to those users. ビジネスアーキテクト(architect)は、顧客に関する問題を解決するためにビジネスエンジニアリングにおける知識を使用する。 Business Architect (architect) is, to use the knowledge in business engineering in order to solve the problem for the customer. このビジネスアーキテクトは、コンピュータプログラム開発者ではなく、プログラム開発者の複雑性から保護されなければならない。 This business architect, rather than a computer program developer, must be protected from the complexity of the program developers.

本発明は、1つまたは複数の上述の問題に対する解決方法を提供し、かつ/または従来技術に対して他の利点を提供する。 The present invention provides a solution to one or more of the above-mentioned problems, and / or provides other advantages over the prior art.

アプリケーション/ビジネスモデル(データモデルまたは問題ドメインモデル(problem domain model)とも呼ばれる)を表すために、モデルドリブン(model driven)フォームユーザインターフェースを生成する方法、コンピュータ可読媒体、およびシステムが提供される。 To represent application / business model (data model or problem domain model (problem domain model) also called), a method of generating a model-driven (model driven) forms a user interface, computer readable media, and systems are provided. この方法は、アプリケーションモデルを表すフォームユーザインターフェースを生成する論理フォーム(logical form)に適用するために、複数の異なる論理フォームタイプのどれかを選択することを含む。 The method to apply for a logical form (logical form) that produces a form user interface to represent the application model includes selecting one of a plurality of different logical form types. この方法は、第1のマップを提供することをも含む。 The method also includes providing a first map. ディスプレイターゲットから独立した論理フォーム(display target independent logical form)は、アプリケーションモデル、選択されたフォームタイプ、および第1のマップを使用して生成される。 Independent logical form from the display target (display target independent logical form), the application model is generated using the selected form type and the first map. 本発明の実施形態において、第1のマップは、いくつかの実施形態において必須で定義された機能または態様を有することができるが、第1のマップは、宣言マップ(declarative map)である。 In an embodiment of the present invention, the first map can have a mandatory defined functions or aspects in some embodiments, the first map is a declaration map (declarative map).

第1のマップを使用するディスプレイターゲットから独立した論理フォームの生成は、ディスプレイターゲットから独立した論理フォームにおけるディスプレイターゲットから独立した論理制御に、アプリケーションモデルの適切なデータのタイプをマッピングすることを含む。 Generation of logical form that is independent of the display target using the first map includes a logic control that is independent from the display target in independent logical form from the display target to map the appropriate type of data application model. いくつかの実施形態において、第1のマップは、ディスプレイターゲットから独立した論理フォームを生成するために使用されるマッピングエンジン(mapping engine)に対して外側である。 In some embodiments, the first map is outwardly with respect to the mapping engine used to generate an independent logical form from the display target (mapping engine).

いくつかの実施形態において、宣言で適用される挙動(behavior)は、ディスプレイターゲットから独立した論理フォームに機能性を追加する。 In some embodiments, the behavior (behavior) applied in declaration adds functionality to independent logical form from the display target. 宣言で適用される挙動は、ディスプレイターゲットから独立した論理フォームに付けられ、フォームにおけるイベントによってアクティベートされる。 Behavior applied in declaration, given in a separate logical form from the display target, are activated by events in the form. 宣言挙動は、論理制御の値および特性に応じて、他の制御に特性を設定する論理のパターンとすることができる。 Declaration behavior may be a logical pattern in accordance with the value and characteristics of the logic control, set the properties for other control.

この方法は、第2のマップを使用する物理的フォームに論理フォームをマッピングするステップをさらに含むことができる。 The method may further comprise the step of mapping the logical form to the physical form using the second map. 論理フォームは、複数の論理制御を含むが、物理的フォームは、ディスプレイターゲットへの論理フォームのレンダリング(rendering)で使用可能な複数の物理制御を有する。 Logical form may include a plurality of logical control, physical foam has a plurality of physical control available in the rendering of logical form on a display target (rendering). 第2のマップを使用する物理的フォームへの論理フォームのマッピングは、複数の利用可能な物理制御の1つへの論理フォームの各論理制御のマッピングを含む。 Logical form of mapping to the physical form using the second map includes mapping each logical control to one logical form of a plurality of available physical controls. 一般に、特定のディスプレイターゲットへの特定のフォームタイプの特定のレイアウトへのマッピングも含む。 In general, including mapping to a specific layout of a specific form type to a specific display target.

本発明の実施形態を特徴付ける他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することによって明らかになるであろう。 Other features and advantages which characterize embodiments of the present invention, reading of the following detailed description, will become apparent by a review of the associated drawings.

ビジネスアプリケーションおよび他の管理的なまたはフォームに基づくソフトウエアアプケーションにおいて常に複雑性が増大し、自動化に関する要求が増大する。 Always complexity increases in software Apu application based on business applications and other administrative or form, requests for automation increases. 本発明は、そのような自動化を容易にしかつ強化する方法を提供する。 The present invention provides a method for easily enhance life-and-death such automated. 本発明は、革新に対する自由度を損なうことなく、ユーザインターフェースを開発するための自動化されかつ宣言的な解決方法を使用する。 The present invention is to provide a degree of freedom for innovation, use automated and declarative solution for developing user interfaces.

本発明のシステムおよび方法を使用するアプリケーション開発者は、ビジネスモデルの開発に集中することができる。 Application developers using the system and method of the present invention can be concentrated on the development of the business model. ビジネスモデル(UML、ERダイアグラム、クラスなど)は、1つまたは複数のステップで、ディスプレイターゲットに特定の技術およびレイアウト(Windows、ウェブブラウザ、PDA、電話など)に再びマッピングされる技術に独立の中間フォーマットに後でマッピングされる。 Business models (UML, ER diagrams, class, etc.), one or more steps, specific technology and layout on a display target (Windows, web browser, PDA, phone, etc.) independent of the technique again mapped to an intermediate It is mapped later format. フレームワーク開発者は、次に、アプリケーション開発者に無関係に、ディスプレイターゲット特有の技術をリッチにし、それを開発したアプリケーション全体に適用することができる。 Framework developers, then regardless of the application developer, a unique display target technology rich, can be applied to the entire application developed it. 中間フォーマットは、フォーム毎に1回作成され、いくつかのディスプレイターゲットにわたって使用される。 Intermediate format is created once every form, it is used across several display target. マッピングは、マッピングエンジンによって使用されるオープンかつ変更可能なマップにより、本来柔軟である。 Mapping, by the open and changeable map used by the mapping engine is inherently flexible. 中間UIモデルおよび最終ディスプレイターゲットフォーマットもまたオープンかつ変更可能であり、独自のレベルの柔軟性を可能にする。 Intermediate UI model and the final display target format are also open and changeable, allowing flexibility in its own level. 以下の考察は、発明概念をさらに例示した。 The following discussion was further illustrate the invention concept.

図1は、本発明を実施することができる適切なコンピューティングシステム環境100の一例を示す。 Figure 1 shows an example of a suitable computing system environment 100 capable of implementing the present invention. コンピューティングシステム環境100は、適切なコンピューティング環境100の一例にすぎず、本発明の使用または機能性の範囲に関して任意の制限を示唆することを目的とするものではない。 The computing system environment 100 is only one example of a suitable computing environment 100, not intended to suggest any limitation as to the scope of use or functionality of the invention. コンピューティング環境100は、任意の従属性を有するものとして解釈されるべきではなく、また例示的なコンピューティング環境100に示される任意の1つの構成要素または構成要素の組み合わせに関連する要件であるとして解釈されるべきではない。 Computing environment 100 should not be interpreted as having any dependency, and as a requirement related to a combination of any one component or components illustrated in the exemplary computing environment 100 It should not be interpreted.

本発明は、多数の他の一般的な目的、または特定の目的のコンピューティングシステム環境または構成で動作する。 The present invention is operational with numerous other general purpose or computing system environments or configurations particular purpose. 本発明での使用に適切とすることができる良く知られているコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、任意の上述のシステムまたはデバイスを含む分散コンピューティング環境などを含むが、それらに限定されない。 Examples of the present invention in a well known computing systems which may be suitable for use, environmental, and / or configurations include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor based systems, set top boxes, programmable consumer electronics, network PC, a mini computer, mainframe computers, and the like distributed computing environments that include any of the above systems or devices, without limitation.

本発明は、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で述べることができる。 The present invention, such as program modules, being executed by a computer, may be described in the general context of computer-executable instructions. 一般に、プログラムモジュールは、特定のタスクを実行しまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。 Generally, program modules implement that perform particular tasks or implement particular abstract data types include routines, programs, objects, components, data structures. 本発明は、タスクが、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散コンピューティング環境で実行することもできる。 The present invention, tasks can be performed in a distributed computing environment that is performed by remote processing devices that are linked through a communications network. 分散コンピューティング環境において、プログラムモジュールは、メモリストレージデバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方に位置することができる。 In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.

図1を参照して、本発明を実施するための例示的なシステムは、コンピュータ110の形態での一般的な目的のコンピューティングデバイスを含む。 Referring to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. コンピュータ110の構成要素は、処理装置120、システムメモリ130、システムメモリを含む様々なシステム構成要素を処理装置120に結合するシステムバス121を含むが、それらに限定されない。 Components of computer 110 includes a processing unit 120, a system memory 130, including a system bus 121 that couples various system components to the processing unit 120 including the system memory, but are not limited to. システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および任意の様々なバスアーキテクチャを使用するローカルバスを含む、任意のいくつかのバス構造のタイプとすることができる。 The system bus 121, memory bus or memory controller, a peripheral bus, and any local bus using a variety of bus architectures may be of a type any of several bus structures. 一例として、限定されずに、このようなアーキテクチャはISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスを含む。 As an example, without limitation, such architectures include ISA (Industry Standard Architecture) bus, MCA (Micro Channel Architecture) bus, EISA (Enhanced ISA) bus, VESA (Video Electronics Standards Association) local bus, and as a Mezzanine bus including a PCI (Peripheral Component Interconnect) bus, which is also known.

コンピュータ110は、一般に、様々なコンピュータ可読媒体を含む。 Computer 110 typically includes a variety of computer readable media. コンピュータ可読媒体は、コンピュータ110によってアクセスすることができる任意の使用可能な媒体とすることができ、揮発性および不揮発性媒体の両方、取り外し可能および固定媒体の両方を含む。 Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. 一例として限定されず、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。 Not limited by way of example, computer readable media may comprise computer storage media and communication media. コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法または技術で実施される、揮発性および不揮発性媒体の両方、取り外し可能および固定媒体の両方を含む。 Computer storage media includes instructions, data structures, program modules or other implemented in any method or technology for storage of information such as data, both volatile and nonvolatile media, removable and It includes both fixed media. コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用することができ、コンピュータ110によってアクセスすることができる任意の他の媒体を含むが、それらに限定されない。 Computer storage media, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage device or the desired information can be used to store, or any other medium that can be accessed by the computer 110, but are not limited to. 通信媒体は、一般的に、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの変調されたデータ信号において実施し、任意の情報送達媒体を含む。 Communication media typically includes computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, any information delivery media. 用語「変調されたデータ信号」は、信号に情報を符号化するように、その特性の1つまたは複数が設定または変更された信号を意味する。 The term "modulated data signal", in such a manner as to encode information in the signal, means one or more set or changed signal of its characteristics. 例示として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、RF、赤外線、および他の無線媒体などの無線媒体を含むが、それらに限定されない。 As illustrated, communication media includes wired media such as a wired network or direct-wired connection, and acoustic, RF, and wireless media such as infrared, and other wireless media, are not limited thereto. 上述の任意の組み合わせは、また、コンピュータ可読媒体の範囲内に含まれるべきである。 Any combination of the above should also be included within the scope of computer readable media.

システムメモリ130は、読取専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。 The system memory 130 includes read only memory (ROM) 131 and random access memory of volatile and / or nonvolatile memory such forms as (RAM) 132 computer storage media. 起動時などコンピュータ110内の要素間で情報を転送することを助ける基本的ルーチンを含む、基本入出力システム133(BIOS)は、一般にROM131内に格納される。 Containing the basic routines that help to transfer information between elements, such as during start-up the computer 110, the basic input output system 133 (BIOS), are typically stored in ROM 131. RAM132は、一般に、処理装置120によって即時アクセス可能であり、かつ/または処理装置120によって現在処理されているデータおよび/またはプログラムモジュールを含む。 RAM132 generally includes the processor 120 that are immediately accessible to and / or by the processing device 120 data and / or program modules that are currently being processed. 例示として、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示すが、それらに限定されない。 As illustrated, Figure 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137, but are not limited to. アプリケーションプログラムの特定のグループは、ビジネスアプリケーションと呼ばれる。 A particular group of application program is referred to as a business application. これらは、総勘定元帳、在庫、給与、顧客、販売、購買、財務報告、およびビジネスに関して関係がある任意の他のデータの取り扱いを含むが、それらに限定されない企業の管理を目標とする。 These are, general ledger, inventory, payroll, customer, sales, purchasing, financial reporting, and any other of the handling of data related with respect to the business, to target but not limited to corporate management to them.

コンピュータ110は、他の取り外し可能な/固定の、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。 Computer 110, other removable / fixed, volatile / nonvolatile computer storage media. 単に例示として、図1は、固定不揮発性磁気媒体から読み出しまたは固定不揮発性磁気媒体へ書き込むハードディスクドライブ141、取り外し可能な不揮発性磁気ディスク152から読み出しまたは取り外し可能な不揮発性磁気ディスク152へ書き込む磁気ディスクドライブ151、およびCDROMまたは他の光学媒体などの取り外し可能な不揮発性光学ディスク156から読み出しまたは取り外し可能な不揮発性光学ディスク156へ書き込む光学ディスクドライブ155を示す。 As merely illustrative, Figure 1, a magnetic disk to write the fixed non-volatile magnetic media to the hard disk drive 141 reads a removable, nonvolatile magnetic disk 152, or a removable, nonvolatile magnetic disk 152 to write to the read or fixed nonvolatile magnetic media drive 151, and an optical disk drive 155 that writes a removable, nonvolatile optical disk 156 such as a CDROM or other optical media read or to a removable, nonvolatile optical disk 156. 例示のオペレーティング環境で使用することができる他の取り外し可能な/固定の揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含むが、それらに限定されない。 Other removable / non-removable, volatile / nonvolatile computer storage media that can be used in the exemplary operating environment include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM including, such as, but not limited to them. ハードディスクドライブ141は、一般的に、インターフェース140などの固定メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光学ディスクドライブ155は、一般に、インターフェース150などの取り外し可能なメモリインターフェースによってシステムバス121に接続される。 The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 is typically the system by a removable memory interface, such as interface 150 It is connected to the bus 121.

上記で論じた、また図1に示されている、ドライブおよびそれらに結合されるコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、コンピュータ110に関する他のデータのストレージを提供する。 Discussed above, also shown in Figure 1, drives and computer storage media coupled thereto provides computer readable instructions, data structures, program modules, the storage of other data relating to the computer 110. 例えば、図1において、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示される。 For example, in FIG. 1, a hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じとすることも、異なるものとすることもできることに留意されたい。 These components include an operating system 134, application programs 135, also be the same as the other program modules 136, and program data 137 Note that it is also be different. オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、それらが最低異なるコピーであることを示すために、本明細書で異なる番号が与えられている。 Operating system 144, application programs 145, other program modules 146, and program data 147, in order to indicate that they are the lowest different copies are given different numbers herein.

ユーザは、キーボード162、マイクロフォン163、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス161などの入力デバイスを介して、コマンドおよび情報をコンピュータ110に入力することができる。 User, a keyboard 162, a microphone 163, and a mouse, via the input device such as a pointing device 161, such as a trackball or touch pad, may enter commands and information into the computer 110. 他の入力デバイス(図示せず)は、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含むことができる。 Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. これらおよび他の入力デバイスは、システムバスに結合されるユーザ入力インターフェース160を介して処理装置120にしばしば接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続することができる。 These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, a parallel port, game port, or other interfaces, such as Universal Serial Bus (USB), and it can be connected by a bus structure. 入力デバイスは、データを作成し、修正し、および削除するために使用される。 Input devices are used to create a data, modify, and delete. 入力デバイスは、本明細書におけるアプリケーションプログラムおよび特定の機能を制御(開始および停止)するためにも使用することができる。 Input devices may also be used to control the application program and specific features herein (start and stop). 機能は、フォームを開き(示し)かつフォームを閉じることを含む。 Functions include closing the open the form (shown) and form. モニタ191または他のタイプのディスプレイデバイスは、ビデオインターフェース190などのインターフェースを介して、システムバス121にも接続される。 A monitor 191 or other type of display device, via an interface 190 is also connected to the system bus 121. モニタに加えて、コンピュータは、スピーカ197およびプリンタ196など、出力周辺インターフェース195を介して接続することができる他の周辺出力デバイスを含むこともできる。 In addition to the monitor, computers may also include other peripheral output devices which may be such as speakers 197 and printer 196, through an output peripheral interface 195 connects. モニタまたは他のディスプレイデバイスは、フォームを示す(レンダリングする)ために使用される。 Monitor or other display device is used to indicate a form (rendering).

コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。 The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 180. リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、一般に、コンピュータ110に関して上述された多くのまたは全ての要素を含む。 The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. 図1に示される論理接続は、ローカルエリアネットワーク(LAN)171、およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。 The logical connections depicted in Figure 1 include a local area network (LAN) 171 and a wide area network (WAN) 173,, it may also include other networks. そのようなネットワーク環境は、オフィス、エンタープライズワイドコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。 Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

LANネットワーク環境で使用されるとき、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。 When used in a LAN networking environment, the computer 110 is connected to the LAN171 through a network interface or adapter 170. WANネットワーク環境で使用されるとき、コンピュータ110は、一般に、インターネットなどのWAN173にわたって通信を確立するためのモデム172または他の手段を含む。 When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over WAN173, such as the Internet. 内部または外部であり得るモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。 The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160 or other appropriate mechanism. ネットワーク環境において、コンピュータ110に関して示されたプログラムモジュールまたはその部分は、リモートメモリストレージデバイスに格納することができる。 In a networked environment, program modules or portions thereof depicted relative to the computer 110, may be stored in the remote memory storage device. 限定しない例示として、図1は、リモートコンピュータ180に存在するリモートアプリケーションプログラム185を示す。 Illustrative non-limiting, Figure 1 illustrates remote application programs 185 that exist on the remote computer 180. 示されているネットワーク接続は例示であり、コンピュータ間の通信リンクを確立するための他の手段を使用することができることは理解されよう。 The indicated network connections are exemplary and it will be understood that it is possible to use other means of establishing a communications link between the computers.

図2は、代替の例示的なコンピューティング環境であるモバイルデバイス200のブロック図である。 Figure 2 is a block diagram of a mobile device 200 which is an alternative exemplary computing environment. モバイルデバイス200は、マイクロプロセッサ202、メモリ204、入出力(I/O)コンポーネント206、およびリモートコンピュータまたは他のモバイルデバイスと通信するための通信インターフェース208を含む。 Mobile device 200 includes a microprocessor 202, memory 204, input-output (I / O) component 206 communication interface 208 for and communicating with remote computers or other mobile devices. 一実施形態において、後述されるコンポーネントは、適切なバス210にわたって互いに通信のために結合される。 In one embodiment, the components described below is coupled for communication with one another over a suitable bus 210.

メモリ204は、モバイルデバイス200に対する一般的な電力がシャットダウンされたとき、メモリ204内に格納された情報が失われないように、バッテリバックアップモジュール(図示せず)を有するランダムアクセスメモリ(RAM)などの不揮発性電子メモリとして実装される。 Memory 204, when the general power is shut down for the mobile device 200, as information stored in the memory 204 is not lost, a random access memory (RAM) with a battery backup module (not shown) such as It is implemented as non-volatile electronic memory. メモリ204の一部は、好ましくはプログラム実行のためにアドレス指定可能なメモリとして割り当てられ、一方、メモリ204の他の部分は、ディスクドライブのストレージをシミュレートするなど、ストレージのために使用されることが好ましい。 Some memory 204, allocated preferably as addressable memory for program execution, while another portion of memory 204, such as to simulate a disk drive storage, is used for storage it is preferable.

メモリ204は、オペレーティングシステム212、アプリケーションプログラム214、ならびにオブジェクトストア216を含む。 Memory 204 includes an operating system 212, application programs 214 as well as an object store 216,. 動作中、オペレーティングシステム212は、好ましくは、メモリ204からプロセッサ202によって実行される。 During operation, operating system 212 is preferably executed by processor 202 from memory 204.. 好ましい一実施形態において、オペレーティングシステム212は、Microsoft Corporationから利用可能な市販のWINDOWS(登録商標)CEブランドオペレーティングシステムである。 In one preferred embodiment, the operating system 212 is a commercially available WINDOWS (R) CE brand operating system available from Microsoft Corporation. オペレーティングシステム212は、好ましくはモバイルデバイス用に設計され、一組のエクスポーズされたアプリケーションプログラミングインターフェースおよびメソッドを介して、アプリケーション214によって利用することができるデータベース機能を実装する。 Operating system 212 is preferably designed for mobile devices, via an application programming interfaces and methods that are a set of exposed, and implements database features that can be utilized by applications 214. オブジェクトストア216内のオブジェクトは、エクスポーズされたアプリケーションプログラミングインターフェースおよびメソッドに対する呼出しに少なくとも部分的に応答して、アプリケーション214およびオペレーティングシステム212によって維持される。 The objects in object store 216, at least partially in response to calls to the exposed application programming interfaces and methods, are maintained by applications 214 and operating system 212.

通信インターフェース208は、モバイルデバイス200が情報を送信しかつ受信することを可能にする多数のデバイスおよび技術を表す。 Communication interface 208 represents numerous devices and technologies that allow mobile device 200 to send and receive information. デバイスは、二、三の例をあげれば、有線および無線モデム、衛星受信器、およびブロードキャストチューナを含む。 The device includes two, to name a few examples, wired and wireless modems, satellite receivers, and broadcast tuners. モバイルデバイス200は、間でデータを交換するためにコンピュータに直接接続することもできる。 Mobile device 200 can also be directly connected to a computer to exchange data between. そのような場合、通信インターフェース208は、赤外線受信器またはシリアルあるいはパラレル通信接続とすることができ、それら全ては、ストリーミング情報を転送することができる。 In such cases, communication interface 208 can be an infrared receiver or a serial or parallel communication connection, all of which can transfer streaming information.

入出力コンポーネント206は、タッチセンシティブスクリーン、ボタン、ローラ、およびマイクロフォンなどの様々な入力デバイス、ならびにオーディオジェネレータ、振動デバイス、およびディスプレイを含む様々な出力デバイスを含む。 Output component 206, a touch-sensitive screen, buttons, rollers, and various input devices and audio generator, such as a microphone, a vibrating device, and a variety of output devices including a display. 上で列挙されたデバイスは、例示であり、モバイルデバイス200に必ずしも全て存在する必要はない。 Listed devices above are illustrative and not necessarily all present in the mobile device 200. さらに、他の入出力デバイスが、モバイルデバイス200に取り付けられ、またはモバイルデバイス200とともに見出される可能性がある。 In addition, other input and output devices attached to the mobile device 200, or may be found with mobile device 200.

層状にされ(layered)かつマッピングされたUIアーキテクチャおよび方法 上述のように、情報を示すアプリケーションは、非常に様々な能力のプラットフォーム(例えばディスプレイターゲット)で、可能な限りリッチな経験をユーザに提供しなければならない。 As is layered (layered) and mapped UI architecture and method described above, the application indicating the information is the very different capabilities platform (e.g., a display target) to provide a rich experience to the user as possible There must be. これらのプラットフォームは、ユーザのデスクトップ上で実行するリッチなクライアントから、ユーザのブラウザで動作するウェブクライアントへ、PDAへ、電話技術に基づくデバイスへ、さらにはスピーチインターフェースに及ぶ。 These platforms, from rich clients running on the user's desktop, the web client running in the user's browser, to PDA, to devices based on telephone technology, further extends to speech interface. 他のプラットフォームも可能である。 Other platforms are also possible. 本発明の実施形態によれば、当該プラットフォーム上でネーティブ(native)制御に、どのようにデータタイプをマッピングするかを規範的に定義するスキーマが用いられる。 According to an embodiment of the present invention, the native (native) control on the platform, schema used how to normative define how to map the data type.

ビジネスアーキテクトは、顧客に関する問題を解決するためにビジネスエンジニアリングでの知識を使用する。 Business architects, to use their knowledge in business engineering in order to solve the problem for the customer. しかしながら、このビジネスアーキテクトは、一般にコンピュータプログラム開発者ではなく、理想的にはプログラム開発の複雑性から保護される。 However, the business architect is generally not a computer program developer, is ideally protected from the complexity of the program development. 本発明は、ビジネスアーキテクト(ユーザ)が、アプリケーションのビジネス論理に焦点を合わすが、どのようにデータが、所定のプラットフォーム上に存在するかに焦点を合わせないことを可能にする方法および装置を提供する。 The present invention is a business architect (user), match the focus on the business logic of the application, how the data is a method and apparatus that can not focus on or present on a given platform provide. 提示された発明は、アプリケーション開発者が、ビジネスのモデルに基づき、複数のディスプレイターゲットを目標にし、かつ各ディスプレイターゲットの技術的能力を利用するユーザインターフェースを導き出すことを可能にする。 Presented invention, application developers, based on the model of the business, and the plurality of display target to the target, and makes it possible to derive a user interface that utilizes the technical capability of each display target.

これは、開発者が、「正しい」抽象レベルを有する層に対する知的な労力に焦点を合わせることを可能にする、層状にされたUI定義によって達成される。 This developer makes it possible to focus on intellectual effort to the layer having the "right" level of abstraction is achieved by the UI definitions in layers. パターンは、各抽象化レベルで捕捉されかつ再使用される。 Pattern is captured at each level of abstraction and are reused. 抽象化のより高いレベルからより多くの特定のレベルへのマップは、マッピングプロセスにおけるパターンを捕らえるが、アプリケーション開発者が、結果を微細に調整することも可能にする。 Map from a higher level of abstraction to more specific level, but capture the pattern in the mapping process, the application developer, also makes it possible to adjust the results fine. 本発明は、制御、論理フォームタイプ、および挙動にしたがって、ターゲットの特定の物理モデルを表示するビジネスモデルをマッピングするために、これらのマップを使用する。 The present invention controls, logical form types, and according to behavior, to map the business model to display specific physical model of the target, the use of these maps.

本発明の方法において、ビジネスモデルがマスタである。 In the method of the present invention, the business model is the master. ビジネスモデルに行われる知的作業は、保存され、かつユーザインターフェースを生成することに基づくように使用される。 Intelligent work done in the business model is stored, and used to be based on generating a user interface. モデルは、Unified Modeling Language(UML)、enterprise resource(ER)ダイアグラム、または任意の他のグラフィカルまたは非グラフィカルモデリング言語で記述することができる。 The model can be described by the Unified Modeling Language (UML), enterprise resource (ER) diagram or any other graphical or non-graphical modeling language. ビジネスモデルは、従来のオブジェクト指向プログラム、関連データベース、または他のフォーマットに見出すこともできる。 Business model, conventional object-oriented programs, can also be found in the related database or other formats. 以下に記載されるように、本発明のいくつかの例示的な実施形態において、ビジネスモデルは、プロパティを有するエンティティのクラス階層である。 As described below, in some exemplary embodiments of the present invention, a business model is a class hierarchy of entities having a property.

本発明の実施形態において、ビジネスモデルは、ディスプレイターゲットから独立したユーザインターフェースの中間モデルにマッピングされる。 In an embodiment of the present invention, a business model is mapped to an intermediate model of the user interface which is independent from the display target. UIモデルは、最終ディスプレイターゲットについてどんな技術知識をも必要とすることなしに、アプリケーション開発者がそれを見てかつ修正することを可能にする高い抽象化レベルで記述される。 UI model, without also requiring any technical knowledge for the final display target, are described at a higher level of abstraction that allows application developers to look at it and fix. コードは、全てのディスプレイターゲットに関して作用するUIモデルに追加することができる。 Code may be added to the UI model acting for all display targets. UIモデルにおけるパターンが捕捉され、それらは再使用することができ、結果として同種のUIを生じる。 Pattern is captured in the UI model, they can be reused, resulting in the same type of UI as the result. UIモデルを記述するために使用されるビルディングブロックは、拡張することもできる。 Building blocks used to describe the UI model can also be extended.

以下により詳細に記載されるように、本発明のいくつかの実施形態において、エンティティは、論理制御を有する論理フォームを含む「論理UI」と呼ばれるUIモデルにマッピングされる。 As described in more detail below, in some embodiments of the present invention, the entity is mapped to the UI model called "logical UI" including logical form having logic control. エンティティおよび特性は、設計時に、それぞれ論理フォームおよび論理制御にマッピングされる。 Entities and properties at design time, is mapped to the logical forms and logical controls, respectively. 実行時において、論理フォームおよび論理制御データは、エンティティおよび特性に結び付けられる。 During execution, the logical forms and logical control data is tied to the entities and properties. フォームにおけるパターンは、フォームタイプと呼ばれる。 Pattern in the form is referred to as a form type. フォームおよび制御は、コアクライアントマッピングエンジンによって使用されるが、コアクライアントマッピングエンジンの一部ではない。 Forms and control is used by the core client mapping engine, not part of the core client mapping engine. コアクライアントは、UIクライアントのディスプレイターゲットの独立した部分である。 Core client is an independent part of the UI client displays the target. 本発明の実施形態において、論理制御およびフォームタイプのリストは、拡張することができる。 In an embodiment of the present invention, logic control and form type of list may be extended. 本発明のこれらの態様のさらなる考察は、また以下に提供される。 A further discussion of these aspects of the invention also are provided below.

本発明のいくつかの実施形態において、UIモデルは、アクティブサーバページ言語(ASP.NET)、無線マークアップ言語(WML)、ハイパーテキストマークアップ言語(HTML)などのディスプレイターゲットに特定のマークアップ言語にマッピングされる。 In some embodiments of the present invention, UI model, active server pages language (ASP.NET), Wireless Markup Language (WML), hypertext mark-up language (HTML) specific markup language to display targets such as It is mapped to. UIモデルは、他のディスプレイ技術(例えば、Win32、WinForms、PocketPC)にマッピングすることができる。 UI model, other display technologies (e.g., Win32, WinForms, PocketPC) may be mapped to. 本発明の1つの特定の例示的な実施形態において、論理的なフォームは、ウェブクライアントディスプレイターゲット、WinFormsクライアントディスプレイターゲットなどにマッピングされ、新たなディスプレイターゲットが動的に追加することができる。 In one particular exemplary embodiment of the present invention, a logical form, web client display targets are mapped like WinForms client display target can be a new display target is dynamically added.

本発明の実施形態によれば、マッピングは、オープンでありかつ変更可能な宣言マップに基づく。 According to an embodiment of the present invention, the mapping is based on an open and and and modifiable declaration map. UIにおけるパターンは、マップにおいて捕捉される。 Pattern in UI is captured in the map. マップは、結果として高いレベルの柔軟性を生じるいくつかの条件に基づいて行うことができる。 Map may be based on several conditions that allow high level of flexibility as a result. 異なるモデルは、それらがマッピングされた後、(コードを介することを含み)手動で修正することができる。 Different models, after they have been mapped, can be modified manually (includes going through the code). これは、最終レベルの柔軟性を開発者に与える。 This gives the flexibility of the final level to developers. マップの動的な性質は、制御などの新たなUI要素の開発および使用を可能にする。 The dynamic nature of the map allows the development and use of new UI elements such as control. 新たな制御は、新たな制御に特性をマッピングすることによって、フォームで簡単に使用可能にされる。 New control by mapping the properties to the new control, is easily available in the form. 新たな制御は、所定の契約に従わなければならず、この実施形態において、新たな制御は、特定のベースクラスを引き継がなければならない。 New control must comply with a predetermined contract, in this embodiment, the new control should take over certain base classes. 実行時に、論理フォームはエンティティに結合され、ディスプレイターゲットは論理層に結合される。 At runtime, the logic form is bound to an entity, the display target is coupled to the logical layer. これは、ディスプレイターゲット間に共通の全ての機能性(セキュリティ、パーソナリゼーション、イントラフォーム論理)が、論理層で1回実装されかつ多くの例で使用されることを可能にする。 This is all common functionality between the display targets (security, personalization, intra foam logic) are, to be used once implemented and many examples in the logical layer.

フォームタイプ 本発明は、ビジネスおよび他のアプリケーションのためのフォームユーザインターフェース(フォーム)を構築する新規な方法を提供するために、論理フォームおよび論理フォームタイプの概念を使用する。 Form types present invention to provide a novel method of constructing a business and forms a user interface for other applications (Form), use the concept of logical forms and logical form types. 本発明の例示的実施形態または実装において、論理フォームおよび論理フォームタイプが使用されるが、論理層の使用は、全ての実施形態で必要ではない。 In the exemplary embodiment or implementation of the present invention, the logical form and logical form types are used, the use of the logical layer is not required in all embodiments. したがって、本発明は、一般的なフォームを形成するためにフォームタイプの使用に適用される。 Accordingly, the present invention is applied to the use of form types to form a common form. 現在のビジネスアプリケーションは、一般に、しばしばわずかな数のカテゴリに入りまたは同様のパターンに従う多数のフォームからなる。 Current business applications generally consists of a number of forms in accordance with incoming or similar pattern often a small number of categories. カテゴリの数は、一般に2から20であるが、より多く定義することができる。 The number of categories is generally from 2 20, it is possible to more defined. 本発明のフォームタイプは、設計時および実行時の両方でビジネスまたはアプリケーションモデルに保存しおよび作用することによって、モデルドリブンユーザインターフェースを容易にする。 Form types of the present invention, by saving the business or application model and act both design-time and run-time, to facilitate model-driven user interface. これは、ソフトウエア開発者に抽象化の高いレベルを提供する。 This provides a high level of abstraction to software developers. さらに、本発明によるフォームタイプの使用は、全てのフォームは、わずかな個別のタイプになるので、より多くの均一なフォームユーザインターフェースの1組の再使用することを確実にし(1つの層が多数回使用される)、より容易に維持されるフォームを確実にする(タイプのレイアウトは、フォームを変更することなく変更することができ、異なるタイプは、フォームを変更することなく適用することができる)。 Furthermore, the use of form types according to the present invention, all forms, since the small individual types, to ensure that a set of re-use of the more uniform foam user interface (one layer number times used), to ensure a form that is more easily maintained (type layout, can be changed without changing the form, different types can be applied without changing the form ). 本発明は、アプリケーション開発者が、アプリケーションのルック・アンド・フィールの複数のディスプレイターゲットにわたる完全な制御を有し、アプリケーション内のどのようにナビゲーションが行われるかを確実にする。 The present invention, application developers have complete control over a plurality of display target look and feel of the application, to ensure how navigation is performed in the application. ディスプレイターゲットの例は、現在および将来のオペレーティングシステムの各複数のタイプ、ならびに多くの利用可能なまたは将来の各モバイルデバイスを含む。 Examples of the display target includes current and the multiple types of future operating systems, as well as many of the available or each mobile device in the future. 他の例として、特定のオペレーティングシステム上の各レンダリング技術が、ディスプレイターゲットにもなり得る。 As another example, the rendering technique on a particular operating system, can also be a display target.

本発明の概念を使用して、論理フォームは、論理フォームをディスプレイターゲット自体に独立にする、論理制御に独立のディスプレイターゲットを含む。 Using the concepts of the present invention, logical form is independently logical form on a display target itself, including separate display target logic control. 論理フォームは、論理フォームが従わなければならないパターンを定義する論理フォームタイプを参照する。 Logical form refers to a logical form type that defines a pattern to be followed logical form. 論理フォームによって参照される論理フォームタイプは、論理フォームの外観およびコンテンツを迅速に確立するために、複数の異なる論理フォームタイプから選択することができる。 Logical form type that is referenced by a logical form may be to quickly establish the appearance and content of the logical form is selected from a plurality of different logical form types. 本発明の実施形態において、論理フォームタイプは、ビジネスまたは他のアプリケーションモデルと組み合わされたとき、結果として論理フォームの生成を生じるモデルである。 In an embodiment of the present invention, the logical form type, when combined with business or other application model is a model that results in the production of logical form as a result.

論理フォームタイプは、フォームが、ビジネスモデルを論理的モデルに(アプリケーション開発者を介して自動的にまたは手動で)、かつこれから物理的モデルへマッピングするマップ(またはルール)に従わなければならないスキーマ(フォームの構造を記述し、どの要素をそれが含むことができるなど)を明らかにする。 Logical form type, form, must follow the business model to the logical model (automatically or manually via the application developers), and maps to the future physical model map (or rules) schema ( It describes the structure of a form, reveal, etc.) it contains any elements. さらに、フォームタイプは、(論理的)フォームの動的挙動を修正するコードを含むことができる。 Furthermore, form type may include a code for modifying the dynamic behavior of the (logical) form. それゆえ、フォームタイプは、スタイルおよびレイアウト情報、およびディスプレイターゲットの他のタイプの特定情報を明らかにする。 Therefore, form type, style and layout information, and reveal other types of specific information of the display target. しかしながら、それらは、論理フォームおよびそのコンテンツに関するルールも特定するので、それらは、より大きな役割を果たす。 However, they, because also specific rules for logical form and its content, they play a greater role. 本発明のフォームタイプの特定の態様は、以下のように導入される。 Certain aspects of form types of the present invention is introduced as follows.

異なるフォームタイプ 上述のように、本発明の一般的な使用において、複数の異なるフォームタイプは、フォームの形成においてアプリケーション開発者による使用のために提供される。 Different form types as described above, in a typical use of the present invention, a plurality of different form types are provided for use by application developers in the formation of foam. 例えば、1つの例示的な実施形態において、フォームタイプは、Dialogフォームタイプ、CardまたはCardViewフォームタイプ、ListViewフォームタイプ、EntityOverviewフォームタイプ、およびActivityCenterフォームタイプを含むことができる。 For example, in one exemplary embodiment, form types can include Dialog form type, Card or CardView form type, ListView form type, EntityOverview form type, and ActivityCenter form type. これらのフォームタイプは、一例におけるビジネスアプリケーションにおいて使用されるフォームの典型的な異なるカテゴリに対応する。 These form types correspond to typical different categories of forms used in business applications in one example. したがって、複数のフォームタイプを提供することは、アプリケーション開発者が、従来技術のビジネスアプリケーションを作るフォーム全てを構築することを可能にする。 Therefore, providing a plurality of form type, application developers, make it possible to build all form to make a prior art of business applications. 当業者によって理解されるように、これらの特定のフォームタイプは、単に一例であり、本発明は、任意の特定のフォームタイプまたは任意の特定の数のフォームタイプに限定されない。 As will be appreciated by those skilled in the art, these particular form type is merely an example, the present invention is not limited to any particular form type or any form type specific number.

フォームタイプレイアウト レイアウト情報のコンテンツおよび構造は、各フォームタイプに関して異なることがある。 Content and structure of the form type layout layout information may be different for each form type. さらに、レイアウト情報は、ディスプレイターゲットに特定であり得る。 Moreover, the layout information may be specific to the display target. 例えば、ActivityCenterフォームタイプに関するレイアウト情報は、特定のオペレーティングシステムプラットフォーム上でフォームをディスプレイするためのHTML(すなわち、World Wide Webすなわちインターネット)ディスプレイターゲットによって使用される、Themes/Skins/StylesおよびMaster Pageのためのサポートを有することができる。 For example, the layout information about ActivityCenter form type, HTML for displaying the form on a specific operating system platform (i.e., World Wide Web i.e. Internet) used by the display target, Themes / Skins / Styles and Master Page for it is possible to have the support. これは、異なるディスプレイターゲットを刷新し、かつ必要なだけ多くのフォームユーザインターフェースを微調整(tweak)するために、ビジネス開発者に自由を与える。 This differs revamped display targets, and as many forms user interface required to fine tune (tweak), gives a free business developer.

プラグ可能(pluggable)および拡張可能 フォームタイプは、独立ソフトウエアベンダ(Independent Software Vendor、ISV)が、それらを修正しまたは拡張することができ、新たなフォームタイプを作ることができるので、完全な柔軟性および拡張性を提供し、それによってアプリケーション全体に関するルック・アンド・フィールを変更する。 Pluggable (pluggable) and expandable form type, independent software vendors (Independent Software Vendor, ISV) is, they modify or can be extended, it is possible to create a new form type, full flexibility providing sex and extensibility, thereby changing the look and feel for the entire application.

さて図3−1および図3−2を参照すると、本発明の例示的な実施形態にしたがって、Cardフォームタイプを使用して作られた販売注文論理フォームの概略が示される。 Referring now to FIGS. 3-1 and FIG. 3-2, in accordance with an exemplary embodiment of the present invention, Sales Order logical form of outline made using Card form type is shown. この例において、販売注文論理フォームは、3つの異なる論理制御グループにまとめられる一組の論理制御を含む。 In this example, Sales Order logical form includes a set of logic control to be grouped into three different logic control group. 以下にさらに記載されるように、Cardフォームタイプは、どのようにかつどこで制御が、異なるディスプレイターゲットで物理的フォームに現れるかを定義する。 As described further below, Card form type, how and where control is to define whether appearing in physical form in different display targets. 図3−1および図3−2は、同じ情報を示し、図3−2は、論理フォームタイプと論理フォームとの間の関係および情報の起源と、論理フォームから物理的フォームの生成とを示す矢印を含む。 Figure 3-1 and Figure 3-2 shows the same information, Figure 3-2 shows the origin of the relationships and information between the logical form type and logical form, and generation of physical form from logical form including the arrow.

図3−1および図3−2は、フォームタイプ300を使用して生成されたフォームインスタンス(form instance)305を概略的に示す。 Figure 3-1 and Figure 3-2 shows a form instance (form instance) 305 generated using the form type 300 schematically. コアクライアント310で、フォームインスタンス305は、(フォームの概念モデルとして示される)論理フォーム306であり、フォームタイプ300は、論理フォームタイプ301である。 The core client 310, form instance 305 (shown as a form conceptual model) and logical form 306, form type 300 is a logical form type 301. ディスプレイターゲット320で、フォーム305は、論理フォーム306を使用し、かつ最終的には論理フォームタイプ301から作られたレンダリングされたフォーム370である。 In the display target 320, foam 305 uses the logical form 306, and ultimately a foam 370 rendered made from logical form type 301. レンダリングされたフォーム370は、1つの特定の実装であるが、多くの他の実装またはレンダリングを達成することができる。 Rendered form 370 is a one particular implementation, it is possible to achieve many other implementations or rendering. レンダリングされたフォーム370は、物理的フォームとして参照することもできる。 Rendered form 370 may also be referred to as a physical form.

フォームタイプ300は、2つの部分を含む。 Form type 300 includes two parts. すなわち、何が、フォームタイプを使用する特定のフォームに含まれるべきかを定義するスキーマ330、およびどのようにフォームが、特定のディスプレイターゲットにレンダリングされまたは引き出されるかを特定する制御を含むレイアウト331である。 That is, what is the layout schema 330 defines what should be included in a particular form that uses form type, and how foam comprises a control specifying either to or withdrawn rendered in a specific display target 331 it is. フォームタイプは、コードビハインド(code−behind)クラスを含むこともできる。 Form type may also include a code-behind (code-behind) class. フォームタイプによって使用することができる異なるレイアウトを有することによって、フォームタイプを使用して作られるフォームは、異なるディスプレイターゲット(例えば、携帯電話ディスプレイ、携帯情報端末ディスプレイ、パーソナルコンピュータモニタなど)に合わせることができる。 By having different layouts can be used by form type, form made using the form type, different display targets (e.g., cellular phone displays, personal digital assistant display, a personal computer monitor, etc.) to match the it can. 複数のフォームで使用されるべき捕捉されたパターンを示すフォームタイプ300で、複数のフォームインスタンス305は、フォームタイプ300を使用して生成することができる。 In form type 300 showing a captured pattern to be used in multiple forms, multiple form instance 305 may be generated using the form type 300.

この例に関して、販売注文エンティティまたはオブジェクトモデル(すなわち、ビジネスまたはアプリケーションモデル)に関してフォームを作るために、開発者が行うことができるプロセスを考慮する。 For this example, consider a sales order entity or object model (i.e., business or application model) to create a form with respect to the process that allows a developer carried. 第1に、開発者は、どの種類のフォームを開発者が選択すべきかを知るために見ることができる。 First, the developer, can be seen in order to know whether to developers to choose which type of form. 図3−1および図3−2に325で示されるように「Card」フォームタイプを選択することは、図3−2に矢印326によって示されるように、Cardスキーマ330を呼び出しまたは指定する。 Figure 3-1 and as indicated at 325 in Figure 3-2 "Card" to select a form type, as indicated by arrows 326 in Figure 3-2, to call or specify Card schema 330.

開発者は、特定のフォームタイプおよび関連スキーマを特定するときに、開発者は、いくつかの実施形態において、ユーザのビジネスからのメタデータ(meta data)またはフィールド値にポピュレーティング(populating)する他のモデルで、スキーマによって示される情報またはフィールドをフォームに含むように選択する。 Developers, when identifying a particular form type and associated schema, developers, in some embodiments, population rating (populating) the metadata (meta data) or field values ​​from the user's business other in the model, to select the information or fields indicated by the schema to include the form. 例えば、Cardフォームタイプ301(および選択されたCardスキーマ330)を選択することによって、論理フォーム306は、スキーマ330において定義されるコンテンツエリア335に対応するコンテンツエリア336を含む。 For example, by selecting the Card form type 301 (Card schema 330 and is selected), logical form 306 includes a content area 336 corresponding to the content area 335 defined in the schema 330. コンテンツエリア335に対応するコンテンツエリア336の起源は、図3−2で矢印337によって示される。 The origin of the content area 336 corresponding to the content area 335, indicated by arrow 337 in Figure 3-2. 同様に、Cardフォームタイプのスキーマ330は、UIパートエリア340、関連するエンティティUIパートエリア345、およびアクションエリア350を含むため、論理フォーム306は、341、346、および351で示されるこれらエリアまたはフィールドを含む。 Similarly, the schema 330 of Card form type, to include a UI Part Area 340, related entities UI Part Area 345, and the action area 350, logical form 306, these areas or fields represented by 341,346, and 351 including. 再び、これらフィールドの起源は、矢印342、347、および352によって概略的に図示される。 Again, the origin of these fields are schematically illustrated by arrows 342,347, and 352.

上述したように、フォームが、どのように特定のディスプレイターゲットにレンダリングされまたは引き出されるべきかを特定する制御を含む、少なくとも1つのレイアウト331(通常は、ディスプレイターゲット毎に1つ)も含む。 As described above, the form, how contains certain rendered to the display target or control specifying should be drawn, at least one layout 331 (typically one per display target) including. 図3−1および図3−2に概略的に図示されるように、cardフォームタイプに関するレイアウトは、ディスプレイターゲット320が、コンテンツエリア339、UIパートエリア344、関連するエンティティUIパートエリア349、およびアクションエリア354を含むことをもたらす制御を含む。 As schematically illustrated in Figure 3-1 and Figure 3-2, layout for card form type, display target 320, content area 339, UI Part Area 344, related entities UI Part Area 349, and action including the control to bring in that it comprises an area 354. 矢印338、343、348、および353は、Cardスキーマにおけるそれらの対応するエリアに対する、cardレイアウトにおけるこれらのエリアの相関を図示する。 Arrows 338,343,348, and 353, for the area corresponding to those in Card schema, which depicts the correlation of these areas in the card layout. 選択された論理フォームタイプおよびアプリケーションモデルからのメタデータを使用して生成された論理フォーム306(この例では販売注文エンティティ)は、ディスプレイターゲット320上の物理的フォーム370としてレンダリングされる。 Logical form 306 generated using the metadata from the selected logical form type and application model (Sales Order entity in this example) is rendered as a physical form 370 on the display target 320. このプロセスは、矢印361および362を使用して図3−2に示される。 This process is shown in Figure 3-2 with the arrow 361 and 362.

モデルおよびマップ 多くの情報システムは、モデルを使用する。 Model and map a number of information systems, to use the model. モデルの例は、オブジェクトダイアグラム、拡張可能なマークアップ言語(XML)スキーマ、データベース定義、およびフォーム定義である。 Examples of model objects diagram, Extensible Markup Language (XML) schema, database definition, and form definition. モデルは、特性、組成、および関連をそれぞれ含む、しばしば一組のオブジェクトとして識別される。 Model, characteristics, compositions, and related, respectively, are often identified as a set of objects. ビジネスUIにおいて、フォームをレンダリングするために使用される制御階層は、Windows制御ツリー、およびハイパーテキストマークアップ言語(HTML)オブジェクトモデルなどのモデルとして考えることができる。 In business UI, control hierarchy that is used to render a form, can be considered as a model, such as Windows control tree, and hypertext mark-up language (HTML) object model. また、ユニファイドモデリング言語(UML)などのシンタックスは、モデル(例えばクラス定義)を定義するために使用することができる。 The syntax of such unified modeling language (UML), can be used to define a model (e.g., class definition). 本発明の方法を図示するために使用される例のフレームワークにおいて、アプリケーションは、ビジネスエンティティを使用してモデル化される。 In the example of the framework that is used to illustrate the method of the present invention, the application is modeled using the business entity. したがって、ビジネスモデルは、エンティティと呼ばれるこれらのビジネスオブジェクト、エンティティ間の関係、およびエンティティの特性からなる。 Therefore, business model, these business objects called entities, relationships between entities, and a characteristic of the entity. 単純なモデル380の一例に関して、図4−1に示されるエンティティ381、382、383、および384を参照されたい。 In reference to a single example of a simple model 380, see entities 381, 382, ​​383, and 384 shown in Figure 4-1. エンティティは、特性(例えば、エンティティ381の特性385を参照)、および他のエンティティとの関係(例えば、エンティティ381および384間の関係386を参照)を有する。 Entity has a characteristic (e.g., see the characteristics 385 of entity 381) (see e.g., relationship 386 between entities 381 and 384) relationship with, and other entities.

モデルが他のモデルに変換されるとき、マップは、明示的にまたは時々暗示的に使用される。 When the model is converted into other models, the map is explicitly or sometimes implicitly used. マップは、モデル間の関係を記述する。 Map describes the relationship between the models. いくつかの例は、XMLへXMLをマッピングするような拡張可能なスタイルシート言語変換(XSLT)、特定のデバイスサーフィスにオブジェクトモデルをレンダリングするために使用される制御、1つのアプリケーションから他のアプリケーションへのオーダのマッピング(異なるアプリケーションにおけるオーダは、異なるフォーマットを有することがあるので)、およびクラス定義へUMLをマッピングするコンピュータ支援ソフトウエアエンジニアリング(CASE)ツールを含む。 Some examples are extensible style sheet language transformation to map the XML to XML (XSLT), the control that is used to render the object model to a particular device Surface, from one application to another the order of the mapping (the order in different applications, because it may have a different format), and a computer-aided software engineering (CASE) tools to map the UML to the class definition.

現在のビジネスアプリケーションにおいて、マップは、マッピングが、入力として特定のオブジェクトを取りかつ他のオブジェクトに戻るコード内の「switch」ステートメントとしてコード化される、オブジェクトアットアタイム(object−at−a−time)マッピングを使用して主としてプログラムされる。 In today's business applications, map, mapping, taking a particular object as input and coded as "switch" statement in the code back to another object, objects at-a-time (object-at-a-time ) using the mapping is mainly program. したがって、従来のビジネスアプリケーションは、一般に、一般的なプログラミング言語のコードで書かれた必須のマップを使用する。 Therefore, traditional business applications, in general, to use the mandatory map written in a general programming language code. 本発明にしたがってモデルアットアタイム(model−at−a−time)を使用して、生産性を桁単位で改善することができることが提示される。 Using a model-at-a-time in accordance with the present invention (model-at-a-time), it is presented that the productivity can be improved by digit basis. 生産性の利益に加えて、マップを使用して他のモデルに対するモデルのマッピングとして、UI生成の問題がわかる精神的な利益がある。 In addition to productivity gains, as a model for mapping to other models using maps, there is a mental benefits seen problems UI generation. さらに、他の利点は、本発明の宣言的に定義されたマップに見出されるより高いアブストラクションレベルである。 Furthermore, another advantage is the high level of abstraction than found in declaratively defined maps of the present invention. 本発明は、マップが明示されかつ宣言されることを可能にする。 The present invention allows the map is explicitly and declarative. 本発明において、マップは、宣言的または必須である(コードにおけるマッピングより優先できる事実による)ことができる。 In the present invention, the map can be declarative or essential (due to the fact that you can override the mapping in the code).

マップの明示的な性質は、マップが、マッピングまたはレンダリングするために使用される生成エンジンに対して外部にあり、かつマップが、それ自体マップであることを意味する。 Explicit nature of the maps, maps, is external with respect to generation engine that is used for mapping or rendering, and map means that it is per se map. つまり、マップの明示的な性質は、それらが、制御およびフォームから別個に定義されることを意味する。 That is, the explicit nature of the maps, means that they are separately defined from the control and form. 従来、このマッピングは、コントロールコードおよびフォームコードの内部で暗示的に行われていた。 Conventionally, this mapping has been implicitly performed by the internal control code and form code.

マップの宣言的な性質は、マップが、必須ではない(一般的にプログラミング言語でコード化される)ことを意味する。 Declarative nature of the map, the map, which means that it is not required (which are generally coded in a programming language). 本明細書で使用されるように、句「宣言的に定義される」は、マップが、従来の場合のようにコードだけで定義されるのでなく、マップを容易に変更することを可能にするフォーマットで定義されることを意味する。 As used herein, the phrase "is defined declaratively" is map, only rather than being defined codes as in the prior art, it makes it possible to easily change the map meaning that it is defined in the format. 宣言的に定義されたフォーマットの例は、限定はしないが、XMLドキュメント、コンマ分離された(comma−separated)ファイル、BizTalkマップ(データスキーマの他へのマッピング)、およびMBFエンティティマップ(データスキーマへのオブジェクトモデルのマッピング)を含む。 Examples of declaratively defined format include, but are not limited to, XML documents, are comma separated (comma-separated) file, BizTalk map (mapping to another data schema), and MBF entity map (the data schema including the object model of the mapping). 広範な様々な宣言的なマッピングフォーマットは、本発明にしたがって使用することができ、選択されるフォーマットは、特に重要ではない。 Wide variety of declarative mapping formats can be used according to the invention, the format chosen is not particularly critical. 宣言マップが制限された一組の可能性を有することが重要であり、したがって、マップを定義するために、直感的な(intuitive)設計ツールを提供することをより容易にする。 It is important to have a set of potentially declaration map is limited, therefore, to define the map, making it easier to provide an intuitive (intuitive) design tool. 対照的に、必須なマップ(コードを使用する)は、プログラミング言語を介してほぼ制限されない可能性を有し、したがって、直感的な設計ツールを作ることは非常に困難である。 In contrast, essential map (using code) has the potential to not be substantially restricted through the programming language, therefore, it is very difficult to make intuitive design tool. 代わりに、プログラミングスキルは、それを作るために必要である。 Instead, programming skills are necessary in order to make it.

宣言マップを使用する本発明の実施形態において、マップは、必ずしも宣言的である必要はないことに留意されたい。 In an embodiment of the present invention using declarative map, the map should always be noted that it is not necessarily a declarative. 宣言的に定義されるには複雑過ぎるマップを作ることが必要な場合には、そうでなければ宣言的であるマップに必須マッピングの態様を含むことができる。 If necessary to make a map too complicated to be defined declaratively may include aspects of the essential mapped to the map is a declarative otherwise. 例えば、複雑な機能を作成し、マップに含むことができる。 For example, you can create a complex function, it may be included in the map. 一例は、送り状アドレス(Invoice Address)および輸送アドレス(Shipping Address)が、ほぼ同じであれば、送り状アドレスだけがフォームに示されることであり得る。 One example is the invoice address (Invoice Address) and transport address (the Shipping Address) is, if approximately the same may be to only invoice address is shown in the form. 2つのアドレスがほぼ同じであるかどうかを決定するアルゴリズムは、マップ内で使用される暗示的に定義された関数とすることができる。 Algorithm two addresses to determine whether it is about the same, may be implicitly defined function used in the map.

本発明は、分散されたサービス指向のアーキテクチャに基づくビジネスアプリケーションの開発および展開に適切なプログラミングアブストラクションおよび規定されたアーキテクチャを提供する。 The present invention provides a suitable programming abstraction and defined architecture development and deployment of business applications based on the architecture of the distributed service-oriented. フレームワークは、それらアブストラクションに書かれたビジネス論理を基本になる技術への変化から隔離し、ビジネスアプリケーション開発チームの重要なアセット(asset)を保存する。 Framework, the business logic written in their abstractions isolated from changes in technology to become a base, to save an important asset of business application development team (asset). 本発明は、コード生成を有する設計時モデルから、実行時においてビジネスモデルを解釈することができる、真の「モデルアウェアアプリケーションサービス(model aware application service)」へ移動する、モデルドリブン開発への解決方法へ拡張する。 The present invention is, from the design-time model with a code generator, it is possible to interpret the business model during execution moves true to "model-aware application services (model aware application service)", the solution to the model-driven development to expand to.

マップに基づくモデルドリブンUI Model-driven UI based on the map
本発明の実施形態で構築された、ビジネスアプリケーションのためのUIを生成するとき、アプリケーションモデルを有することは重要な特徴である。 It built with an embodiment of the present invention, when generating the UI for business applications, to have the application model is an important feature. UIの大部分は、ビジネス論理のモデルおよびマップに基づいてだけで生成することができる。 Most of the UI can be generated only on the basis of the model and map the business logic. アプリケーション開発者が、新規なエンティティをモデル化したとき、UIは、これから生じる。 When an application developer, modeled the new entity, UI will now occur. これは、UIモデル390へマッピングされる(388で示される)ビジネスモデル380を示す図4−2に概略的に示される。 This is schematically illustrated in Figure 4-2 showing a business model 380 (shown in 388) to be mapped to the UI model 390. 矢印388は、マッピングプロセス、ならびにマッピングプロセスを行うためにマップを使用する適切に構成されたマッピングエンジンを示す。 Arrow 388 illustrates the mapping process, and a mapping engine that is suitably configured to use the map in order to perform the mapping process.

このマッピングは、従来のコード化技術を使用して達成することができるが、マッピングは、ある種の挑戦課題に対処すべきなら単純ではない。 This mapping can be accomplished using conventional coding techniques, the mapping is not simple if to be addressed in some challenges. 挑戦課題は、新たな特性のタイプがエンティティで作られかつ使用されるとき、コード化された変換は、どのように新たなタイプを取り扱うかを知らないことがあり、したがって変換は、修正されかつ再編集されなければならないことである。 Challenge when the type of the new property is created by the entity and are used, coded transform may not know how to handle new types, therefore conversion is modified and it is that it does not have to be re-edited. 他の挑戦課題は、変換に含まれる場合だけ価値がある、新たに開発された制御を取り扱うことであり、これもやはり、変換を再プログラミングすることになる。 Other challenge is worth only if included in the conversion, it is to handle the newly developed control, which also still results in reprogramming conversion. 本発明のマッピング技術は、これら挑戦課題に対処することを可能にする。 Mapping technique of the present invention makes it possible to address these challenges. 実行時においてUIの任意の修正(コードを介して)は、マッピングを考慮することもできることに留意されたい。 Any modification of the UI at the time of execution (via the code), it should be noted that it is also possible to consider a mapping. 本発明において使用されるプラットフォームは、層状にされたUIモデルを明らかにし、かつ1つの層から他の層にモデルを変換するためにマップを使用する。 Platform used in the present invention is to clarify the UI models in layers, and use the map to convert a model from one layer to another. これは、より詳細に以下に記載される。 This is described in more detail below.

本発明の方法および装置は、どのように所定のプラットフォームでユーザにビジネス情報を示すかを計算する方法を提供する。 The methods and apparatus of the present invention provides a method of calculating how show business information to a user at a given platform. 本発明は、まさにアブストラクトモデル(対話するためにビジネスエンティティを記述する)から具体的なモデル(どのデバイスに固有の制御が、ビジネス情報をレンダリングするために使用されるべきであるかを正確に特定する)へ作用する、他のモデルへのモデルのマッピングに基づく。 The present invention is exactly specific control to the specific model (which device from (describing business entities to interact) abstract model, or a pinpoint should be used to render the business information It acts to be), based on a model of the mapping to other models. 一般に、このマッピングは、任意の数のステップを含むことができる。 In general, the mapping may include any number of steps.

例えば、2つの明示的でありかつ宣言的なマッピングステップを使用して、マスタモデル405から専門(specialized)モデル425へのマッピングのプロセスを示す、図5−1に示されるブロック図400を考慮する。 For example, using two explicit and and declarative mapping step, shows the process of mapping from the master model 405 to the expert (Specialized) model 425, to consider the block diagram 400 shown in Figure 5-1 . マスタモデル405(すなわち、「モデルA」)は、例えばデータベース、テーブル、エンティティ、オブジェクト、またはユーザに固有の問題ドメインにおける他のタイプのモデルとすることができる。 Master model 405 (i.e., "Model A") may be, for example, a database, a table, an entity, object or other types of models in specific issues domain user. マスタモデル405は、マップ410を使用する411で示されるマッピングステップ(すなわち「A−Bマップ」)を用いて、中間モデル415(すなわち「モデルB」)にマッピングされる。 The master model 405, using the mapping step illustrated at 411 using the map 410 (i.e., "A-B map"), is mapped to an intermediate model 415 (i.e., "Model B"). 中間モデル415は、以下により詳細に記載されるように、論理制御を有するディスプレイターゲットから独立したモデルとすることができる。 Intermediate model 415, as will be described in more detail below, may be an independent model from display targets having logic control. 中間モデル415は、第2のマップ420を使用する421で示されるマッピングステップ(すなわち「B−Cマップ」)を用いて、専門モデル425(すなわち「モデルC」)に次にマッピングされる。 Intermediate model 415, using the mapping step illustrated at 421 using the second map 420 (i.e., "B-C map"), is then mapped to the expert model 425 (i.e., "Model C"). 専門モデル425は、以下により詳細に記載されるように、物理制御を有するディスプレイターゲットに固有のモデルとすることができる。 Professional model 425, as will be described in more detail below, may be a unique model to display target having a physical control. マッピングステップ411および421を示すために使用される矢印は、また、マッピングステップを実施するためにマップ410および420を利用するために構成されたマッピングエンジンを表す。 Arrow is used to indicate the mapping step 411 and 421, also representative of the mapping engine configured to use the map 410 and 420 to implement the mapping step.

本発明のいくつかの実施形態によれば、ユーザがクライアントプラットフォームでビジネス情報と対話することをどのように可能にするかを決定することを含むマッピングスキーマは、以下に記載されかつ図5−2のブロック図450に概略的に示されるような少なくとも3つのステップを含む。 According to some embodiments of the present invention, the mapping schema, and Figure 5-2 are described below includes determining how a user can to to interact with business information on the client platform the block diagram 450 comprising at least three steps as shown schematically. 初期のモデル455(図5−1に示されるマスタモデル405も参照)は、ユーザが対話しなければならないビジネスエンティティに関する情報を含む。 Early models 455 (see also the master model 405 shown in FIG. 5-1) includes information about the business entity to which the user must interact. このアプリケーションモデルの各データは、特定のタイプである。 Each data of the application model is a specific type. 第1のステップは、示すデータの所定のタイプ(ストリング、整数、金銭上の値を示す10進法タイプ、他の値を含むアドレスなど)を用いるための論理制御を決定することを含む。 The first step involves determining the logic control for using a predetermined type of data (string, integer, monetary values ​​decimal type indicating the address, etc containing other values) shown.

所与のタイプに関する使用のための論理制御は、モデル455におけるデータタイプからモデル465における論理制御へのマッピングを使用して決定される。 Logic control for use in connection with a given type is determined using the mapping to the logic control in the model 465 from the data type in the model 455. マッピングプロセスは、461で示され、マップ460(すなわち、「論理制御マップに対するデータタイプ」)を使用する。 Mapping process is shown in 461, the map 460 (i.e., "data type for logical control map") is used. 論理制御は、いくつかの有用な特性を有する。 Logic control has several useful properties. それらは、任意の特定のディスプレイターゲットに対する従属性からは完全に自由であるが、物理制御に特定の挙動を管理する特性を保持する。 Although they are completely free from dependence for any particular display target, it retains the characteristics of managing a particular behavior physical control. 論理制御のルックアップは、階層タイプを考慮して実行される。 Lookup logic control is executed in consideration of the hierarchy type. 論理制御が、特定のタイプの特性を要約するために特に適していないなら、サーチは、論理制御が扱うタイプを見出すまでベースタイプで継続する。 Logic control, if not particularly suited to summarize a particular type of property, the search continues in the base type to find the type handled by the logic control.

論理制御が、示されるデータのタイプから識別されると、所定のプラットフォームにレンダリングを実際に実行するために使用される物理制御は、見出さなければならない。 Logic control, as identified from the type of the data shown, the physical control that is used to actually perform the rendering on a predetermined platform, must be found. これらの物理制御は、時々「アダプタ」と呼ばれる。 These physical control is sometimes referred to as the "adapter". これは、論理制御およびディスプレイターゲットから物理制御を生み出す、他のマッピングを使用して行われる。 This creates a physical control from the logic controller and display targets is performed using the other mapping. マッピングプロセスは、471に示され、論理制御モデル465から物理制御モデル475を生成するためにマップ470(すなわち「物理制御に対する論理制御マップ(logical control to physical control map)」)を使用する。 Mapping process is shown in 471, using the map 470 to generate a physical control model 475 from the logic controller model 465 (i.e., "logic control map for the physical control (logical control to physical control map)").

クライアントが、ユーザのディスプレイターゲットで動作するとき、物理制御は、ユーザと対話するために使用されるネーティブ制御のインスタンスを作るために使用される。 Client, when operating in the user's display target, physical control is used to create an instance of the native control that is used to interact with the user. これは、物理制御から一組のネーティブ制御を生じる第3のマッピングによって行われる。 This is done by a third mapping resulting in a set of native control from the physical control. 例えば、物理制御がアドレス制御であった場合、物理制御は、ストリート、町、国に関するネーティブ制御にマッピングされる。 For example, if the physical control is an address control, a physical control, street, town, are mapped to the native control related countries. マッピングプロセスは、481に示され、物理制御モデル475からネーティブ制御モデル485を生成するためにマップ480(すなわち「ネーティブ制御への物理制御マップ(physical control to native control map)」)を使用する。 Mapping process is shown in 481, using the map 480 from the physical control model 475 to generate the native control model 485 (i.e., "physical control map to native control (physical control to native control map)"). いくつかの実施形態において、これは、必須のマップであるが、必ずしもそうである必要はない。 In some embodiments, this is a mandatory map, but this is not necessarily so. 再び、矢印461、471、および481は、また、マップ460、470、および480によって特定されるように、マッピング機能を実行するために使用されるマッピングエンジンを示す。 Again, arrows 461, 471, and 481, also as specified by the map 460, 470, and 480 show a mapping engine used to perform the mapping function.

上述のマッピングは、所望の結果を達成するために他のマッピングで論じることができる。 The mapping described above, can be discussed in other mapping to achieve the desired result. 他の要因は、レンダリングされるフォームのタイプ(カードまたはリストビュー)、ユーザルール(恐らくユーザに提供される情報を制限する)を含む。 Other factors being rendered type of form (card or list view), including the user rules (possibly limit the information to be provided to the user). アブストラクトモデルから具体的モデルへ達するプロセスは、純粋に規定され(含まれるマッピングを記述することによって)、柔軟性は、3つのマッピングを変更できることによってもたらされる。 Process from abstract model reaches the specific model is purely defined (by describing the mappings contained), flexibility is provided by being able to change the three mapping.

他の例として、図5−3は、顧客の名前および識別ナンバ(ID)から、ブラウザにこの情報をレンダリングするために使用されるHTMLを得るためのマッピングプロセスを示すブロック図500を示す。 As another example, Figure 5-3, the customer's name and identification number (ID), a block diagram 500 illustrating a mapping process for obtaining HTML that is used to render this information to the browser. マスタまたは初期のビジネスモデル505は、エンティティ(またはオブジェクト)、または特性として顧客の名前およびIDを有するエンティティのクラス(またはオブジェクトのクラス)である。 Master or initial business model 505 is an entity (or object), or an entity class with the name and ID of the customer as a characteristic (or class of objects). モデル505の「名前」および「ID」特性は、それぞれ「ストリング」および「ナンバ」のタイプである。 "Name" and "ID" characteristics of the model 505 is a type of each "string" and "number". モデル505は、規定のマップ510を使用してモデル515の論理制御層にマッピングされる。 Model 505 is mapped to the logical control layer model 515 using map 510 provisions. マッピングプロセスは、511に示される。 Mapping process is shown in 511. この例において、データタイプ「ストリング」は、「TextBox」論理制御にマッピングされ、一方、データタイプ「ナンバ」は、「NumberBox」論理制御にマッピングされる。 In this example, the data type "String" is mapped to "TextBox" logic control, whereas the data type "number" is mapped to "NumberBox" logic control.

次に、論理制御モデル515は、マップ520を使用してHTMLモデル525にマッピングされる。 Next, the logical control model 515, using the map 520 is mapped to the HTML model 525. マッピングプロセスは、521で示される。 Mapping process is represented by 521. この例において、モデル525は、HTMLモデルのフォームにおける物理制御モデルである。 In this example, model 525 is a physical control model in the form of HTML model. したがって、マップ520は、モデル515の論理制御をモデル525におけるHTMLタグまたは要素にマッピングする。 Therefore, map 520 maps the logical control model 515 to HTML tags or elements in the model 525. HTMLモデル525は、次に、ブラウザにおけるモデル505からの情報をレンダリングするために使用される。 HTML model 525 is then used to render the information from the model 505 in the browser. 再び、マッピングステップ511および521を示すために使用される矢印は、また、マッピングプロセスを実施するためのマップ510および520を使用する適切に構成されたマッピングエンジンを表す。 Again, arrows are used to indicate the mapping step 511 and 521, also represents a suitably configured mapping engine that uses map 510 and 520 for carrying out the mapping process.

図5−4は、いくつかの異なる特性タイプを同一の最終制御にマッピングすることができ、したがって必要な制御の数は、特性タイプの数が増加するとき必ずしも増加しない、本発明の実施形態のさらなる態様を示す。 Figure 5-4 several different properties types can be mapped to the same final control, thus the number of control required, not necessarily increased when the number of character type is increased, embodiments of the present invention It shows a further embodiment. 図5のブロック図550に示されるように、異なるタイプの特性561を有するビジネスモデル560は、マップ555を使用するディスプレイターゲットモデル580にマッピングされる。 As shown in the block diagram 550 of FIG. 5, a business model 560 with a different type of property 561 it is mapped to a display target model 580 to use the map 555. 前述の例と同様に、モデル560は、論理制御571を有する論理層モデル570にマッピングされる。 As in the previous example, the model 560 is mapped to the logical layer model 570 having a logic control 571. マップ565を使用するマッピングエンジンおよびマッピングプロセスは、566で示される。 Mapping engine and mapping process using the map 565 is indicated by 566. マップ565は、論理制御(「ナンバ」および「ストリング」)に、モデル560の特性561のデータタイプ(「IDタイプ」、「ストリング」、および「フロート」)をマッピングする。 Map 565, the logic control ( "number" and "string"), the data type of the property 561 in the model 560 for mapping ( "ID type", "String", and "float"). この場合、「IDタイプ」および「フロート」の両方のデータタイプは、「ナンバ」の論理制御タイプをマッピングし、一方、「ストリング」のデータタイプは、「ストリング」の論理制御タイプにマッピングする。 In this case, the data type of both the "ID type" and "float" maps the logical control type of "number", while the data type of "string" is mapped to the logical control type of "string."

次に、論理層モデル570は、特定のディスプレイターゲットに特定の物理制御581を有するディスプレイターゲットモデル580にマッピングされる。 Next, the logical layer model 570 is mapped to a display target model 580 having a particular physical control 581 to a specific display target. モデル570は、576で示されるプロセスおよびマッピングエンジンで、マップ575を使用してモデル580にマッピングされる。 Model 570 is a process and mapping engine represented by 576, is mapped to the model 580 using map 575. マップ575は、モデル580の物理制御タイプ「TextBox」に、モデル570の論理制御タイプの「ナンバ」および「ストリング」をマッピングし、特定のモデルからいくつかの異なるタイプは、この場合も他のモデルに単一のタイプにマッピングすることができることを示す。 Map 575, a physical control type "TextBox" model 580, the logic control type of model 570 maps the "number" and "string", several different types of a particular model, also in this case the other model indicating that it can be mapped to a single type. 拡張によって、ビジネスモデルからの複数の異なる特性タイプは、同一の最終(例えば「物理」)制御にマッピングすることができる。 By extension, a plurality of different characteristic types from the business model can be mapped to the same final (e.g. "physical") control.

開発者経験 開発者が、存在するタイプからだけ構築される新たなエンティティを作るとき、デフォルトUIもマップを介して構築される。 Developers experienced developers, when creating a new entity to be built only from the type that exists, it is built default UI also through the map. デフォルトUIが、所望のユーザ経験を提供しない場合、開発者は、以下を選択することができる。 If the default UI does not provide the desired user experience, developers, it is possible to select the following.

・ 要件を反映するためのビジネスモデルの修正。 Modification of the business model to reflect the-requirements. 例えば、いくつかの実施形態において、特性のシーケンスのソートが誤っているなら、すなわちIDが前の名前で表示されるべきなら、エンティティを編集することができる。 For example, in some embodiments, if incorrect sorting of sequence characteristics, i.e. if to ID is displayed in front of the name, it is possible to edit the entities. 他の実施形態において、特性の順序付けは、外部「挙動」にある。 In other embodiments, the ordering of the properties is external "behavior". しかしながら、オーダされた特性をグループにまとめることは、エンティティに「追加する」ことができ、これは、そうするために使用することができる。 However, putting together the order properties in the group may be "add" to the entity, which can be used to do so. したがって、これらの実施形態において、最良のアプローチは、グループに分けることにおけるオーダを変更することになり得る。 Thus, in these embodiments, the best approach may be to change the order in divided into groups.

・ 生成された論理フォームモデルの修正。 And correction of the generated logical form model. 名前およびIDを切り替えることは、フォームにおいて行うこともできる。 To switch the name and ID it can also be carried out in form. ビジネス論理が、ビジネス論理における変更がフォームにおける変更を重ね書きするなど変更されるなら、これは、おそらくは後でいくつかの保守挑戦課題を示す。 Business logic, if changes in the business logic is changed such overwriting changes in form, which possibly show some maintenance challenges later. また、フォーム毎にビジネス論理を変更することが必要であり得る。 Further, it may be necessary to change the business logic for each form.

・ マップの修正。 And correction of the map. IDがナンバ制御にマッピングされるが、ストリング制御がより適切であるなら、マップは、変更を行うための権利の場所である。 Although ID is mapped to the number control, if the string control is more appropriate, the map is the location of the right to make changes.

より多くの従来のモデルの修正の代わりに、マップを変更することは多数の利点がある。 Instead of more traditional model modification, changing the map has a number of advantages. まず第1に、変更はより広い範囲を有することができる。 First, changes can have a wider range. 前述の例で使用されるマップエントリが変更されるなら、「IDタイプ」を使用する全てのエンティティは、自動的に更新する。 If map entry used in the previous example is modified, all the entities using "ID type" is automatically updated. これは、結果としてエンドユーザが利益を得るまさに一致するUIを生じる。 This results in a UI exactly matches the end-user to benefit as a result.

他の利点は、保守およびアプリケーションのさらなるバージョンを調べるときに明らかになる。 Other advantages will become apparent when examining additional versions of maintenance and application. モデルが生成される方法を変更するが、生成されたモデルを変更しないことにより、マスタモデルを更新することができ、以降従属するモデルは、不一致の任意のリスクなしに再生することができる。 Model to change the method to be generated, by not changing the generated model, can update the master model, the model dependent later can be reproduced without any risk of inconsistency. 全くフォームを再生しないことは、結果としてエンティティ間の不一致、およびそれらを見てかつ編集するために使用されるフォームを生じることができる。 Not at all play the foam can occur disagreement between entities as a result, and the form that is used to look and edit them. マップは、また大きな生成タスクをいくつかの小さな宣言マップエントリに分ける。 Map, also divide the large generation task into several smaller declaration map entry.

開発者が、「金銭」などの新たな特性タイプを作る場合、ただ1つのマップエントリだけが追加されるならUIが効率的に生成されるので、これは、ただちに使用することができる。 Developers, if you create a new property type, such as "money", because the UI if only a single map entry is added is efficiently generated, which can be used immediately. この例において、新たな「金銭」特性は、「ナンバ」制御にマッピングすることができる。 In this example, the new "money" characteristics may be mapped to a "number" control. 開発者は、また追加されたメタデータ情報を利用することを選択し、かつ「金銭」制御を作り、新たな制御に対する特性マップを持つこともできる。 Developers also choose to utilize additional metadata information, and create a "money" control, it is also possible to have a characteristic map for the new control. マッピング技術は、両方のシナリオを有効にする。 Mapping technology, to enable both scenarios.

マッピング言語 マッピングは、拡張可能である単純な宣言マッピング言語を使用する。 Mapping language mapping uses a simple declarative mapping language is extensible. マッピングは、入力として1つまたは複数のトークン(token)をとり、かつ出力として1つまたは複数のトークンを戻す。 Mapping takes one or more tokens (token) as input, and returns one or more tokens as output. 入力として特性タイプを考慮すれば、1つまたは複数の論理制御は、出力として特定することができる。 Considering the character type as input, one or more logical control can be specified as the output. ゼロとして出力を特定することも可能でなければならない。 It should be possible to specify the output as zero. 例えば、「IDタイプ」は、ユーザが編集または見ることができず、その場合、タイプが何にもマッピングされないコンピュータによって生成されたフィールドとすることができる。 For example, "ID type", a user can not edit or view, in which case, can be of the type is generated by what does not map the computer field. また、マッピングは、出力のパラメータを制御できる。 Also, the mapping can control the parameters of the output. 例えば、「ストリング」特性は、フォーム上の他のTextBoxに比べてより広いTextBoxを結果として生じることができる。 For example, "string" characteristics may result in broader TextBox than other TextBox on the form.

より前に対処されたスコーピング(scoping)の問題を取り扱うために、スコープ状態は、前述の例示的なフォームで、「ID制御」に対する「IDタイプ」マップが必要であるが、全ての他のフォームで、「ナンバ」制御が使用される。 To address the problem of earlier scoping that is addressed (scoping), the scope state, in the exemplary form of the above, for the "ID control" it is necessary "ID type" map, all other in form, "Namba" control is used. 他のパラメータは、ビジネスエンティティ、エンティティステレオタイプ(stereotype)、フォームタイプなどを含む、スコープとして使用することもできる。 Other parameters, business entity, Entity stereotype (stereotype), and the like form type, can be used as the scope. マップが実行されるべきであるとき、考慮することが有利である他の状態がある。 When a map is to be performed, there are other conditions it is advantageous to consider. 一例は、ペアレント(parent)制御である。 An example is the parent (parent) control. ペアレント制御がリストであるなら、エニュメレータ(enumerator)特性は、ラジオボタンではなく、ドロップダウン(drop−down)リストへのマップを選択することがある。 If the parent control is a list, the enumerator (enumerator) characteristics, rather than a radio button, there is possible to select a map to the drop-down (drop-down) list. 他の状態は、エニュメレータにおける可能な選択の数とすることができ、ラジオボタンは、2つまたは3つであれば使用することができるが、より多くの選択は、結果としてリストを生じることがあり得る。 Other conditions may be a number of selectable in enumerator, radio buttons, can be used as long as 2 or 3 in, the more selection may result list as a result of possible. この方法が作動しないと、マッピング言語は、初期の要件に比べて非常に複雑になり、マップのトップ上の他のアブストラクションレベルは、開発者がマップを理解することを必要とする。 If this does not work, the mapping language, very complicated as compared with the initial requirements, other abstraction level on top of the map requires the developer to understand the map. このパターンは、いくつかのツールが複雑性を隠すために実施される、拡張可能なスタイルシート(StyleSheet)言語変換(XSLT)で見ることができる。 This pattern, several tools are implemented to hide the complexity can be seen in the Extensible Stylesheet (StyleSheet) Language Transformations (XSLT).

論理フォーム−UIモデル ビジネス論理のモデルからUIモデルのマッピングのとき、論理層とも呼ばれるレイアウトに独立な層が挿入される。 When the logical form -UI model business logic model UI model mapping, independent layers are inserted into the layout, which is also called a logical layer. ビジネス論理のモデルが、ディスプレイターゲットに関わりなく最終的なUIにマッピングされ得ると考えられるなら、論理層は、単純な(straight forward)アブストラクションである。 Business logic models, if considered may be mapped to the final UI regardless of the display target, the logical layer is a simple (straight forward) abstraction. いくつかのメタデータは、ビジネスエンティティ自体など全てのディスプレイターゲットに関して共通であり、いくつかの部分は、特定のディスプレイターゲットに関して特定される。 Some metadata is common for all display targets such as business entity itself, some parts are identified with regard to specific display target. 論理層は、共通の部分である。 Logical layer is a common part.

図6は、フォームを作るために使用される設計時アクティビティおよび実行時アクティビティの概略図である。 Figure 6 is a schematic diagram of a design when activities and runtime activities that are used to make the foam. 設計時において、モデリングツール605は、前述のものなどのモデルまたはフォーム定義およびマップを作るために使用される。 At the time of design, modeling tool 605 is used to create a model or form definitions and maps, such as those described above. これらのフォーム定義およびマップは、メタデータデータベース610に格納することができる。 These form definition and map may be stored in the metadata database 610.

実行時において、モデルまたはフォームは、論理層モデル625にマッピングされる。 During execution, the model or form is mapped to the logical layer model 625. 論理層モデル625は、また、ビジネス論理620に適用されるデータベース615に格納される実行時データを使用して生成される。 Logical layer model 625 is also generated using the runtime data stored in the database 615 to be applied to the business logic 620. また、実行時において、論理層モデル625は、前述ようにディスプレイターゲットモデル630にマッピングされる。 Further, at the time of execution, the logical layer model 625 is mapped to a display target model 630 described above so.

フォームおよび制御を含む論理層は、ビジネス論理620とディスプレイターゲット630との間のブリッジ(bridge)である。 Logical layer containing the form and control is a bridge (bridge) between the business logic 620 and the display target 630. それは、限定されたレイアウトの知識および限定されたビジネス論理の知識を有する。 It has knowledge and limited business logic of knowledge of limited layout. 論理層は、ビジネスエンティティに基づきフォームのコンテンツを定義し、フォームをビジネスエンティティの実行時インスタンスに結合するデータなど、共通の実行時の問題を取り扱う。 Logical layer defines the content of the form based on the business entity, such as data binding form at runtime instance of the business entity handles a common runtime problems. さらに、論理層は、全てのディスプレイターゲットに共通のセキュリティを取り扱い、それは、各ディスプレイターゲットにメタデータを提供し、論理層は、入力妥当性を取り扱うことができる。 Furthermore, the logical layer, handling a common security to all of the display target, it provides metadata to each display target, the logical layer can handle input validity.

ビジネスアーキテクチャまたは開発者は、ドメインに特定のビジネス論理およびデータに焦点を合わせることができる。 Business architecture or developer can focus on specific business logic and data domain. 焦点がUIに移されるとき、レイアウト詳細、データ結合の問題、プラミング(plumbing)コード、入力妥当性、読み取りできない特性を隠すこと、エラー処理などは、論理層に見出されるアブストラクションの高いレベルに全て隠される。 When the focus is moved to the UI, layout details, data binding problem, plumbing (plumbing) code, the input validity, hiding characteristic which can not be read, such as error handling, hidden all abstraction high levels found in the logical layer It is. ドメインスペシャリストは、ユーザが見るために何が意味を成すかなど、UIのコンテンツに焦点を合わせることができ、特定のディスプレイターゲットおよびそれらの異なるレンダリング技術に関する広範囲にわたる知識を必要としない。 Domain specialists, etc. or form what is meant for the user to view, can focus on the contents of the UI, it does not require extensive knowledge about the specific display targets and their different rendering techniques.

上述のように、論理フォームまたは論理層モデルは、論理制御を使用して構築される。 As described above, logical form or logical layer model is constructed using the logical control. 新たな制御は、容易に追加することができ、論理層を非常に柔軟かつ拡張可能にする。 New control can be easily added, to a very flexible and extensible logical layer. 新たな制御が開発されたとき、それは、使用されるマップを変更することによって既存のフォームに単に追加される。 When a new control is developed, it is simply added to the existing form by altering the map to be used. 各ディスプレイターゲットは、新たな制御を実施する必要なく新たな機能性から利益を得るが、それが意味を成すなら、新たな制御を導入することができる。 Each display target, but benefit from without the need new functionality to implement new control, if it makes sense, it is possible to introduce a new control.

ディスプレイターゲット 論理フォームおよび制御は、ディスプレイターゲットによって使用される特定のレンダリング技術にマッピングされる。 Display target logical forms and controls are mapped to a particular rendering technique used by the display target. 他の図のように、これは、論理層モデルまたはフォーム705がいくつかの特定のディスプレイターゲットにマッピングされる図7に示される。 As in other figures, which is shown in Figure 7 where the logical layer model or form 705 is mapped to several specific display target. この特定の例において、ディスプレイターゲット710は、Windowsレンダリング技術を使用し、一方、ディスプレイターゲット715は、ウェブレンダリング技術を使用する。 In this particular example, the display target 710 uses Windows rendering techniques, whereas, the display target 715 uses a Web rendering techniques. ディスプレイターゲットは、フォームおよび制御のレンダリング、およびユーザ入力の取り扱いを含む全てのユーザ対話を担当する。 Display target is responsible form and control of rendering, and all of the user interaction, including the handling of user input. 各ディスプレイターゲットは、論理層における制御が何か意味のあるものにマッピングされるように、多数の制御を必要とする。 Each display target, as controlled in the logical layer are mapped to those of any sense, requiring a large number of control. すなわち、特性は、値のタイプと両立しなければならず、その値のタイプは、制御が取り扱うことができ、かつ制御が実際的な方法でその値をレンダリングすべきである。 That is, characteristics, must be compatible with the type of value, the type of the value may be controlled handled, and control is to render the value in a practical way. 換言すれば、マッピング技術がこれに有意な影響を有するとき、各ディスプレイターゲットで利用可能でなければならない特定の多数の制御は存在しない。 In other words, when the mapping technique has a significant effect on this particular number of control must be available at each display target is not present.

ディスプレイターゲットは、ユーザ対話を制御し、また本質的に対話パラダイムを制御する。 Display target controls user interaction, also controls the inherently interactive paradigm. ウェブページおよびWindows Formsウィンドウは、同じ論理フォームに基づき生成することができるが、それらが、チャッティ(chatty)対話ポリシーまたはチャンキー(chunky)ポストバックポリシーを使用かどうかは、ディスプレイターゲットによって当然決定される。 Web page and the Windows Forms window, which can be generated based on the same logical form, they are, whether using a chatty (chatty) dialogue policy or Chunky (chunky) postback policy, is of course determined by the display target . 各ディスプレイターゲットは、どれだけ多くのフォームがユーザに表示されるかを選択する。 Each display target is, just how many of the form to choose is displayed to the user. Windowsフォームは、タブウェブ上の情報を隠すことができ、一方、ウェブページは、一時に全ての情報を示すために選択することができる。 Windows Forms, can hide the information on the tab web, on the other hand, the web page can be selected in order to show all the information at a time. これらの決定は、ディスプレイターゲットが得る、論理フォーム、したがってまたフォームタイプに基づいて行われる。 These decisions, display target obtained, logical form and thus also takes place on the basis of the form type. 異なるディスプレイターゲットは、そのようなページング決定を行うための追加の情報を必要とし、同様に論理フォームおよび制御には、ディスプレイターゲットに特定の情報で注釈を付けることができる。 Different display targets requires additional information to make such a paging decision, the same logical form and control, can be annotated with specific information on the display target.

挙動−宣言フォーム論理 フォームが、コンテンツを定義する論理制御を構築するので、フォームに対してダイナミックスを追加する必要がまだある。 Behavior - Declaration Form logical form, since building a logical control to define the content, there is still a need to add dynamics for the form. これは、コードを使用して行うことができる。 This can be done using code. しかし、フォーム上にコードをマッピングすることは容易ではなく、したがって宣言的抽象レベルは必要である。 However, it is not easy to map code on the form, thus declarative abstraction level is required. 同時に、フォームに追加されるコードにおける多くのパターンが存在する。 At the same time, there are a number of patterns in the code that is added to the form. 例えば、他のフィールドが満たされるなら、フィールドを使用不可にするためのコードは、多くのフォームに見出される。 For example, if the other fields are filled, the code to disable a field is found in many forms. 「Cash」が、フォーム上の支払いタイプとして選択される場合、「クレジットカードナンバ」は、グレイにされまたはさらに隠される。 "Cash" is, if it is selected as the payment type on the form, "credit card number" is in gray or further hidden.

これらのパターンは、「挙動」と呼ばれる概念で捕捉される。 These patterns are captured in a concept called "behavior". 挙動は、宣言的にフォームに追加され、フォームにおけるイベントを介してアクティベートされる。 Behavior is added to declaratively form, it is activated through an event in a form. 挙動は、制御の値および特性に応じて、他の制御に特性を設定することができるが、挙動は、この使用に限定されない。 Behavior, depending on the value and characteristics of the control, it is possible to set the properties for other control behavior is not limited to this use. 挙動は、エンティティにおける制約または他のメタデータ特性に基づき主にマッピングされる。 Behavior is mainly mapped on the basis of constraints or other metadata properties in an entity. エンティティは、ビジネス論理を取り扱うことを担当し、挙動は、UI論理を担当する。 Entity is responsible for handling the business logic, behavior is responsible for UI logic. 換言すれば、挙動は、これが関心事の分離を妨げるので、任意のビジネス論理を実行すべきではない。 In other words, behavior, since this prevents the separation of concerns, should not be run any business logic.

層状にされたシステムおよび方法例 さて図8を参照して、上述の様々な概念(すなわち、論理フォームタイプ、UIマップ、制御、挙動など)を組み合わせて実施する、層状にされたシステムおよび方法の概略的な図示である。 Referring to example systems and methods now 8 are layered, the various concepts described above (i.e., logical form types, UI map, control, behavior, etc.) carried out in combination, the systems and methods in layers it is a schematic illustration. 図8に示されるように、システムまたは方法900は、ビジネスアプリケーションおよびコンピューティングシステム、コアクライアントマッピングエンジンまたはコンポーネント910、および1つまたは複数のディスプレイターゲット915を含むことができる、ビジネスフレームワーク905を使用して実施される。 As shown in FIG. 8, a system or method 900 may include business applications and computing systems, the core client mapping engine or component 910 and one or more display target 915, using a business framework 905 It is carried out. 例示の目的で、図8は、マップ920(マップ921および922を含む)、モデル925(アプリケーションまたはビジネスモデル926、論理フォームモデル927、および物理的モデル928を含む)、およびライブラリ930を示すためにセグメント化される。 For illustrative purposes, FIG. 8, (including the map 921 and 922) map 920, Model 925 (application or business model 926 includes a logical form model 927 and physical model 928), and to indicate the library 930 It is segmented.

ライブラリ930は、アプリケーションモデル926におけるデータの様々な特性タイプ923を定義する、ビジネスフレームワーク905における特性タイプライブラリ931を含む。 Library 930 defines the various properties types 923 of data in the application model 926, including properties type library 931 in business framework 905. コアクライアント910において、ライブラリ930は、論理制御ライブラリ932、挙動ライブラリ933、および論理フォームタイプライブラリ934を含む。 In the core client 910, library 930 includes logic control library 932, behavior library 933 and logical form types library 934,. 上述されたように、論理制御ライブラリ932は、モデル926のデータまたは特性タイプ923をマッピングすることができる様々な論理制御924を定義する。 As described above, the logic control library 932 defines the various logic control 924 that can be mapped data or character type 923 of the model 926. アプリケーションモデル926と論理フォームモデル927との間のこのマッピングは、マップ921を使用するコアクライアントマッピングエンジンによって実行される。 The mapping between the application model 926 and logical form model 927 is performed by the core client mapping engine that uses map 921.

挙動ライブラリ933および論理フォームタイプライブラリ934は、前述のように、フォームを設計および生成するプロセスにおいて、コアクライアントマッピングエンジン910によって使用される。 Behavior library 933 and logical form types library 934, as described above, in the process of designing and generating the form, it is used by the core client mapping engine 910. ライブラリ930は、物理的フォームモデル928を生成するために、したがって物理的フォームをレンダリングするためにディスプレイターゲット900によって使用される、スタイルライブラリ935、物理的またはネーティブ制御ライブラリ936、およびフォームタイプライブラリ937も含む。 Library 930, to generate a physical form model 928, is thus used by the display target 900 to render the physical form, style library 935, physical or native control library 936, and also form types library 937 including. 制御ライブラリ936は、マップ922を使用して論理制御924をマッピングすることができる特定のディスプレイターゲットに関する様々な物理制御925を定義する。 Control library 936 defines the various physical control 925 for a particular display target capable of mapping the logical control 924 using a map 922.

本発明は、特定の実施形態を参照して述べたが、当業者は、本発明の精神および範囲から逸脱することなく、形態および詳細に変更を加えることができることは理解されよう。 The present invention has been described with reference to particular embodiments, those skilled in the art without departing from the spirit and scope of the present invention, it will be understood that changes may be made in form and detail.

本発明を使用することができる1つの例示的な環境のブロック図である。 Is a block diagram of one exemplary environment can use the present invention. 本発明を実施することができる一般的なモバイルコンピューティング環境のブロック図である。 It is a block diagram of a general mobile computing environment that can implement the present invention. 論理フォームおよび物理的フォームを生成するために、本発明のフォームタイプの使用の概略的な例示の図である。 To generate the logical form and physical form is a diagram of a schematic illustration of the use of form types of the present invention. 図3−1に示されるフォームタイプの使用の概略的な例示であり、フォームタイプと論理フォームおよび物理的フォームの生成との間の関係をさらに例示する図である。 Is a schematic illustration of the use of foam type shown in Figure 3-1 is a diagram further illustrating the relationship between the generation of foam types and logical forms and physical forms. ビジネスモデル例を例示するブロック図である。 It is a block diagram illustrating a business model example. フォームに対してマッピングされたエンティティビジネスモデルを例示するブロック図である。 Is a block diagram illustrating the mapping entity business model for the form. マップを使用するモデルおよび他のモデルを生成するプロセスを例示するブロック図である。 Is a block diagram illustrating a process of generating a model, and other models using the map. 一連のマッピングを介して初期のアプリケーションまたはビジネスモデルから、ディスプレイターゲットの特定モデルを生成するプロセスを例示するブロック図である。 From the initial application or business model through a series of mappings is a block diagram illustrating a process of generating a specific model of the display target. 一例の実施形態に関して図4−1および図4−2に示されるタイプのプロセスを例示するブロック図である。 It is a block diagram illustrating the type of process shown in Figure 4-1 and Figure 4-2 with regard to an example embodiment. ディスプレイターゲットから独立した論理フォームを作成するために、制御に対してマッピングされたエンティティ特性で、ビジネスモデルエンティティが、最初にディスプレイターゲットから独立したフォームにマッピングされ、次に論理フォームが、ディスプレイターゲットにマッピングされる、例示的なマッピングプロセスを例示するブロック図である。 To create a separate logical form from the display target, the entity properties mapped to the control, business model entities are mapped to the first independent form from the display target, then the logical form, the display target is mapped, it is a block diagram illustrating an exemplary mapping process. 本発明の設計時および実行時の態様を例示し、かつ論理層が、ビジネス論理とディスプレイターゲットとの間のブリッジであることを例示するブロック図である。 Illustrate aspects of the design-time and run-time of the present invention, and the logical layer is a block diagram illustrating that the bridge between the business logic and display target. ディスプレイターゲットの特定のレンダリング技術にマッピングされた論理的なフォームを例示するブロック図である。 Is a block diagram illustrating the logical form that is mapped to a particular rendering technique of the display target. 本発明の概念の概略の例示の図である。 It is a diagram of an exemplary schematic of the inventive concept.

符号の説明 DESCRIPTION OF SYMBOLS

120 プロセッシングユニット130 システムメモリ134 オペレーティングシステム135 アプリケーションプログラム136 他のプログラムモジュール137 プログラムデータ140 固定不揮発性メモリインターフェース144 オペレーティングシステム145 アプリケーションプログラム146 他のプログラムモジュール147 プログラムデータ150 取り外し可能な不揮発性メモリインターフェース160 ユーザ入力インターフェース161 ポインティングデバイス162 キーボード163 マイクロフォン170 ネットワークインターフェース171 ローカルエリアネットワーク172 モデム173 ワイドエリアネットワーク180 リモートコンピュータ185 リモートアプリケーションプログラム190 ビデオイ 120 processing unit 130 system memory 134 an operating system 135 application programs 136 other program modules 137 program data 140 fixed non-volatile memory interface 144 operating system 145 application programs 146 other program modules 147 program data 150 removable nonvolatile memory interface 160 the user input interface 161 a pointing device 162 keyboard 163 microphone 170 network interface 171 local area network 172 modem 173 wide area network 180 remote computer 185 remote application programs 190 Bideoi ターフェース191 モニタ195 出力周辺インターフェース196 プリンタ197 スピーカ202 プロセッサ208 通信インターフェース216 オブジェクトストア Interface 191 Monitor 195 output peripheral interface 196 printer 197 speaker 202 processor 208 communication interface 216 object store

Claims (12)

  1. ユーザがアプリケーションとデータをやり取りするためのオブジェクトモデルを表すためのフォームを含むユーザインターフェースを生成する方法であって、コンピュータのプロセッサが実行する前記方法は、 The method the user a method for generating a user interface including a form for representing an object model for exchanging application data, the processor of the computer executes,
    前記オブジェクトモデルを表すためのフォームを含むユーザインターフェースを生成するために使用する、表示対象に依存しない複数の異なる第1のフォームの種類のうちのどれかを選択するステップであって、前記複数の異なる第1のフォームの各種類は、前記生成された第1のフォームに含まれるべきオブジェクトモデルのデータを定義する関連スキーマと、少なくとも1つの定義されたレイアウトとを有するステップと、 It used to generate a user interface including a form for representing the object model, comprising the steps of: selecting any of a type of a plurality of different first form that is independent of the display target, the plurality of each type of different first form, the associated schema that defines the data object model to be included in the first forms the generated includes the steps of having at least one defined layout,
    前記オブジェクトモデルを前記第1のフォームへマッピングするための第1の宣言的なルールを提供するステップと、 Providing a first declarative rules for mapping the object model to the first form,
    前記オブジェクトモデル、前記選択されたフォームの種類に含まれた関連スキーマ 、および前記第1の宣言的なルールを使用して、表示対象に依存しない第1のフォームを生成するステップであって、前記オブジェクトモデルのデータの特性の種類を、前記表示対象に依存しない第1のフォームにおける表示対象に依存しない第1のユーザインターフェース要素にマッピングするステップを含む、前記第1のフォームを作成するステップと、 The object model, the associated schema included in the selected type of form, and using said first declarative rules, and generating a first form that is independent of the display target, the a step of the type of characteristic data of the object model, comprising the step of mapping the first user interface element that is independent of the display target in the first form that is independent of the display object, to create the first form,
    前記少なくとも1つの定義されたレイアウトを使用して、表示対象に表示される第2のフォームを生成するステップと、 A step of using said at least one defined layout, to generate a second form that is displayed in the display target,
    マッピングのための第2の宣言的なルールを使用して、前記第1のフォームを前記第2のフォームにマッピングするステップであって、前記第2のフォームは複数の第2のユーザインターフェース要素を有し、前記第2の宣言的なルールを使用して、前記第1のフォームにおける第1のユーザインターフェース要素の各々を、前記複数の第2のユーザインターフェース要素のうちの1つにマッピングするステップを含む、第2のフォームにマッピングするステップと、 Using a second declarative rules for mapping, comprising the steps of: mapping the first form to the second form, the second form is a plurality of second user interface element a, using the second declarative rules, each of the first user interface element in the first form, mapped to one of said plurality of second user interface element step and mapping the containing, in a second form,
    前記オブジェクトモデルが実行時に作用されるように、前記生成された第1のフォームを使用して、実行時に前記フォームのユーザインターフェースを表示するステップと を備えることを特徴とする方法。 Wherein said object model to be applied to at run time using the first form said generated characterized in that it comprises a step of displaying the user interface of the form at run time.
  2. 前記表示対象に依存しない第1のフォームを生成するステップは、表示対象に依存しない第1のフォームのモデルを生成するステップを含むことを特徴とする請求項1に記載の方法。 Generating a first form that is independent of the display object, the method according to claim 1, characterized in that it comprises the step of generating a first form of a model that is independent of the display object.
  3. 前記オブジェクトモデル、前記選択されたフォームの種類、および前記第1の宣言的なルールを使用して、前記表示対象に依存しない第1のフォームを生成するステップは、前記表示対象に依存しない第1のフォームに、該第1のフォームの挙動をさらに加えるステップをさらに含むことを特徴とする請求項1に記載の方法。 The object model, the selected form type, and using said first declarative rules, generating a first form that is independent of the display object, the first which does not depend on the displayed of the form, the method according to claim 1, further comprising a further adding step the behavior of the first form.
  4. 前記第1のフォームの挙動は、前記フォームにおいて発生するイベントによってアクティベートされることを特徴とする請求項3に記載の方法。 The behavior of the first form, the method according to claim 3, characterized in that it is activated by an event occurring in the form.
  5. 前記第1のフォームの挙動は、前記第1のユーザインターフェース要素の値および特性に応じて、他のユーザインターフェース要素に特性を設定する論理のパターンであることを特徴とする請求項4に記載の方法。 The behavior of the first form, according to claim 4, wherein the in accordance with the value and characteristics of the first user interface element is a logic pattern for setting the characteristics to other user interface element Method.
  6. 前記第1の宣言的なルールは、前記表示対象に依存しない第1のフォームを生成するために使用されるマッピングエンジンに対して外部にあることを特徴とする請求項1に記載の方法。 The first declarative rules A method according to claim 1, characterized in that external to the mapping engine used to generate a first form that is independent of the display object.
  7. 前記第1の宣言的なルールは、前記第1のユーザインターフェース要素のモデルを生成するために前記マッピングエンジンによって使用されるモデルであることを特徴とする請求項6に記載の方法。 The first declarative rules, method according to claim 6, wherein said that the model used by the mapping engine to generate a model of the first user interface element.
  8. 前記複数の異なる第1のフォームの各種類の前記スキーマは、複数のフォームのパターンを示すことを特徴とする請求項に記載の方法。 Each type wherein the schema of the plurality of different first form A method as claimed in claim 1, characterized in that indicating the patterns of a plurality of forms.
  9. フォームのユーザインターフェースを生成するステップを実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能記憶媒体であって、フォームのユーザインターフェースを生成するステップは、 A computer readable storage medium having computer-executable instructions for performing the step of generating a user interface of the form, the step of generating a user interface of the form,
    ユーザがアプリケーションとデータをやり取りするためのオブジェクトモデルを示すフォームのユーザインターフェースを生成するために使用する、表示対象に依存しない複数の異なる第1のフォームの種類のどれかを選択するための選択入力を受信するステップであって、前記複数の異なる第1のフォームの各種類は、前記生成された第1のフォームに含まれるべきオブジェクトモデルのデータを定義する関連スキーマと、少なくとも1つの定義されたレイアウトとを有するステップと、 User uses to generate the user interface of the form shown an object model for exchanging application data, selection input to select one of the types of a plurality of different first form that does not depend on the displayed and receiving a, each type of a plurality of different first form, the associated schema that defines the data object model to be included in the first forms the generated and at least one definition and a step having a layout,
    前記オブジェクトモデルを前記第1のフォームへマッピングするための第1の宣言的なルールを提供するステップと、 Providing a first declarative rules for mapping the object model to the first form,
    前記オブジェクトモデル、前記選択されたフォームの種類に含まれた関連スキーマ 、および前記第1の宣言的なルールを使用して、表示対象に依存しない第1のフォームを生成するステップであって、前記オブジェクトモデルのデータの特性の種類を前記表示対象に依存しない第1のフォームにおける表示ターゲットに依存しない第1のユーザインターフェース要素にマッピングするステップを含む、前記第1のフォームを生成するステップと、 The object model, the associated schema included in the selected type of form, and using said first declarative rules, and generating a first form that is independent of the display target, the a method comprising the step of mapping the type of characteristic data of the object model to the first user interface element that is independent of the display target in the first form that is independent of the display object, to generate the first form,
    前記少なくとも1つの定義されたレイアウトを使用して、表示対象に表示される第2のフォームを生成するステップと、 A step of using said at least one defined layout, to generate a second form that is displayed in the display target,
    マッピングのための第2の宣言的なルールを使用して前記第1のフォームを前記第2のフォームにマッピングするステップであって、前記第2のフォームは複数の第2のユーザインターフェース要素を有し、前記第2の宣言的なルールを使用して前記第1のフォームを前記第2のフォームにマッピングするステップは、前記第2の宣言的なルールを使用して、前記第1のフォームにおける第1のユーザインターフェース要素の各々を前記複数の第2のユーザインターフェース要素のうちの1つにマッピングするステップをさらに含む、第2のフォームにマッピングするステップと、 A second declarative using a rule for mapping the first form to the second form step for mapping, the second form have a plurality of second user interface element and, in the second declarative step of mapping the first form to the second form using the rule, using the second declarative rules, the first form and mapping further comprising, a second form of the step of mapping the one of the second user interface element of each of said plurality of first user interface element,
    前記オブジェクトモデルが実行時に作用されるように、前記生成された第1のフォームを使用して、実行時に前記フォームのユーザインターフェースを表示するステップとを含むことを特徴とするコンピュータ読取可能記憶媒体。 The way the object model is applied to at run time, using a first form said generated computer-readable storage medium characterized by comprising the step of displaying the user interface of the form at runtime.
  10. 前記オブジェクトモデル、前記選択されたフォームの種類、および前記第1の宣言的なルールを使用して、前記表示対象に依存しない第1のフォームを生成するステップは、前記表示対象に依存しない第1のフォームに、該第1のフォームの挙動を加えるステップもさらに含むことを特徴とする請求項に記載のコンピュータ読取可能記憶媒体。 The object model, the selected form type, and using said first declarative rules, generating a first form that is independent of the display object, the first which does not depend on the displayed of the form, a computer readable storage medium of claim 9, characterized in that it also comprises further step of adding a behavior of the first form.
  11. 前記第1の宣言的なルールは、前記表示対象に依存しない第1のフォームを生成するために使用されるマッピングエンジンに対して外部にあることを特徴とする請求項に記載のコンピュータ読取可能記憶媒体。 The first declarative rules, computer-readable of claim 9, wherein the external to the mapping engine used to generate a first form that is independent of the display target storage medium.
  12. 前記複数の異なる第1のフォームの各種類の前記スキーマは、複数のフォームのパターンを示すことを特徴とする請求項に記載のコンピュータ読取可能記憶媒体。 The plurality of different first form each type the schema of a computer-readable storage medium of claim 9, wherein the indicating a pattern of multiple forms.
JP2005161905A 2004-06-03 2005-06-01 Method and apparatus for generating a user interface based on automation with full flexibility Active JP5099982B2 (en)

Priority Applications (2)

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

Publications (2)

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

Family

ID=34940048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005161905A Active JP5099982B2 (en) 2004-06-03 2005-06-01 Method and apparatus for generating a user interface based on automation with full flexibility

Country Status (11)

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

Families Citing this family (78)

* 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
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
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
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US20060294006A1 (en) * 2005-06-28 2006-12-28 International Business Machines Corporation Business transaction process controller for composite transactions
US7840935B2 (en) * 2005-12-29 2010-11-23 Sap Ag Restrictive visualization of a stereotype construct for entities in a visual modeling environment
US8156469B2 (en) * 2005-12-29 2012-04-10 Sap Ag Single composition of pattern modules
US7774745B2 (en) * 2005-12-29 2010-08-10 Sap Ag Mapping of designtime to runtime in a visual modeling language environment
US7840936B2 (en) * 2005-12-29 2010-11-23 Sap Ag Support of a platform-independent model including descriptions of modeling language entities
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
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
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
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
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 (en) 2007-05-29 2012-09-05 中兴通讯股份有限公司 Method and system for managing generation of multiple electronic work orders
US20090043592A1 (en) * 2007-08-06 2009-02-12 Sap Ag Method and system for managing product development processes
US20090049025A1 (en) * 2007-08-16 2009-02-19 Oracle International Corporation System and method for harvesting service metadata from an architecture diagram into a metadata repository
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
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
KR20110099311A (en) * 2008-12-19 2011-09-07 인터내셔널 비지네스 머신즈 코포레이션 Method and system for generating vocal user interface code from a data meta-model
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
US8428984B2 (en) * 2009-08-31 2013-04-23 Sap Ag Transforming service oriented architecture models to service oriented infrastructure models
CA2679786A1 (en) * 2009-09-16 2009-12-16 Ibm Canada Limited - Ibm Canada Limitee Conceptual representation of business processes for cross-domain mapping
KR101277274B1 (en) * 2009-11-27 2013-06-20 한국전자통신연구원 Method and Apparatus for Mapping a Physical Resource Model to a Logical Resource Model
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 (en) * 2010-12-17 2014-06-25 无锡永中软件有限公司 Method for realizing goal seeking of electronic form
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 (en) * 2010-12-29 2013-04-20 Олег Владимирович Горохов Linguistic user interface operating method
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
CN103473622A (en) * 2012-06-07 2013-12-25 Sap股份公司 Scoping based on business scenario
KR20140034044A (en) * 2012-09-10 2014-03-19 더 보잉 컴파니 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
CN103713901B (en) * 2013-12-24 2018-01-12 金蝶软件(中国)有限公司 Documents show a method and system
CN103809976A (en) * 2014-02-19 2014-05-21 浪潮软件股份有限公司 Method for associating workflow with multi-terminal-type forms
CN104391725B (en) * 2014-12-08 2017-11-14 畅捷通信息技术股份有限公司 Page page display methods and display devices
US20160188183A1 (en) * 2014-12-24 2016-06-30 Guy SOFFER Declarative user interface representation conversion via hierarchical templates
RU2613026C1 (en) * 2015-09-30 2017-03-14 Общество с ограниченной ответственностью "Интерсофт" Method of preparing documents in markup languages while implementing user interface for working with information system data
US10203939B2 (en) * 2015-10-30 2019-02-12 Sap Se Method and system for parameter model framework
CN105739984A (en) * 2016-01-29 2016-07-06 中国人民解放军63811部队 Qt based high maintenance data display frame
EP3462309A1 (en) * 2017-09-28 2019-04-03 Siemens Aktiengesellschaft Method for generating user interfaces from a manufacturing application model

Family Cites Families (24)

* 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
KR20020007318A (en) * 1999-03-02 2002-01-26 추후제출 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
ES2355188T3 (en) * 2000-06-23 2011-03-23 Sportvision Inc. To track system based on GPS.
US20020083068A1 (en) * 2000-10-30 2002-06-27 Quass Dallan W. Method and apparatus for filling out electronic forms
EP1330709A2 (en) * 2000-11-03 2003-07-30 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
US20020105548A1 (en) * 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface 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
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
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

Also Published As

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

Similar Documents

Publication Publication Date Title
Ambler The object primer: Agile model-driven development with UML 2.0
Smart et al. Cross-platform GUI programming with wxWidgets
US7730410B2 (en) System and method for customizing form elements in a form building application
US7493592B2 (en) Programming interface for a computer platform
US7366723B2 (en) Visual query modeling for configurable patterns
US8078960B2 (en) Rendering an HTML electronic form by applying XSLT to XML using a solution
CA2505580C (en) Modeling system for graphic user interface
US6973625B1 (en) Method for creating browser-based user interface applications using a framework
US7730446B2 (en) Software business process model
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
US7774752B2 (en) Runtime services for network software platform
US7281248B2 (en) Virtualized and realized user interface controls
CN100504766C (en) Method for implementing programming interface and computer system
US7152090B2 (en) Metadata-aware enterprise application integration framework for application server environment
JP3602532B2 (en) Parallel processing apparatus having an incremental command object
CN102656557B (en) Automation enterprise software development
Fuentes-Fernández et al. An introduction to UML profiles
US20060248448A1 (en) XML application framework
US20050091032A1 (en) System and method for providing context to an input method by tagging existing applications
US7191429B2 (en) System and method for managing architectural layers within a software model
Atkinson et al. A flexible infrastructure for multilevel language engineering
US7543268B2 (en) Development environment for developing applications using a metamodel and a metadata API
US20060212543A1 (en) Modular applications for mobile data system
JP4425348B2 (en) Compound document framework
US20040015832A1 (en) Method and apparatus for generating source code

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 Written amendment

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 Written amendment

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 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120724

A911 Transfer of reconsideration by examiner 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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

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