JP6541647B2 - ランタイムカスタマイゼーションインフラストラクチャ - Google Patents

ランタイムカスタマイゼーションインフラストラクチャ Download PDF

Info

Publication number
JP6541647B2
JP6541647B2 JP2016515519A JP2016515519A JP6541647B2 JP 6541647 B2 JP6541647 B2 JP 6541647B2 JP 2016515519 A JP2016515519 A JP 2016515519A JP 2016515519 A JP2016515519 A JP 2016515519A JP 6541647 B2 JP6541647 B2 JP 6541647B2
Authority
JP
Japan
Prior art keywords
document
metadata
application
server
adf
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
JP2016515519A
Other languages
English (en)
Other versions
JP2016533547A5 (ja
JP2016533547A (ja
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
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Priority claimed from PCT/US2014/053138 external-priority patent/WO2015041829A1/en
Publication of JP2016533547A publication Critical patent/JP2016533547A/ja
Publication of JP2016533547A5 publication Critical patent/JP2016533547A5/ja
Application granted granted Critical
Publication of JP6541647B2 publication Critical patent/JP6541647B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Description

関連出願への相互参照
この出願は、
2013年9月20日に出願された、「ランタイムカスタマイゼーションインフラストラクチャ(Runtime Customization Infrastructure)」という名称を有する米国仮出願第61/880,767号と、
2013年11月26日に出願された、「ワークブックコンポーザ(Workbook Composer)」という名称を有する米国仮出願第61/909,205号と、
2014年6月13日に出願された、「ランタイムカスタマイゼーションインフラストラクチャ(Runtime Customization Infrastructure)」という名称を有する米国出願第14/304,356号と、
2014年6月13日に出願された、「ワークブックコンポーザ(Workbook Composer)」という名称を有する米国出願第14/304,393号と
に対する優先権および優先権の利益を請求しており、その開示は本願明細書においてすべての目的について参照により援用される。
発明の背景
アプリケーションは、実行時において特定の所望のタスクを実行するソフトウェアプログラムを指す。一般に、いくつかのアプリケーションは、関連技術において周知のように、オペレーティングシステム、(たとえばJava(登録商標)プログラミング言語をサポートする)バーチャルマシン、デバイスドライバなどのうちの1つ以上を含むランタイム環境において実行される。
デベロッパはしばしば、所望のアプリケーションを実装/開発するために、(それら自体がアプリケーションである)アプリケーション開発フレームワーク(ADF:Application Development Framework)を使用する。ADFは、直接的/間接的にアプリケーションの開発において使用され得るあらかじめ定義されたコード/データモジュールのセットを提供する。ADFはさらに、IDE(integrated development environment;総合開発環境)、コードジェネレータ、デバッガなどといったツールを提供し得、これにより、デベロッパがアプリケーションの所望のロジックをコーディング/実装することをより速い/より簡素な態様で容易にする。
一般に、ADFは、たとえば所望のタスクを実行するようコンポーネントを選択し、かつ、当該選択されたコンポーネントの外観、挙動および相互作用を定義することにより、アプリケーションデベロッパがユーザインターフェイスおよびアプリケーションロジックを定義するために使用し得る再使用可能なコンポーネントおよび総合開発環境を提供することによって、アプリケーションの開発を簡素化する。いくつかのADFは、疎結合(loose coupling)と、より容易なアプリケーション開発およびメンテナンスとを促進するモデル・ビュー・コントローラデザインパターンに基づく。オラクルアプリケーション開発フレームワーク(Oracle Application Development Framework)はこのデザインパターンを利用するADFの一例である。
オラクルADFは、ビルトインのHTML5およびAjax機能を有する標準ベースのJavaサーバフェイス(JSF:Java Server Face)コンポーネントのライブラリを含む。これらのコンポーネントにより、ウェブで展開されるユーザインターフェイスが、以前にシッククライアントアプリケーションのために確保されたあるレベルの機能および相互作用性を有するよう開発され得る。コンポーネントは、使用が容易なコンポーネントのセットにおいて、データ相互作用、データ可視化、および、カプセル化されたブラウザ側動作を提供し、これまでよりもリッチクライアントアプリケーションの開発が容易になる。オラクルADFはさらに、IDEにおいて単純なドラッグアンドドロップ動作を通じてビジネスサービスにUIを結合することを簡素化するデータ結合フレームワーク(data-binding framework)を提供する。これは、コンシューミングインターフェイスからのビジネスサービスの独立を保ちつつなされる。このフレームワークにより、UIデベロッパは、ビジネスサービスレイヤーの基礎をなすインプリメンテーションから隔離される。これにより、UIを構築するプロセスは、ビジネスサービスレイヤーのインプリメンテーションから真に切り離され、サービス指向アーキテクチャにおけるインプリメンテーションのためにアプリケーションがよりよく配置される。
したがって、望まれるのは、アプリケーション開発フレームワークを使用してアプリケーションユーザインターフェイスを構築することに関連する問題を解決することであり、その問題のいくつかは本願明細書において論じられ得る。さらに、望まれるのは、アプリケーション開発フレームワークを使用してユーザインターフェイスを構築することに関連する障害を低減することであり、そのアプリケーション開発フレームワークのいくつかは本願明細書において論じられ得る。
発明の概要
この開示の以下の部分は、少なくとも主題の基本的な理解を提供する目的のために、この開示において発見される1つ以上のイノベーション、実施形態および/または例の簡素化された概要を提供する。この概要は、如何なる特定の実施形態または例の広範囲な概要も提供することを試みてはいない。さらに、この概要は、実施形態または例の主な/決定的な要素を識別するようには意図されておらず、または、この開示の主題の範囲を定めるようには意図されていない。したがって、この概要の1つの目的は、この開示において発見されるいくつかのイノベーション、実施形態および/または例を簡素化された形で、後述されるさらなる詳細な説明の前置きとして提供することであり得る。
さまざまな実施形態において、デベロッパが、デスクトップ統合フレームワークを使用して開発されたドキュメントのランタイムカスタマイゼーションを行うことを可能にする方法、システムおよび一時的でないコンピュータ読取可能媒体が開示される。ワークブックメタデータは、所与のワークブックが特定のウェブアプリケーションにどのように統合されるかを記述する情報のセットである。ワークブックが発行されている場合、メタデータは、発行されたワークブックにおけるローカルキャッシュおよびワークブック定義ファイルに書き込まれ得る。メタデータ管理は、発行されたワークブックにおけるローカルキャッシュおよびワークブック定義ファイルから独立して、発行されたワークブックの更新およびカスタマイゼーションを可能にするよう、メタデータサービスによって扱われ得る。
さまざまな実施形態において、ウェブベースのアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するための方法は、そのコンテンツが第2のアプリケーションに関連付けられるネイティブアプリケーションフォーマットで作成されたドキュメントであることを示す情報を第1のアプリケーションから受け取ることを含む。ドキュメントについてのメタデータに関連付けられるルールのセットが決定される。メタデータは、ドキュメントのコンテンツの部分と、第1のアプリケーションと通信する1つ以上のウェブベースのアプリケーションによって提供されるデータモデルに関連付けられるデータとの間のリンクを提供する。ドキュメントについてのメタデータに適用されるようにカスタマイゼーションを構成するルールの決定されたセットに基づいて、ドキュメントについてのメタデータが生成される。ドキュメントが1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、第2のアプリケーションにドキュメントについてのメタデータが通信される。
ドキュメントについてのメタデータに関連付けられるルールのセットを決定することは、使用するべきドキュメントについてのメタデータのバージョンを規定する少なくとも1つのルールを決定することを含み得る。当該ドキュメントについてのメタデータに関連付けられるルールのセットを決定することは、ドキュメントのユーザに関連付けられる役割に基づいて、使用するべきドキュメントについてのメタデータを規定する少なくとも1つのルールを決定することを含み得る。ドキュメントについてのメタデータに関連付けられるルールのセットを決定することは、時間または日付情報に基づいて、使用するべきドキュメントについてのメタデータを規定する少なくとも1つのルールを決定することを含み得る。ドキュメントについてのメタデータに関連付けられるルールのセットを決定することは、組織の部門に基づいて、使用するべきドキュメントについてのメタデータを規定する少なくとも1つのルールを決定することを含み得る。ドキュメントについてのメタデータに関連付けられるルールのセットを決定することは、メタデータ管理サーバから1つ以上のルールを抽出することを含み得る。
いくつかの実施形態において、ドキュメントについてのメタデータに適用されるようにカスタマイゼーションを構成するルールの決定されたセットに基づいて、ドキュメントについてのメタデータを生成することは、ドキュメントについてベースメタデータに複数のメタデータカスタマイゼーションを適用することを含み得る。
一実施形態において、ウェブベースのアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するためのコンピュータ実行可能コードを格納する一時的でないコンピュータ読取可能媒体が提供される。一時的でないコンピュータ読取可能媒体は、そのコンテンツが第2のアプリケーションに関連付けられるネイティブアプリケーションフォーマットで作成されたドキュメントであることを示す情報を第1のアプリケーションから受け取るためのコードと、ドキュメントについてのメタデータに関連付けられるルールのセットを決定するためのコードとを含み、メタデータは、ドキュメントのコンテンツの部分と、第1のアプリケーションと通信する1つ以上のウェブベースのアプリケーションによって提供されるデータモデルに関連付けられるデータとの間のリンクを提供し、一時的でないコンピュータ読取可能媒体は、ドキュメントについてのメタデータに適用されるようにカスタマイゼーションを構成するルールの決定されたセットに基づいて、ドキュメントについてのメタデータを生成するためのコードと、ドキュメントが1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、第2のアプリケーションにドキュメントについてのメタデータを通信するためのコードとを含む。
一実施形態において、ウェブベースのアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するためのシステムが提供される。システムは、プロセッサと、指示のセットを格納するメモリとを含み、指示のセットは、プロセッサによって実行されると、そのコンテンツが第2のアプリケーションに関連付けられるネイティブアプリケーションフォーマットで作成されたドキュメントであることを示す情報を第1のアプリケーションから受け取り、ドキュメントについてのメタデータに関連付けられるルールのセットを決定するように、プロセッサを構成し、メタデータは、ドキュメントのコンテンツの部分と、第1のアプリケーションと通信する1つ以上のウェブベースのアプリケーションによって提供されるデータモデルに関連付けられるデータとの間のリンクを提供し、指示のセットはさらに、プロセッサによって実行されると、ドキュメントについてのメタデータに適用されるようにカスタマイゼーションを構成するルールの決定されたセットに基づいて、ドキュメントについてのメタデータを生成し、ドキュメントが1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、第2のアプリケーションにドキュメントについてのメタデータを通信するようにプロセッサを構成する。
この開示の主題の性質および均等物(ならびに提供される如何なる固有または明白な利点および改良)のさらなる理解は、この開示の残りの部分、任意の添付の図面および請求の範囲への参照により、上記のセクションに加えて実現されるはずである。
この開示において発見されるイノベーション、実施形態および/または例を適切に記載および説明するために、1つ以上の添付の図面に対して参照がなされ得る。1つ以上の添付の図面を説明するよう用いられる付加的な詳細または例は、特許請求される発明のいずれか、ここで記載される実施形態および/もしくは例のいずれか、またはこの開示において示されるいずれかのイノベーションの現在理解されている最良の形態の範囲への限定と見なされるべきではない。
本発明に従った一実施形態においてアプリケーション開発フレームワーク(ADF)を示すブロック図である。 本発明に従った一実施形態において図1のADFのためのデスクトップ統合フレームワークを示すブロック図である。 本発明に従った一実施形態において図2のデスクトップ統合フレームワークを使用して、ドキュメントをデザインするための方法のフローチャートである。 本発明に従った一実施形態において図2のデスクトップ統合フレームワークを使用してドキュメントと相互作用するための方法のフローチャートである。 本発明に従った一実施形態において、基礎をなすモデルによってビューがドリブンされ得るドキュメントコンポーネントのスクリーンショットの図である。 本発明に従った一実施形態において図2のデスクトップ統合フレームワークを使用してコンポーネントのモデルドリブンの局面をデザインするための方法のフローチャートである。 本発明に従った一実施形態においてメタデータ管理を提供する図2のADFのためのデスクトップ統合フレームワークを示すブロック図である。 本発明に従った一実施形態においてメタデータ管理を提供するために図2のデスクトップ統合フレームワーク間の相互作用を示すブロック図である。 本発明に従った一実施形態においてメタデータ管理を有する図2のデスクトップ統合フレームワークを使用してドキュメントを実行するための方法のフローチャートである。 本発明に従った一実施形態においてメタデータをカスタマイズするためのユーザインターフェイスのスクリーンショットの図である。 実施形態のうちの1つを実現するための分散システムの簡略図を示す図である。 本発明のさまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
発明の詳細な説明
以下の記載において本発明の実施形態が完全に理解されるように説明目的のために具体的な詳細を記載する。しかしながら、さまざまな実施形態がこれらの特定の詳細なしで実施されてもよいということは明白であろう。図および記載は、限定的であるように意図されない。
イントロダクション
Java EEは、今日のエンタープライズアプリケーションの多くの基礎をなす標準的で、ロバストで、スケーラブルで、かつ、セキュアなプラットフォームである。Java EEは、Java言語を使用して、多層アプリケーションを構築するための仕様のセットを提供する。過去においては、アプリケーションのロバスト性と、ロバスト性を達成するのに必要とされる複雑性との間に直接的な相関性が存在した。しかしながら、オラクルADF(Oracle ADF)のようなADFの出現により、標準パターンおよびプラクティスに従うことによって非常にリッチなJava EEアプリケーションのインプリメンテーションが提供され得、労力が大幅に低減される。
サービス指向アーキテクチャ(SOA:Service Oriented Architecture)原理を利用するコンポジットアプリケーションを組織が構築する必要性の増加により、デベロッパは、非常にアジャイルなアプリケーションを作成することを強いられる。アジャイルなアプリケーションにおいてこれらのベストプラクティスを実現することは通常、かなりの量のインフラストラクチャコードを記述することを伴い、これにより、はじめてJava EEアプリケーションを構築するデベロッパにとって別の支障が加わる。ロバストで、パフォーマンスが高く(performant)、メンテナンス可能なアプリケーションの提供に加えて、オラクルADFは、アジャイルなSOAベースのアプリケーションを実現するようインフラストラクチャコードを提供し、これにより、組織が「自作する(rolling their own)」ことに伴う労力が除去される。
オラクルADFはさらに、Oracle JDeveloper 11g開発ツールを通じて、Java EE開発に対して視覚的および宣言的なアプローチ(visual and declarative approach)を提供する。オラクルADFは、モデル・ビュー・コントローラデザインパターンを実現し、かつ、オブジェクト/リレーショナルマッピング、データ持続性、再使用可能なコントローラレイヤー、リッチウェブユーザインターフェイスフレームワーク、UIへのデータ結合、セキュリティ、およびカスタマイゼーションといったエリアに到るソリューションでこのアーキテクチャのすべてのレイヤーをカバーする統合ソリューションを提供する。コアウェブベースMVCアプローチを超えて、ADFはさらに、オラクルSOAと、完全なコンポジットアプリケーションの作成の簡素化するWebCenter Portalフレームワークとを統合する。
たとえば、オラクルADFは、ADFにおけるビルトインビジネスサービスにサービスインターフェイスを結合することによって、サービスとしてデータを公開するアジャイルなアプリケーションを開発することを容易にする。ビジネスサービスインプリメンテーションの詳細のこの分離は、メタデータを介してオラクルADFにおいて実行される。このメタデータドリブンのアーキテクチャの使用により、アプリケーションデベロッパが、サービスがどのようにアクセスされるかの詳細ではなく、ビジネスロジックおよびユーザ体験に集中することが可能になる。
オラクルADFは、ADFモデルレイヤーにおいてメタデータにこれらのサービスのインプリメンテーションの詳細を格納する。これにより、デベロッパは、ユーザインターフェイスを修正することなく、サービスを交換することが可能になり、アプリケーションが非常にアジャイルになる。さらに、ユーザインターフェイスを作成するデベロッパは、ビジネスサービスアクセスの詳細に悩まされる必要がない。代わりに、デベロッパはアプリケーションインターフェイスおよび相互作用ロジックの開発に集中することができる。ユーザ体験を作り出すことは、ビジュアルページデザイナに所望のビジネスサービスをドラッグアンドドロップし、どのタイプのコンポーネントがそのデータを表わすべきか示すといったように単純であり得る。
図1は、本発明に従った一実施形態において、アプリケーション開発フレームワーク(ADF)100を示すブロック図である。図1は、この開示において示される1つ以上の発明のさまざまな実施形態または実現例を組み込み得るシステムの簡略図である。図1は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり得、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
ADF100は一例ではオラクルADFとして具現化され得る。したがって、ADF100はモデル・ビュー・コントローラ(MVC:Model-View-Controller)デザインパターンに基づく。MVCアプリケーションは、1)データソースとの相互作用を扱うとともにビジネスロジックを実行するモデルレイヤーと、2)アプリケーションユーザインターフェイスを扱うビューレイヤーと、3)アプリケーションフローを管理するとともにモデルレイヤーとビューレイヤーとの間のインターフェイスとして機能するコントローラとに分離される。これらの3つのレイヤーにアプリケーションを分離することによって、アプリケーションを横断するコンポーネントのメンテナンスおよび再使用が簡素化される。他のレイヤーからの各レイヤーの独立によって、疎結合されたサービス指向アーキテクチャ(SOA)が得られる。
この実施形態において、エンタープライズアプリケーションを形成するモジュールが、当該モジュールADF100内に存在するのが示され、ADFを使用して開発され、次いで、ADF100のコンテキストにおいて実行されることを示す。簡明性のために、JAVAプログラミング言語と、オラクル社から入手可能な開発ツールであるJDeveloper 10.1.3の一部として利用可能なオラクルADFとを使用してアプリケーションが開発されると仮定して、ADFのさまざまな内部の詳細は示されない。しかしながら、以下に記載される本発明の特徴は、関連する技術の当業者には明らかであろうように、本願明細書において提供される開示を読むことによって、プログラミング言語およびアプリケーション開発フレームワークの任意の所望の組合せを用いて実現され得る。
さまざまな実施形態において、ADF100により、アプリケーションが複数のレイヤーの形態で開発され、各レイヤーは、あらかじめ定義された仕様に従って所望のロジックを実現するコードモジュール/ファイルを含む。したがって、一実施形態において、ADF100によって、アプリケーションは、アプリケーションのユーザインターフェイスを提供するコードモジュール/ファイルを含むビューレイヤー110と、アプリケーションのフローを制御するコードモジュールを含むコントローラレイヤー120と、基礎をなすデータに対して抽象化レイヤーを提供するデータ/コードモジュールを含むモデルレイヤー130と、さまざまなソースからのデータへのアクセスを提供するとともにビジネスロジックを扱うコードモジュールを含むビジネスサービスレイヤー140といった4つのレイヤーとして開発され得る。
オラクルADFにより、レイヤーの各々を実現する際に、デベロッパは使用することを好む技術を選択する。図1は、オラクルADFアプリケーションを構築する場合に、デベロッパに利用可能なさまざまなオプションを示す。Java EEアプリケーションのさまざまなコンポーネントを統合し開発を非常にフレキシブルにする接着剤(glue)がオラクルADFモデルレイヤーである。EJB、Web Services、JavaBeans、JPA/EclipseLink/TopLinkオブジェクトおよび他の多くのものは、すべてオラクルADFモデルのためのビジネスサービスとして使用され得る。ビューレイヤーは、JSF、デスクトップスイングアプリケーション(Desktop Swing Application)、およびMSオフィスフロントエンドを用いて実装されるウェブベースのインターフェイスと、モバイルデバイスのためのインターフェイスとを含み得る。
そのようなレイヤーアプローチを使用するアプリケーションの開発はしばしば、さまざまなアプリケーションを横断するコンポーネント/コードモジュールのメンテナンスおよび再使用を簡素化するということが理解され得る。さらに他のレイヤーからの各レイヤーの独立は、開発されたビジネス/エンタープライズアプリケーションを複数/異なるシステム上で展開する場合に望ましくあり得る疎結合のサービス指向アーキテクチャ(SOA)に繋がる。
1つの局面において、ビューレイヤー110は、開発されるアプリケーションのユーザインターフェイスを表わす。ビューレイヤー110は、各々がユーザインターフェイスのすべてまたは一部を提供しビュータイプに対応するさまざまな態様でアクセス可能であるデスクトップ、モバイルおよびブラウザベースのビューを有するのが示される。たとえば、ウェブページは、対応するURLを含むクライアント要求を受信することに応答してアプリケーションによって送信され得る。その後、ウェブページは、要求を行ったクライアントシステムに関連付けられるディスプレイユニット(図示せず)上にブラウザによって表示され得、これにより、要求を行ったクライアントシステムのユーザがエンタープライズアプリケーションと相互作用することが可能になる。オラクルADFは、ビジネスサービスの再使用を可能にするビジネスサービスへのマルチチャンネルアクセスと、Webクライアント、クライアント・サーバ・スイングデスクトップベース・アプリケーション(client-server swing desktop-based application)、マイクロソフトエクセルスプレッドシート、または、スマートフォンのようなモバイルデバイスなどからのアクセスとをサポートする。
(ウェブページのような)ビューレイヤーを形成するコードファイル/モジュールは、ハイパーテキストマークアップ言語(HTML:hypertext markup language)、Javaサーバページ(JSP:Java server page)およびJavaサーバフェイス(JSF:Java Server Face)のうちの1つ以上を用いて実現され得る。代替的には、SwingのようなJavaコンポーネントおよび/または拡張マークアップ言語(XML:extensible markup language)を使用してユーザインターフェイスが実現され得る。さらに示されるように、ユーザインターフェイスは、マイクロソフトによるワードおよびエクセルのようなデスクトップアプリケーションについてのユーザの経験および熟知性にレバレッジをかけ得る。
上に示されるように、ユーザが開発した関連するコード/データモジュールが上記レイヤーの各々において提供される。しかしながら、各レイヤーは典型的に、ADF100によって提供される他のあらかじめ定義されたコード/データモジュールを含む。たとえば、あらかじめ定義されたモジュールのうちのいくつかは、ウェブページを開発するためのテンプレート、開発したコードに所望の機能を含ませるためのテンプレートなどとして、開発の間に使用され得る。(URL書換モジュールのような)他のあらかじめ定義されたモジュールは、開発されたアプリケーションと共に展開され得、エンタープライズアプリケーションの実行の間に、付加的な機能(内部名への要求されたURLのマッピング)をユーザに提供し得る。
コントローラレイヤー120は、アプリケーションのフローを制御するコードモジュール/ファイルを含む。各コントローラオブジェクトは、ビューレイヤー110において情報を提示する所望の態様に従って実現されるソフトウェア命令および/またはデータを含む。所望の態様は、別のウェブページにおけるリンクがユーザによってクリック/選択される場合に特定のウェブページが表示されることと、エラーが実行の間に発生する場合に、格納/抽出されるべき特定のデータを示すページが表示されることなどとを含み得る。
1つの局面において、コントローラレイヤー120はアプリケーションフローを管理し、ユーザ入力を扱う。たとえば、サーチボタンがページ上でクリックされると、コントローラは、どのアクションを実行するべきか(サーチを行う)と、どこにナビゲートするべきか(結果ページ)とを決定する。JDeveloperにおいて、ウェブベースのアプリケーションについては、JSFコントローラ機能を拡張する標準的なJSFコントローラまたはADFコントローラといった2つのコントローラオプションが存在する。どちらのコントローラが使用されるかにかかわらず、アプリケーションフローは典型的に、ページおよびナビゲーションルールをダイアグラムにレイアウトすることによってデザインされる。アプリケーションのフローは、より小さく再使用可能なタスクフローへ細分され得、フローにおけるメソッドコールおよび決定ポイントのような非視覚的コンポーネントを含み、単一の包含ページの領域の内で実行される「ページフラグメント」フローを作成する。
コントローラレイヤー120を形成するコードモジュール/ファイルはしばしば、クライアント要求を受信するととともに対応する応答として所望のウェブページを送信するJavaサーブレットとして実現される。また、たとえば、コントローラオブジェクトは、Apache Jakarta Strutsコントローラとして、または、JSF規格に従って実現され得る。
モデルレイヤー130は、上に論じたコントローラオブジェクトのような、他のレイヤーにおいてさまざまなビジネスサービスを使用するオブジェクトに当該さまざまなビジネスサービスを接続するか、または、示されるように当該さまざまなビジネスサービスを直接的にデスクトップアプリケーションに接続するデータ/コードモジュールを含む。モデルレイヤー130の各抽象データオブジェクトは、任意のタイプのビジネスサービスにアクセスするために使用され得る対応するインターフェイスを提供し、基礎をなすビジネスサービスレイヤー140において実行する。データオブジェクトは、クライアントからサービスのビジネスサービスインプリメンテーションの詳細を抽象化し、および/または、ビューコンポーネントにデータ制御メソッド/属性を公開し、ビューレイヤーとデータレイヤーとの分離を提供する。
1つの局面において、モデルレイヤー130は、インターフェイスを定義するためにメタデータファイルを利用するデータ制御およびデータ結合という2つのコンポーネントからなる。データ制御は、クライアントからビジネスサービスインプリメンテーションの詳細を抽象化する。データ結合は、UIコンポーネントにデータ制御メソッドおよび属性を公開し、ビューとモデルとのクリーンな分離を提供する。モデルレイヤーのメタデータアーキテクチャにより、デベロッパは、任意のタイプのビジネスサービスレイヤーインプリメンテーションをビューレイヤーおよびコントローラレイヤーに結合する際に、同じ開発経験を得る。
オラクルADFは、開発プロセスの全体にわたって宣言プログラミングパラダイムの使用を強調し、インプリメンテーションの詳細に入ることを必要とすることなくユーザがアプリケーション作成のロジックに集中することを可能にする。ハイレベルでは、Fusionウェブアプリケーションのための開発プロセスは、アプリケーションワークスペースを作成することを通常伴う。ウィザードを使用して、デベロッパによって選択される技術に必要とされるライブラリおよび構成が自動的に追加され、アプリケーションがパッケージおよびディレクトリを有するプロジェクトへと構造化される。
データベースオブジェクトをモデリングすることによって、オンラインデータベースまたは任意のデータベースのオフラインレプリカが作成され得、定義が編集され、スキーマが更新される。その後、UMLモデラーを使用して、当該アプリケーションのためにユースケース(use case)が作成され得る。また、アプリケーション制御およびナビゲーションがデザインされ得る。アプリケーション制御およびナビゲーションのフローを視覚的に決定するために、ダイアグラマ(diagrammer)が使用され得る。当該フローを記述する基礎となるXMLが自動的に作成され得る。アプリケーションに単純にリソースライブラリをドラッグアンドドロップすることによって、インポートされたライブラリをデベロッパが閲覧および使用することを可能にするよう、リソースライブラリが使用され得る。データベーステーブルから、エンティティオブジェクトがウィザードまたはダイアログを使用して作成され得る。それらのエンティティオブジェクトから、アプリケーションにおけるページによって用いられるようにビューオブジェクトが作成される。検証ルールおよび他のタイプのビジネスロジックが実現され得る。
この例において、ビジネスサービスレイヤー140は、データ持続性レイヤーとの相互作用を管理する。これにより、データ持続性、オブジェクト/リレーショナルマッピング、トランザクション管理およびビジネスロジック実行といったサービスが提供される。オラクルADFにおけるビジネスサービスレイヤーは、シンプルJavaクラス、EJB、Web services、JPAオブジェクト、およびオラクルADFビジネスコンポーネントといったオプションのうちのいずれかにおいて実現され得る。さらに、ファイル(XMLまたはCSV)およびRESTからデータが直接的に消費され得る。
したがって、各ビジネスサービスは、対応するデータ持続性レイヤーとの相互作用を管理し、オブジェクト/リレーショナルマッピング、トランザクション管理、ビジネスロジックの実行などといったサービスを提供する。ビジネスサービスレイヤーは、シンプルJavaクラス、Enterprise Java Beans、ウェブサービスなどのうち1つ以上を使用して実現され得る。
ビジネスコンポーネントは、たとえば、データベース、ウェブサービス、レガシーシステム、および、アプリケーションサーバなどとの相互作用を提供するようオラクルADFビジネスコンポーネントを使用して実現されるビジネスサービスを表わす。一実施形態において、ビジネスサービスレイヤー140のビジネスコンポーネントは、ビジネスサービスインプリメンテーションを提供するように協働するアプリケーションモジュール、ビュー/クエリーオブジェクトおよびエンティティオブジェクトの混合を含む。アプリケーションモジュールは、アプリケーション/トランザクションデータとともに動作するために、UIクライアントが通信するトランザクションコンポーネント/コードモジュールであり得る。アプリケーションモジュールは、ユーザトランザクションに関する更新可能なデータモデルおよびプロシージャ/関数(一般にサービスメソッドと称される)を提供し得る。
エンティティオブジェクトは、データベーステーブルにおける対応する行を表わし得、当該対応する行に格納されるデータの操作(更新、削除など)を簡素化する。エンティティオブジェクトはしばしば、所望のビジネスルールが一貫して実施されることを保証するために、対応する行のためのビジネスロジックをカプセル化する。エンティティオブジェクトはさらに、存在するデータベースに格納される行同士の間に存在する関係を反映するよう、他のエンティティオブジェクトに関連付けられ得る。
デスクトップ統合
ADFデスクトップ統合は、オラクルアプリケーション開発フレームワークをマイクロソフトエクセルのようなデスクトップアプリケーションの世界へ拡張する。アプリケーションデベロッパは、ユーザがクリティカルなビジネスデータにアクセスし編集することを可能にするよう、他のデスクトップベースのアプリケーションのスプレッドシートおよびドキュメントといった統合されたドキュメントを迅速に開発し得る。このフレームワークは、各ウェブアプリケーションのセキュリティおよびビジネスロジックインフラストラクチャにシームレスに統合する。さらに、このフレームワークは、エンドユーザがネットワークへの実際の接続なしでデータを編集することを可能にする。ひとたび再接続されると、ADFデスクトップ統合は、アプリケーションのバックエンドに対して、トランスピアレントにすべてのユーザ変更をアップロードおよび有効化し得る。したがって、ADFデスクトップ統合は、デベロッパがウェブベースのアプリケーションによって提供される機能をデスクトップアプリケーションに拡張することを可能にする。さらに、エンドユーザはADFデスクトップ統合を好む場合がある。なぜならば、ADFデスクトップ統合は、複雑な計算の実行または大量のデータのアップロードといった情報管理タスクを容易かつシームレスに行うために、ユーザの好むデスクトップアプリケーションにおける見慣れたユーザインターフェイスを提供するからである。
図2は、本発明に従った一実施形態において図1のADF100のためのデスクトップ統合フレームワーク200を示すブロック図である。デスクトップ統合フレームワーク200は、この開示内に提示された1つ以上の発明のさまざまな実施形態または実現例を組み込み得る。デスクトップ統合フレームワーク200は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
この例において、デスクトップ統合フレームワーク200は、クライアントコンピュータシステム210およびサーバコンピュータシステム220を含む。クライアントコンピュータシステム210は、アクセスを提供および/またはアプリケーション230をホスティングするように構成されるハードウェアおよび/またはソフトウェア要素を表す。クライアントコンピュータシステム210は、パーソナルコンピュータシステム、ラップトップ、タブレット、およびモバイルデバイスなどとして具現化され得る。クライアントコンピュータシステム210は、1つ以上のコンピュータ上で実行される1つ以上のオペレーティングシステム、アプリケーション、およびブラウザなどを含み得る。クライアントコンピュータシステム210は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
アプリケーション230は、ユーザがドキュメントを生成、編集、または別の態様で相互作用することを可能にする1つ以上のソフトウェア要素を表す。アプリケーション230のいくつかの例は、テキストエディタ、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、ならびに、画像編集および操作プログラムなどである。さまざまな実施形態において、デスクトップ統合フレームワーク200は、マイクロソフトワードおよびマイクロソフトエクセルのようなマイクロソフトオフィス製品のようなデスクトップアプリケーションに特有の構成で動作する。
アプリケーション230は、ADF−DIクライアントコンポーネント240をさらに含むか、または、そうでなければADF−DIクライアントコンポーネント240と通信し、かつ、ドキュメント250を作成する。ADF−DIクライアントコンポーネント240は、ウェブベースまたは他のネットワークアクセス可能なアプリケーションによって提供される機能をアプリケーション230に拡張する1つ以上のソフトウェア要素を表す。たとえば、ADF−DIクライアントコンポーネント240は、エンドユーザが、アプリケーション230に関連付けられる見慣れたユーザインターフェイスを利用することを可能にし、これにより、ドキュメント250を使用して、サーバコンピュータシステム220にアクセスすることにより通常実行される情報管理タスクを行う。これらのタスクは、サーバコンピュータシステム220によってホスティングされたウェブベースまたは他のネットワークアクセス可能なアプリケーションによって実行または扱われ得る。さまざまな実施形態において、アプリケーション230において実行されるそのような情報管理タスクによって操作されたデータは、サーバコンピュータシステム220に同期される。
ドキュメント250は、電子情報の1つ以上のコンピュータデータファイルまたはユニットを表わす。ドキュメント250は、テキスト、画像、オーディオ、ビデオおよび他のマルチメディア情報を含み得る。ドキュメント250はさらに、アプリケーション230に特有のメタデータに関連付けられ得る。ドキュメント250(またはアプリケーション230)は、ドキュメント250に関連付けられるコンテンツを作成し、相互作用し、管理するためのネイティブな機能を提供し得る。さまざまな局面において、アプリケーション230は、アプリケーション230の機能またはドキュメント250のコンテンツと相互作用するための1つ以上のインターフェイスを提供する。
サーバコンピュータシステム220は、アプリケーションサーバ260にアクセスを提供および/またはアプリケーションサーバ260をホスティングするよう構成されるハードウェアおよび/またはソフトウェア要素を表わす。サーバコンピュータシステム220は、ローカルサーバコンピュータシステムおよびクラウドサービスなどとして具現化され得る。サーバコンピュータシステム220は、1つ以上のコンピュータ上で実行される1つ以上のオペレーティングシステム、サーバ、サービス、およびアプリケーションなどを含み得る。サーバコンピュータシステム220は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
アプリケーションサーバ260は、ユーザがウェブベースのアプリケーションまたはネットワークベースのアプリケーションと相互作用することを可能にする1つ以上のソフトウェア要素を表わす。アプリケーションサーバ260のいくつかの例は、アプリケーション機能が何かであるかにかかわらず、アプリケーションサーバインプリメンテーションの作成に対する一般化されたアプローチを提供するソフトウェアフレームワークか、または、特定のインプリメンテーションインスタンスのサーバ部分のいずれかである。さまざまな実施形態において、アプリケーションサーバ260は、Javaプラットフォーム、エンタープライズエディション、またはAPIのコアセットおよびJavaアプリケーションサーバの機能を定義するJava EEに特有の構成で動作する。アプリケーションサーバ260は、サーブレット、JavaServer Page、およびEnterprise JavaBeansなどを含み得る。アプリケーションサーバ260は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
ADF−DIサーバコンポーネント270は、アプリケーションサーバ260の部分のような1つ以上のサーバコンポーネントを表わす。一般に、ADF−DIクライアントコンポーネント240は、ビューレイヤー110およびコントローラレイヤー120の両方として機能し、モデルレイヤー130として部分的に機能するADF−DIサーバコンポーネント270と通信して、データを同期させて、アプリケーションサーバ260によってホスティングされるアプリケーション、または、ADFモデル280を使用するアプリケーションサーバ260と通信するアプリケーションにおけるビジネスロジックを実行する。上で論じたように、モデルレイヤー130は、データ値に対して使用されるモデルレベルのビジネスルール、セキュリティおよびアプリケーションロジックとともに、アプリケーション230内のADF−DIクライアントコンポーネント240によって提示される現在のビューに関係するデータ値を表わす。この例において、ADF−DIクライアントコンポーネント240およびADF−DIサーバコンポーネント270は、エンドユーザがアプリケーション230に関連付けられる見慣れたユーザインターフェイスを利用することを可能にし、ADFモデル280にアクセスするようドキュメント250を使用してビュー/コントローラタスクを行う。
1つの局面において、デベロッパは、デザインモードにおいてドキュメント250を作成するためにアプリケーション230内で作業するよう、ADF−DIクライアントコンポーネント240を利用する。デベロッパは、アプリケーション230のネイティブツールを利用して所望の態様でドキュメント250を構造化およびフォーマットする。その後、デベロッパは、アプリケーションサーバ260にドキュメント250を統合するよう、ADF−DIクライアントコンポーネント240を使用してドキュメント250にコンポーネントを追加し得る。コンポーネントのいくつかの例は、入力コンポーネント(たとえばフォームコンポーネント)、出力コンポーネント、ラベル、リスト、ボタン、画像、およびテーブルなどである。
その後、ドキュメント250に加えられるコンポーネントは、ADF−DIサーバコンポーネント270によって提供されるまたはADF−DIサーバコンポーネント270を通じて提供される対応するモデルにマッピングされる。たとえば、モデルレイヤー130によって公開されるADF−DIサーバコンポーネント270によって提供されるまたはADF−DIサーバコンポーネント270を通じて提供される人間モデルの名前属性にドキュメント250内の入力/出力メカニズムを提供するよう、テキストボックスコンポーネントがマッピングされ得る。
1つの局面において、コンポーネントは、多くのアプリケーションによって使用され得る(または同じアプリケーションによって複数回使用され得る)機能を提供する再使用可能なエンティティである。コンポーネントは、ドキュメント250内に埋め込まれ得、0以上の視覚的表現を有し得る。視覚的表現を有さないコンポーネントは、表示されないが、何らかの他の機能を提供し得る。コンポーネントは一般に、プログラミングインターフェイス、データ結合インターフェイス、および視覚的インターフェイスのような1つ以上のインターフェイスを提供する。コンポーネント200は1つ以上の視覚的表現を有し得る。さらに以下に記載されるように、コンポーネントは、存在するモデルによってドリブンされる視覚的表現を有し得る。
1つの局面において、コンポーネントは、あるデザインタイムにて任意の数のビューを特定し得、そのいずれかがランタイムにて表示され得る。ビューアセンブリは、ランタイムにて実際に表示されるビューのセットである。アプリケーションまたはコンポーネントのためのビューアセンブリは、ある時点で表示のために選択されるビュー構成におけるビューからなる。
ひとたびすべての所望のコンポーネントが含まれ、アプリケーションサーバ260およびADFモデル280にアクセス可能なデータおよび/またはモデルメタデータにマッピングされると、ドキュメント250は、アプリケーションサーバ260上に「発行(published)」またはそうでなければ利用可能にされ得る。アプリケーションサーバ260は、ユーザがブラウザを介してドキュメントにアクセスすることを可能にする発行されたドキュメントへのダウンロードリンクを提供し得、サーバコンピュータシステム220にアクセス可能であるデータベースに格納されたデータのようなデータを閲覧、作成、および/または、操作するようアプリケーション230内において作動を開始し得る。さまざまな実施形態において、発行されたドキュメントは、コンポーネント、データマッピング、およびデベロッパがドキュメントと関連付けた任意のロジック、を定義するドキュメントメタデータとは別に格納される。いくつかの実施形態において、発行されたドキュメントはすべてのドキュメントメタデータを含む。
図3は、本発明に従った一実施形態において、図2のデスクトップ統合フレームワーク200を使用してドキュメントをデザインするための方法300のフローチャートである。図3に示される方法300の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図3に示される方法300は、ステップ310において開始する。
ステップ320において、ドキュメントが受け取られる。一般に、ドキュメントは、そのようなドキュメントをネイティブで作成するアプリケーションによってか、または、ネイティブフォーマットでドキュメントを作成するライブラリを使用して、作成される。図2に従うと、ユーザは、存在するドキュメントを開くか、または、たとえばマイクロソフトエクセルにおいて新しいスプレッドシートを作成するといったようにアプリケーション230において新しいドキュメントを作成し得る。ドキュメントデベロッパは、ネイティブおよびノンネイティブなツールを使用して任意の所望の態様でドキュメントを編集、構造化、またはフォーマットし得る。
ステップ330において、ドキュメントメタデータが受け取られる。ドキュメントメタデータは、アプリケーションサーバ260から得られるデータに基づいてドキュメントのコンテンツを与えるよう、ADF−DIクライアントコンポーネント240によって利用される情報を含む。1つの局面において、ドキュメントメタデータは、ドキュメントに含まれる各コンポーネント、および、ビジネスサービスレイヤー140において利用可能なデータまたはメタデータにコンポーネントがどのように結合されるかということを示す。ドキュメントメタデータはさらに、デベロッパによって提供されるアクセス情報、静的データ、および他のロジックまたはデータ操作情報を提供し得る。上で論じたように、デベロッパは、アプリケーションサーバ260にドキュメント250を統合するよう、ADF−DIクライアントコンポーネント240を使用してドキュメント250にコンポーネントを追加し得る。
さまざまな実施形態において、ADF−DIクライアントコンポーネント240は、ドキュメントに追加され得るいくつかまたはすべてのコンポーネントについて1つ以上の特性を含むエクスプレッションビルダーを提供する。各プロパティは、その対応するコンポーネントの挙動の局面を定義し得る。たとえば、プロパティは、コンポーネントにマッピングされるモデルもしくはオブジェクトを特定し得る、および/または、コンポーネントに対応するモデルもしくはオブジェクトの1つ以上の属性を特定し得る。別の例において、プロパティは、テーブルカラムヘッダーおよびワークシートリボンコマンドなどのようなドキュメント250の局面を特定し得る。
ステップ340において、ドキュメントおよびドキュメントメタデータが発行される。上で論じたように、発行されたドキュメントは、ドキュメントメタデータとは別に格納され得る。いくつかの実施形態において、発行されたドキュメントは、ドキュメントメタデータのすべてまたは一部を含み得る。一般に、発行されたドキュメントは、ADF−DIクライアントコンポーネント240が、ドキュメントを初期化し、ADF−DIサーバコンポーネント270からの付加的な情報を要求して、ランタイムにてユーザのためにドキュメント250のコンテンツを与えることを可能にする少なくとも十分なメタデータを含む。図3はステップ350で終了する。
ランタイムの間、ユーザは発行されたドキュメント250をダウンロードし、アプリケーション230を用いてそれを開く。一実施形態において、ADF−DIクライアントコンポーネント240は、アプリケーションプラグインまたはモジュールとしてインストールされている。その後、ADF−DIクライアントコンポーネント240は、ドキュメント250がフレームワークコンポーネントを含むよう記述されていることを検出し得、かつ、ドキュメントメタデータ、実データ、および、実行される必要がある任意のロジックを要求するようADF−DIサーバコンポーネント270にコンタクトする。たとえば、ADF−DIクライアントコンポーネント240はまず、どのコンポーネントが含められるべきかと当該コンポーネントをどこに含むべきかとを定義するドキュメントメタデータを、ADF−DIサーバコンポーネント270からまたはADF−DIサーバコンポーネント270を通じて抽出し得る。ADF−DIクライアントコンポーネント240は、選択されたコンポーネントが使用するかまたはそうでなければ動作することになるADFモデル280からのデータを、ADF−DIサーバコンポーネント270からまたはADF−DIサーバコンポーネント270を通じて抽出し得る。ADF−DIクライアントコンポーネント240はさらに、ドキュメント250に関連付けられる任意のロジックをADF−DIサーバコンポーネント270からまたはADF−DIサーバコンポーネント270を通じて抽出し得る。その後、最終的に、ADF−DIクライアントコンポーネント240は、ドキュメントメタデータ、実データおよびロジックを利用してドキュメント250のコンテンツを与え得る。
したがって、ユーザは、ドキュメントテンプレートを抽出し得るとともに、ADF−DIクライアントコンポーネント240によって実行される処理とアプリケーションサーバ260から得られたデータとに基づき自動的に更新およびフォーマットされたドキュメントコンテンツを有し得る。その後、ユーザは、アプリケーション230に関連付けられる見慣れたユーザインターフェイスを利用して、ドキュメント250を使用してタスクを実行する。
さまざまな局面において、ユーザがドキュメント250と相互作用または操作する際に、ADF−DIクライアントコンポーネント240およびADF−DIサーバコンポーネント270は、通信したままであり得、これにより更新を送信および受信する。モデルレイヤー130における対応するモデルのデータへのドキュメント250の1つ以上のコンポーネント内でなされた変更は、ADFモデル280において持続され得る。
図4は、本発明に従った一実施形態において、図2のデスクトップ統合フレームワーク200を使用してドキュメントと相互作用するための方法400のフローチャートである。図4に示される方法400の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図4に示される方法400は、ステップ410において開始する。
ステップ420において、ドキュメントが受け取られる。図2に従うと、ユーザは、たとえばドキュメントリンクをクリックすることによって、所望のドキュメントを抽出するようアプリケーションサーバ260と相互作用し得る。ドキュメントは、クライアントコンピュータシステム210にダウンロードまたはそうでなければ通信され得、アプリケーション230において開かれ得る。
ステップ430において、ドキュメントメタデータが処理される。上で論じたように、ドキュメントメタデータは、アプリケーションサーバ260から得られたデータに基づいてドキュメントのコンテンツを与えるよう、ADF−DIクライアントコンポーネント240によって利用される情報を含む。したがって、ADF−DIクライアントコンポーネント240は、どのコンポーネントがドキュメントに追加されるべきかと、どこに追加されるべきかとを決定する。ADF−DIクライアントコンポーネント240はさらに、何のデータが各コンポーネントによって使用されるかと、何のデータがデベロッパによって定義される任意のロジックを適用するかとを決定する。
ステップ440において、ドキュメントデータが処理される。上で論じたように、発行されたドキュメントは、ドキュメントメタデータとドキュメントによって使用される実データとは別に格納され得る。一般に、発行されたドキュメントは、ADF−DIクライアントコンポーネント240が、ドキュメントを初期化し、ADF−DIサーバコンポーネント270からの付加的な情報を要求して、ユーザのためにドキュメント250のコンテンツを与えることを可能にする少なくとも十分なメタデータを含む。
ステップ450において、ドキュメントが与えられる。上で論じたように、ADF−DIクライアントコンポーネント240は、選択されたコンポーネントが使用するかまたはそうでなければ動作することになるADFモデル280からのデータを、ADF−DIサーバコンポーネント270からまたはADF−DIサーバコンポーネント270を通じて抽出し得る。ADF−DIクライアントコンポーネント240はさらに、ドキュメント250に関連付けられる任意のロジックをADF−DIサーバコンポーネント270からまたはADF−DIサーバコンポーネント270を通じて抽出し得る。その後、最終的に、ADF−DIクライアントコンポーネント240は、ドキュメントメタデータ、実データおよびロジックを利用してドキュメント250のコンテンツを与え得る。
ステップ460において、ドキュメントに対する更新が存在するかどうかについて決定がなされる。ドキュメントへの更新が存在し得るさまざまな理由が存在し得る。ユーザがドキュメント250と相互作用するかまたはドキュメント250を操作する際、ADF−DIクライアントコンポーネント240およびADF−DIサーバコンポーネント270は、更新を送信および受信するよう通信したままであり得る。モデルレイヤー130における対応するモデルのデータへのドキュメント250の1つ以上のコンポーネント内でなされた変更は、ADFモデル280において持続され得る。いくつかの実施形態において、ユーザによる相互作用は新しいデータセットを必要とする場合がある。したがって、方法400のフローは、ステップ450において与えられる付加的なドキュメントデータを処理するようステップ440に戻る。図4はステップ470で終了する。
モデルドリブンの局面
さまざまな実施形態において、デスクトップ統合フレームワーク200は、デベロッパが、ビューおよびデータが対応するモデルまたはモデル属性によってドリブンされるコンポーネントドキュメント250を含めることを可能にする。1つの局面において、コンポーネントは、ユーザのマウスがデータの部分上にある場合またはデータが選択される場合に表示されるコンポーネントの与えられたコンテンツに関する有用な情報を含むツールティップ(tool tip)を提供し得る。ツールティップは、モデルまたはオブジェクトを介して定義され得、ドキュメントのコンポーネントが与えられる際に自動的に構成され得る。別の局面において、リストコンポーネントの要素には、モデルまたはオブジェクトに関連付けられる1つ以上の属性の以前に存在した値がポピュレートされ得る。したがって、デベロッパは、ドキュメントが与えられる場合にコンポーネントが提示するビューにおける値を特定することが必要とされない。
図5は、本発明に従った一実施形態において、基礎をなすモデルによってビューがドリブンされ得るドキュメントコンポーネントのスクリーンショット500の図である。この例において、ツリー510は、ドキュメント250において提示され得る1つ以上のビューのリストを提供する。この例において、EmpView520は、「Empno」、「Ename」、「Job」、「Mgr」などとラベル付けされたテキスト、リスト、画像、および日付などといった1つ以上のコンポーネントを含む。
1つの局面において、コンポーネント530に関連付けられる従業員オブジェクトの基礎をなすデータモデルまたは属性が「Hiredate」とラベル付けされる。当該データモデルまたは属性は、所与の従業員が組織によって雇われた日付に関連付けられる日付値を格納するように構成される。さまざまな実施形態において、コンポーネント530のビューまたは挙動は、デベロッパによるさらなる別の構成が存在しない日付値(date value absent further configuration)を属性が格納するという事実によってドリブンされ得る。たとえば、コンポーネント530に対応するセルを有するエクセルワークブックをADF−DIクライアントコンポーネント240が与える時に、ADF−DIクライアントコンポーネント240は、ユーザが従業員の雇用の日付を表わす値を格納するセルを選択すると、エクセルのネイティブの機能内または機能外にて日付ポップアップが提供され、これによりユーザが新しい雇用日付を選択または既存の雇用日付を修正することを可能にするように、セルを構成し得る。
別の局面において、コンポーネント540に関連付けられる従業員オブジェクトの基礎をなすデータモデルまたは属性は「Deptno」とラベル付けされる。当該データモデルまたは属性は、ある従業員に関連付けられる部門またはチームについての識別子を格納するように構成される。さまざまな実施形態において、コンポーネント540のビューまたは挙動は、属性が、デベロッパによるさらなる別の構成が存在しないデータモデル(data model absent further configuration)において特定される複数の所定の値のうちの1つを格納するという事実によってドリブンされ得る。たとえば、コンポーネント540に対応するセルを有するエクセルワークブックをADF−DIクライアントコンポーネント240が与える時に、ADF−DIクライアントコンポーネント240は、従業員が割り当てられている部門またはチームを表わす値を格納するセルをユーザが選択すると、ドロップダウンリストがエクセルのネイティブの機能内または機能外にて提供され、これによりデータモデルから導き出される部門またはチームの所定のリストからユーザが選択することを可能にするように、セルを構成し得る。
図6は、本発明に従った一実施形態において、図2のデスクトップ統合フレームワーク200を使用してコンポーネントのモデルドリブンの局面をデザインするための方法600のフローチャートである。図6に示される方法600の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図6に示される方法600は、ステップ610において開始する。
ステップ620において、コンポーネント仕様が受け取られる。一般に、コンポーネント仕様は、当該コンポーネントがどのように定義されるかを特定する情報を指す。図2に従うと、アプリケーション230において、デベロッパは、存在するドキュメントを開くか、または、たとえばマイクロソフトエクセルにおいて新しいスプレッドシートを作成するといったように新しいドキュメントを作成し得る。次いで、デベロッパは、ネイティブおよびノンネイティブなツールを使用して任意の所望の態様でドキュメントを編集、構造化、またはフォーマットし得る。さらに、デベロッパは、複数の所定のコンポーネントから選択を行い、それらのコンポーネントをドキュメント250に追加し得る。
ステップ630において、データ結合仕様が受け取られる。一般に、データ結合仕様は、そのソースなどのようなデータとコンポーネントがどのように相互作用するかを特定する情報を指す。さまざまな実施形態において、ADF−DIクライアントコンポーネント240は、この情報を利用して、コンポーネント仕様に加えてコンポーネントをさらに構成する。1つの局面において、ADF−DIクライアントコンポーネント240は、コンポーネントに関連付けられる1つ以上のモデルまたはオブジェクトに基づいて、各コンポーネントがどのように1つ以上のビューを提示するかを示す。ADF−DIクライアントコンポーネント240は、モデル局面および値などを抽出して、コンポーネントと、任意の関連付けられるビューと、関連付けられる挙動とを構成するようADF−DIサーバコンポーネント270と相互作用し得る。さまざまな実施形態において、ADF−DIクライアントコンポーネント240は、ユーザが上に論じられたエクスプレッションビルダーを使用することに応答して、コンポーネント仕様およびデータ結合仕様を受け取り得る。
ステップ640において、コンポーネントのモデルドリブンの局面が決定される。ADF−DIクライアントコンポーネント240は、ADFモデル280における属性プロパティまたはヒントとして知られるモデル局面および値などを抽出してコンポーネント、任意の関連付けられるビュー、および関連付けられる挙動を構成するようADF−DIサーバコンポーネント270と相互作用し得る。構成情報は、発行されたドキュメントに関連付けられ得るドキュメントメタデータに格納され得る。
一例において、ユーザに提示されるラベルは、当該ラベルに対応するデータオブジェクトの名称としばしば異なる。たとえば、「EmpName」と称される属性が存在する場合、UIにおいて、デベロッパは、「従業員名」を表示することを望む。大抵のUIフレームワークは、デベロッパがユーザフレンドリなラベルを特定することを可能にする。しかしながら、現われる必要がある各場所にユーザフレンドリなラベルを特定することは効率的ではない。「モデルドリブン」なアプローチは、モデルレベルにてEmpName属性にユーザフレンドリなラベルを関連付けることである。その後、EmpNameを与えることを望む各UI要素(ページ、ワークシートなど)は、デザインタイムにおいてEmpNameのラベルを間接的に「参照」し、ランタイムにてそれを動的にフェッチする。このアプローチは、データオブジェクトのさまざまな異なる潜在的なプロパティに適用される。他の例は「読取専用」、「必須」などを含む。図6はステップ650で終了する。
メタデータ管理
いくつかの実施形態において、ワークブック統合を定義するメタデータは、メタデータサービスによって管理され得る。図7は、本発明に従った一実施形態においてメタデータ管理を提供する、図2のデスクトップ統合フレームワーク200における相互作用を示すブロック図である。この例において、ドキュメントメタデータは、デザインタイムおよびランタイムの両方においてリポジトリ295内部に格納され得る。ドキュメント250がたとえばカスタマーサイトにおいて発行された後、リポジトリ295においてメタデータがカスタマイズされ得る。ADF−DIサーバコンポーネント270は、管理ルールのセットに基づいてドキュメントメタデータの1つ以上のバージョンを提供するようメタデータサーバ290と通信する。管理ルールは、たとえば時間、日付、ユーザの役割、構成などのようなドキュメントがメタデータのどのバージョンを利用するかを規定する基準および/または条件を定義し得る。これは、より多くの機能が追加される場合のように、ワークブック定義スキーマが時間にわたり変化することを可能にする。
したがって、さまざまな実施形態において、デスクトップ統合フレームワーク200は、カスタマイズ可能なものとしてデベロッパがワークブックを指定することを可能にする。デベロッパは、良好に定義されたワークブック初期化ポイントにて、メタデータサーバ290から抽出されるワークブックメタデータを構成し得る。ワークブックメタデータは、現在のユーザのカスタマイゼーションのコンテキストについてカスタマイズされ得る。別の局面において、ランタイムワークブックは、メタデータサーバ290から抽出されたカスタマイズされたメタデータを使用して与えられ得る。
さまざまな実施形態において、ADF−DIクライアントコンポーネント240は、ADF−DIサーバコンポーネント270へドキュメントメタデータを転送し、ADF−DIサーバコンポーネント270は、メタデータサーバ290にワークブック定義ファイル(ベースドキュメントメタデータ)およびカスタマイゼーションを格納させる。デベロッパは、ベースドキュメントおよび/またはカスタマイゼーションを管理するためのファイルベースまたはデータベースリポジトリを使用するよう選択し得る。
図8は、本発明に従った一実施形態において、メタデータ管理を提供する、図7のデスクトップ統合フレームワーク間の相互作用を示すブロック図である。ブロック810において、クラスパス上において対応するワークブック定義ファイルを特定するよう、暗示されたメタデータパスが使用され得るような態様で、カスタマイゼーションが可能にされたワークブックが発行される。たとえば、デザインタイムワークブックを「/PROJECT_ROOT/src/apps/workbooks/myDTWorkbook.xlsx」として、それが発行される場合、当該ワークブック定義ファイルは、「/PROJECT_ROOT/src/apps/workbooks/myDTWorkbook.xlsx-workbook-definition.xml」に生成される。アプリケーションが展開されると、このワークブック定義ファイルは、パス「/apps/workbooks/myDTWorkbook.xlsx-workbook-definition.xml」を使用して、クラスパスリポジトリによって発見され得る。したがって、ランタイムワークブックは、暗示されたメタデータパスを使用してそのワークブックメタデータをロードし得るために、「/PROJECT_ROOT/public_html/oracle/apps/workbooks/」フォルダに発行されるべきである。上で論じたように、デベロッパは、ベースドキュメントおよび/またはカスタマイゼーションを管理するためのファイルベースまたはデータベースリポジトリを使用するよう選択し得る。
ブロック820におけるワークブック初期化の際、ADF−DIクライアントコンポーネント240は、現在のワークブックのメタデータについて、サーバコンピュータシステム220への要求を発する。ブロック830において、ADF−DIサーバコンポーネント270は、MDSセッション(たとえば現在のADFコンテキスト(ADF Context)からメタデータサーバ290を介して標準的なMDSセッション)を使用してワークブックメタデータを抽出する。MDSセッションに関連付けられるカスタマイゼーションのコンテキストに基づいて、メタデータサーバ290はワークブックメタデータに全てのカスタマイゼーションを適用する。ブロック820において、カスタマイズされたワークブックメタデータは、ADF−DIクライアントコンポーネント240に返され、ワークブックのメタデータキャッシュに書き込まれる。ブロック860において、キャッシュされたカスタマイズされたワークブックメタデータは、ランタイムワークブックを初期化するよう使用される。
図9は、本発明に従った一実施形態において、1つ以上のカスタマイゼーションを含む図2のデスクトップ統合フレームワーク200を使用してドキュメントを実行するための方法900のフローチャートである。図9に示される方法900の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図9に示される方法900は、ステップ910において開始する。
ステップ920において、ドキュメントおよび初期メタデータが受け取られる。たとえば、ユーザは、発行されたドキュメント250をアプリケーションサーバ260からダウンロードすることを要求し得る。ステップ930において、メタデータカスタマイゼーションが要求される。1つの局面において、ドキュメントダウンロードは、ドキュメント250にて完了し得、その時、ドキュメント250がアプリケーション230で開かれ得る。その後、ADF−DIクライアントコンポーネント240は、ドキュメント250が与えられる必要があると検出し得る。ADF−DIクライアントコンポーネント240はADF−DIサーバコンポーネント270とコンタクトし、ドキュメントのデザインに従って与えられるべきドキュメントメタデータおよび任意の実データを得る。
さまざまな局面において、ワークブック初期化の際、ADF−DIクライアントコンポーネント240は、現在のワークブックのメタデータについてサーバコンピュータシステム220への要求を発する。ADF−DIサーバコンポーネント270は、メタデータサーバ290を介して現在のADFコンテキストから標準MDSセッションを得、このMDSセッションを使用してワークブックメタデータを抽出する。MDSセッションに関連付けられるカスタマイゼーションのコンテキストに基づいて、メタデータサーバ290は、ワークブックメタデータに全てのカスタマイゼーションを適用する。カスタマイズされたワークブックメタデータは、ADF−DIクライアントコンポーネント240に返される。カスタマイズされたワークブックメタデータは、ランタイムワークブックを初期化するために使用される。
ステップ940において、ドキュメントおよびカスタマイズされたメタデータが処理される。ADF−DIクライアントコンポーネント240は、コンポーネントの配置を決定し、ステップ950においてADF−DIサーバコンポーネント270によって提供される実データを利用して当該コンポーネントをドキュメント250のコンテンツとして与える。図9はステップ960で終了する。
ワークブックコンポーザ
さまざまな実施形態において、カスタマイゼーションがさまざまなツールおよびインターフェイスを利用してなされ得る。エンドユーザがデスクトップ統合フレームワークを使用して開発されたドキュメントのランタイムカスタマイゼーションを提供することを可能にする方法、システムおよび一時的でないコンピュータ読取可能媒体が開示される。ワークブックメタデータは、所与のワークブックが特定のウェブアプリケーションにどのように統合されるか記述する情報のセットである。ワークブックが発行されている場合、メタデータは、発行されたワークブックにおけるローカルキャッシュとワークブック定義ファイルとに書き込まれ得る。メタデータ管理は、メタデータサービスによって扱われ得、発行されたワークブックおよびワークブック定義ファイルにおけるローカルキャッシュから独立して、発行されたワークブックの更新およびカスタマイゼーションを可能にする。ワークブックカスタマイゼーションエディタは、統合されたワークブックのさまざまなカスタマイゼーションを実行するために使用される。
図10は、本発明に従った一実施形態においてメタデータをカスタマイズするためのユーザインターフェイス1000のスクリーンショットである。この例において、ユーザインターフェイス1000は、統合されたワークシートを所与のワークブックから選択する能力、選択されたワークシート上のコンポーネントを閲覧および選択する能力、または、選択されたコンポーネントを編集または削除する能力を提供する。いくつかの実施形態において、ユーザインターフェイス1000は、新しいワークシートを追加する能力、新しいコンポーネントを追加する能力、または、アクションセットのような既存のコンポーネントの高度なプロパティを編集する能力を提供し得る。
動作の一例において、ウェブアプリケーションが送られて、Acme社にインストールされる。Acme社のビジネスアナリストであるラルフは、統合されたワークブックをレビューし、いくつかの調節が必要であると判断する。ラルフは、ウェブアプリケーションにログインし、ユーザインターフェイス1000にナビゲートする。ラルフは、ベースワークブックの新しいカスタマイゼーションを作成することを決定する。ラルフは、テーブルにおける標準的な65カラムから5カラムを除去する。なぜならば、ラルフは、Acme社がそれらのカラムを必要としない/望まないことを知っているからである。ラルフはカスタマイゼーションを保存する。ここで、当該カスタマイゼーションは、ワークブックカスタマイゼーションに関連付けられるカスタマイゼーションのコンテキストと一致するユーザについて利用可能である。そのようなユーザは、60カラムを有するテーブルを見ることになる。
別の例において、ユーザインターフェイス1000は、承認されたユーザが所与の統合されたワークブックのさまざまな局面を編集することを可能にするADFタスクフロー(ADF Task Flow)の部分を形成する。上で論じたように、ユーザインターフェイス1000は、選択されたワークブックから、統合されたワークシートのリストを提供し得る。ユーザインターフェイス1000は、ユーザがワークブックおよび/またはワークシートを選択および/または削除することを可能にする機能を含み得る。ユーザインターフェイス1000は、選択されたワークシートに現われるかまたはそうでなければ選択されたワークシートに関連付けられるコンポーネントのリストを含み得る。ユーザインターフェイス1000は、ユーザがコンポーネントを選択し、削除し、編集することを可能にする機能を含み得る。ユーザインターフェイス1000は、ユーザがテキスト入力(Input-Text)、テキスト出力(Output-Text)、ラベル(Label)、値のリスト(List-of-Values)といったコンポーネントのプロパティを編集することができる機能を含み得る。たとえば、ドキュメント250のデベロッパは、コンポーネントID、値、注釈などといったコンポーネントのどの局面が閲覧可能(閲覧のみ)であるか、または、スタイル、ツールティップ、リードオンリ、ポジションのように編集可能であるか特定し得る。デベロッパは、たとえばソース、ShortDesc、ポジションなどといったイメージコンポーネントについて、また、ラベル、ポジションなどといったボタンコンポーネントについて、コンポーネントのどの局面が編集可能であるか特定し得る。別の局面において、デベロッパは、テーブルコンポーネントのどの局面が閲覧可能(閲覧のみ)および編集可能であるかを特定し得る。いくつかの例は、コンポーネントの削除のみで編集可能でない読取専用テーブルを含むか、または、ポジション、カラムの編集(削除、編集、再配置すべきかどうか)、セル/ヘッダスタイル、ツールティップ、ビジブル(Visible)、ヘッダラベルの編集を許可し、かつ、特別なカラムの削除を防止する。
さまざまな局面において、ホストアプリケーションは、(メタデータパスおよびワークブック名を含む)編集されるべきワークブックおよびカスタマイゼーションのコンテキストのようなさまざまな情報をユーザインターフェイス1000に提供する。さらに、ホストアプリケーションは、ユーザインターフェイス1000のどのユーザがどのワークブック(存在する場合)を編集してもよいのかを制御することを担い得る。
結論
図のうちのいくつかに示されるシステムは、さまざまな構成で提供され得る。いくつかの実施形態において、システムは、システムの1つ以上のコンポーネントがクラウドコンピューティングシステムにおいて1つ以上のネットワークにわたって分散される分散システムとして構成され得る。
図11は、実施形態のうちの1つを実現するための分散システム1100の簡略図を示す。例示される実施形態において、分散システム1100は、1つ以上のネットワーク1110にわたって、ウェブブラウザまたはプロプラエタリクライアント(たとえばオラクルフォームズ(Oracle Forms)などといったクライアントアプリケーションを実行および動作するように構成される1つ以上のクライアントコンピューティングデバイス1102、1104、1106および1108を含む。サーバ1112は、ネットワーク1110を介してリモートクライアントコンピューティングデバイス1102、1104、1106および1108と通信可能に結合され得る。
さまざまな実施形態において、サーバ1112は、システムのコンポーネントのうちの1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、または、ソフトウェアアズアサービス(SaaS:Software as a Service)モデルで、クライアントコンピューティングデバイス1102、1104、1106および/または1108のユーザに提供され得る。クライアントコンピューティングデバイス1102、1104、1106および/または1108を操作するユーザは、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを利用するようサーバ1112と相互作用する。
図に示される構成において、システム1100のソフトウェアコンポーネント1118、1120および1122は、サーバ1112上で実現されるのが示される。他の実施形態において、システム1100のコンポーネントおよび/またはこれらのコンポーネントによって提供されるサービスのうちの1つ以上が、クライアントコンピューティングデバイス1102、1104、1106および/または1108の1つ以上によって実現され得る。次いで、クライアントコンピューティングデバイスを操作するユーザは、1つ以上のクライアントアプリケーションを利用し、これらのコンポーネントによって提供されるサービスを使用する。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェアまたはその組合せで実現され得る。分散システム1100と異なり得るさまざまな異なるシステム構成が可能であるということが認識されるべきである。したがって、図において示される実施形態は、実施形態のシステムを実現するための分散システムの一例であり、限定するようには意図されない。
クライアントコンピューティングデバイス1102、1104、1106および/または1108は、ポータブルハンドヘルドデバイス(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))もしくはウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)であり得るか、または、Microsoft Windows Mobile(登録商標)のような実行しているソフトウェアおよび/もしくはiOS、Windows Phone、Android、BlackBerry10およびPalm OSなどといったさまざまなモバイルのオペレーティングシステムであるか、または、インターネット、電子メール、ショートメッセージサービス(SMS:short message service)、Blackberry(登録商標)または他の通信プロトコルが有効化されたものである。クライアントコンピューティングデバイスは、例としてMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンが実行されるパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用のパーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、たとえばGoogle ChromeOSのようなさまざまなGNU/Linuxオペレーティングシステムを含むがそれらに限定されないさまざまな商業的に利用可能なUNIX(登録商標)またはUNIXライクなオペレーティングシステムのいずれかが実行されるワークステーションコンピュータであり得る。代替的または付加的には、クライアントコンピューティングデバイス1102、1104、1106および1108は、シンクライアントコンピュータ、インターネットが有効化されたゲームシステム(たとえばKinect(登録商標)ジェスチャ入力デバイスを有するかまたは有さないMicrosoft Xboxゲームコンソール)、および/または、パーソナルメッセージデバイスといった、ネットワーク1110上で通信可能である任意の他の電子デバイスであり得る。
例示的な分散システム1100が4つのクライアントコンピューティングデバイスを有するのが示されるが、任意数のクライアントコンピューティングデバイスがサポートされ得る。センサなどを有するデバイスのような他のデバイスがサーバ1112と相互作用し得る。
分散システム1100におけるネットワーク1110は、さまざまな商業的に利用可能なプロトコルのうちのいずれかを使用してデータ通信をサポートし得る当業者によく知られている任意のタイプのネットワークであり得、当該プロトコルは、TCP/IP(transmission control protocol/Internet protocol;トランスミッションコントロールプロトコル/インターネットプロトコル)、SNA(systems network architecture;システムネットワークアーキテクチャ)、IPX(Internet packet exchange;インターネットパケットエクスチェンジ)、およびAppleTalkなどを含むがこれらに限定されない。単に例として、ネットワーク1110は、イーサネット(登録商標)および/またはトークンリングなどに基づいたもののようなローカルエリアネットワーク(LAN)であり得る。ネットワーク1110はワイドエリアネットワークおよびインターネットであり得る。ネットワーク1110はバーチャルネットワークを含み得、当該バーチャルネットワークは、バーチャルプライベートネットワーク(VPN:virtual private network)、イントラネット、エクストラネット、公衆交換電話網(PSTN:public switched telephone network)、赤外線ネットワーク、無線ネットワーク(たとえばIEEE(Institute of Electrical and Electronics;電気電子技術者協会)802.11スイート、Bluetooth(登録商標)、および/もしくは任意の他の無線プロトコルのいずれかに基づき動作するネットワーク)、ならびに/または、これらおよび/もしくは他のネットワークの任意の組合せを含むがこれらに限定されない。
サーバ1112は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む)、サーバファーム、サーバクラスタまたは任意の他の適切な構成および/もしくは組合せから構成され得る。さまざまな実施形態において、サーバ1112は、上記の開示に記載される1つ以上のサービスまたはソフトウェアアプリケーションを実行するよう適合され得る。たとえば、サーバ1112は、本開示の実施形態に従った、上に記載された処理を実行するためのサーバに対応し得る。
サーバ1112は、上に論じられたもののいずれかを含むオペレーティングシステムと、任意の商業的に利用可能なサーバオペレーティングシステムとを実行し得る。サーバ1112はさらに、HTTP(hypertext transport protocol;ハイパーテキストトランスポートプロトコル)サーバと、FTP(file transfer protocol;ファイル転送プロトコル)サーバと、CGI(common gateway interface;コモンゲートウェイインターフェイス))サーバと、JAVA(登録商標)サーバと、データベースサーバなどとを含む、さまざまな付加的なサーバアプリケーションおよび/または中間層アプリケーションのいずれかを実行し得る。例示的なデータベースサーバは、オラクル、マイクロソフト、Sybase、IBM(International Business Machines)などから商業的に利用可能なものを含むがこれらに限定されない。
いくつかの実現例において、サーバ1112は、クライアントコンピューティングデバイス1102、1104、1106および1108のユーザから受け取られるデータフィードおよび/またはイベント更新を分析および統合するよう、1つ以上のアプリケーションを含み得る。例として、データフィードおよび/またはイベント更新は、Twitter(登録商標)フィード、Facebook(登録商標)更新、または、1つ以上のサードパーティ情報ソースおよび連続的なデータストリームから受け取られるリアルタイム更新を含み得るがこれらに限定されない。当該リアルタイム更新は、センサデータアプリケーション、金融相場表示器(financial ticker)、ネットワークパフォーマンス測定ツール(たとえばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、および自動車交通監視などに関連付けられるリアルタイムイベントを含み得る。サーバ1112はさらに、クライアントコンピューティングデバイス1102、1104、1106および1108の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するために1つ以上のアプリケーションを含み得る。
分散システム1100はさらに、1つ以上のデータベース1114および1116を含み得る。データベース1114および1116はさまざまな場所に存在し得る。例として、データベース1114および1116のうちの1つ以上は、サーバ1112に対してローカルである(および/またはサーバ1112に存在する)一時的でないストレージ媒体上に存在し得る。代替的には、データベース1114および1116は、サーバ1112からリモートであり得、ネットワークベースまたは専用の接続を介してサーバ1112と通信し得る。実施形態の1つのセットにおいて、データベース1114および1116は、ストレージエリアネットワーク(SAN:storage-area network)に存在し得る。同様に、サーバ1112に起因する機能を実行するための任意の必要なファイルは、適切なように、サーバ1112上にローカルにおよび/またはリモートに格納され得る。実施形態の1つのセットにおいて、データベース1114および1116は、オラクルによって提供されるデータベースのような、SQLフォーマットのコマンドに応答してデータを格納、更新および抽出するように適合されるリレーショナルデータベースを含み得る。
図12は、本発明のさまざまな実施形態が実現され得る例示的なコンピュータシステム1200を示す。システム1200は、上に記載されたコンピュータシステムのいずれかを実現するよう使用され得る。当該図に示されるように、コンピュータシステム1200は、バスサブシステム1202を介して多くの周辺サブシステムと通信する処理ユニット1204を含む。これらの周辺サブシステムは、処理加速ユニット1206、I/Oサブシステム1208、ストレージサブシステム1218、および通信サブシステム1224を含み得る。ストレージサブシステム1218は、有形的なコンピュータ読取可能ストレージ媒体1222およびシステムメモリ1210を含む。
バスサブシステム1202は、コンピュータシステム1200のさまざまなコンポーネントおよびサブシステムを意図されるように互いと通信させるためのメカニズムを提供する。バスサブシステム1202は単一のバスとして概略的に示されるが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム1202は、メモリバスまたはメモリコントローラと、周辺バスと、さまざまなバスアーキテクチャのうちのいずれかを使用するローカルバスとを含むいくつかのタイプのバス構造のうちのいずれかであり得る。たとえば、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA:Industry Standard Architecture)バスと、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)バスと、エンハンスドISA(EISA:Enhanced ISA)バスと、ビデオエレクトロニクス標準組織(VESA:Video Electronics Standards Association)ローカルバスと、IEEE P1386.1規格に対して製造されるメザニーン(Mezzanine)バスとして実現され得るペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)バスとを含み得る。
1つ以上の集積回路として実現され得る処理ユニット1204(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)は、コンピュータシステム1200の動作を制御する。1つ以上のプロセッサが処理ユニット1204に含まれ得る。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。ある実施形態において、処理ユニット1204は、各処理ユニットに含まれるシングルまたはマルチコアプロセッサを有する1つ以上の独立した処理ユニット1232および/または1234として実現され得る。他の実施形態において、処理ユニット1204はさらに、シングルチップに2つのデュアルコアプロセッサを統合することにより形成されるクアッドコア処理ユニットとして実現され得る。
さまざまな実施形態において、処理ユニット1204は、プログラムコードに応答してさまざまなプログラムを実行し得、複数の同時に実行されているプログラムまたはプロセスを維持し得る。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、プロセッサ1204および/またはストレージサブシステム1218において存在し得る。好適なプログラミングを通じて、プロセッサ1204は上に記載されたさまざまな機能を提供し得る。コンピュータシステム1200はさらに、デジタル信号プロセッサ(DSP)および/または特殊目的プロセッサなどを含み得る処理加速ユニット1206を含み得る。
I/Oサブシステム1208は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含み得る。ユーザインターフェイス入力デバイスは、キーボードと、マウスまたはトラックボールのようなポインティングデバイスと、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーンと、スクロールホイールと、クリックホイールと、ダイヤルと、ボタンと、スイッチと、キーパッドと、音声コマンド認識システムを有する音声入力デバイスと、マイクロフォンと、他のタイプの入力デバイスとを含み得る。ユーザインターフェイス入力デバイスは、たとえば、ジェスチャおよび音声コマンドを使用する自然なユーザインターフェイスを通じて、ユーザがMicrosoft Xbox(登録商標)360ゲームコントローラのような入力デバイスを用いて制御および相互作用を行い得るMicrosoft Kinect(登録商標)モーションセンサのようなモーション感知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェイス入力デバイスはさらに、Google Glass(登録商標)まばたき検出器のようなアイジェスチャ(eye gesture)認識デバイスを含み得る。当該アイジェスチャ認識デバイスは、ユーザの目の活動(たとえば写真を撮る間またはメニューの選択をする間の「まばたき」)を検出し、入力デバイス(たとえば、Google Glass(登録商標))への入力としてアイジェスチャを変換する。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通じて音声認識システム(たとえばSiri(登録商標)ナビゲータ)と相互作用することを可能にする音声認識検出デバイスを含み得る。
ユーザインターフェイス入力デバイスはさらに、3次元(3D)マウスと、ジョイスティックまたはポインティングスティックと、ゲームパッドおよびグラフィックタブレットと、スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤー、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離測定器および視線トラッキングデバイスといったオーディオ/ビジュアルデバイスとを含み得るがこれらに限定されない。さらに、ユーザインターフェイス入力デバイスはたとえば、コンピュータ断層撮影デバイス、磁気共鳴映像デバイス、ポジトロン断層(position emission tomography)デバイス、医療超音波検査デバイスといった医療用画像入力デバイスを含み得る。ユーザインターフェイス入力デバイスはさらに、たとえばMIDIキーボードおよびデジタル楽器などのような音声入力デバイスを含み得る。
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスのような非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するもののようなフラットパネルデバイス、投写デバイス、およびタッチスクリーンなどであり得る。一般に、「出力デバイス」という用語の使用は、コンピュータシステム1200からユーザまたは他のコンピュータに情報を出力するためのすべての可能なタイプのデバイスおよびメカニズムを含むように意図される。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムといった、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまなディスプレイデバイスを含み得るがこれらに限定されない。
コンピュータシステム1200は、現在、システムメモリ1210内に位置するのが示されているソフトウェア要素を含むストレージサブシステム1218を含み得る。システムメモリ1210は、処理ユニット1204上でロード可能および実行可能であるプログラム命令と、これらのプログラムの実行の間に生成されるデータとを格納し得る。
コンピュータシステム1200の構成およびタイプに依存して、システムメモリ1210は、(ランダムアクセスメモリ(RAM)のように)揮発性および/または(リードオンリメモリ(ROM)、フラッシュメモリなどのように)不揮発性であり得る。RAMは典型的に、処理ユニット1204に直ちにアクセス可能であるか、または、処理ユニット1204によって現在動作および実行されているデータおよび/もしくはプログラムモジュールを含む。いくつかの実現例において、システムメモリ1210は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)のような複数の異なるタイプのメモリを含み得る。いくつかの実現例において、たとえば起動の間、コンピュータシステム1200内において要素間で情報を転送するのを補助する基本ルーチンを含む基本入出力システム(BIOS)は、典型的にROMに格納され得る。限定ではなく例として、システムメモリ1210はさらに、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS:relational database management system)などを含み得るアプリケーションプログラム1212と、プログラムデータ1214と、オペレーティングシステム1216とを示す。例として、オペレーティングシステム1216は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステム、さまざまな商業的に利用可能なUNIX(登録商標)またはUNIXライクのオペレーティングシステムのさまざまなバージョン(さまざまなGNU/LinuxオペレーティングシステムおよびGoogle Chrome(登録商標)OSなどを含むがこれらに限定されない)、および/または、iOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10 OSおよびPalm(登録商標)OSオペレーティングシステムといったモバイルオペレーティングシステムを含み得る。
ストレージサブシステム1218はさらに、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形的なコンピュータ読取可能ストレージ媒体を提供し得る。プロセッサによって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、指示)がストレージサブシステム1218に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット1204によって実行され得る。ストレージサブシステム1218は、さらに本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
ストレージサブシステム1200はさらに、コンピュータ読取可能ストレージ媒体1222に接続され得るコンピュータ読取可能ストレージ媒体リーダ1220を含み得る。一緒および随意に、システムメモリ1210と組み合わせて、コンピュータ読取可能ストレージ媒体1222は、リモートストレージデバイス、ローカルストレージデバイス、固定ストレージデバイス、および/または、リムーバブルストレージデバイスに加え、コンピュータ読取可能な情報を一時的および/またはより永久的に包含、格納、送信、および抽出するためのストレージ媒体を包括的に表す。
コードまたはコードの部分を含むコンピュータ読取可能ストレージ媒体1222は、ストレージ媒体および通信媒体を含む当該技術において公知または使用される任意の適切な媒体を含み得、当該媒体の例としては、情報の格納および/または送信のための任意の方法または技術において実現される揮発性媒体、不揮発性媒体、リムーバブル媒体および非リムーバブル媒体があるが、これらに限定されない。これは、RAM、ROM、電気的消却プログラム可能型ROM(EEPROM:electronically erasable programmable ROM)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または他の有形的なコンピュータ読取可能媒体といった有形的なコンピュータ読取可能ストレージ媒体を含み得る。これはさらに、所望の情報を送信するために使用され得るとともにコンピューティングシステム1200によってアクセスされ得るデータ信号、データ伝送または任意の他の媒体といった非有形的なコンピュータ読取可能媒体を含み得る。
例として、コンピュータ読取可能ストレージ媒体1222は、非リムーバブル不揮発性磁気媒体に対して読出または書込を行うハードディスクドライブと、リムーバブル不揮発性磁気ディスクに対して読出または書込を行う磁気ディスクドライブと、CD ROM、DVDおよびBlu−Ray(登録商標)ディスクまたは他の光学媒体といったリムーバブル不揮発性光学ディスクに対して読出または書込を行う光学ディスクドライブとを含み得る。コンピュータ読取可能ストレージ媒体1222は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、およびデジタルビデオテープなどを含み得るがこれらに限定されない。コンピュータ読取可能ストレージメディア1222はさらに、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、およびソリッドステートROMなどのような不揮発性メモリに基づいたソリッドステートドライブ(SSD)と、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM:magnetoresistive RAM)SSD、ならびに、DRAMおよびフラッシュメモリベースのSSDの組合せを使用するハイブリッドSSDといった揮発性メモリに基づくSSDとを含み得る。ディスクドライブおよびそれらの関連付けられるコンピュータ読取可能媒体は、コンピュータ読取可能な指示、データ構造、プログラムモジュールおよびコンピュータシステム1200のための他のデータの不揮発性ストレージを提供し得る。
通信サブシステム1224は、他のコンピュータシステムおよびネットワークにインターフェイスを提供する。通信サブシステム1224は、コンピュータシステム1200からデータを受け取るとともに他のシステムにデータを送信するためのインターフェイスとして機能する。たとえば通信サブシステム1224は、コンピュータシステム1200がインターネットを介して1つ以上のデバイスに接続することを可能にし得る。いくつかの実施形態において、通信サブシステム1224は、(たとえば、携帯電話技術、3G、4GまたはEDGE(enhanced data rates for global evolution)のような高度なデータネットワーク技術、WiFi(IEEE 802.11ファミリ規格、他のモバイル通信技術、またはその任意の組合せを使用する)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバコンポーネント、グローバルポジショニングシステム(GPS:global positioning system)受信コンポーネント、および/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム1224は、無線インターフェイスに加えてまたは無線インターフェイスの代わりに、有線ネットワーク接続(たとえばイーサネット)を提供し得る。
いくつかの実施形態において、通信サブシステム1224はさらに、コンピュータシステム1200を使用し得る1人以上のユーザに代わって、構造化されたデータおよび/または構造化されていないデータフィード1226、イベントストリーム1228およびイベント更新1230などの形態にある入力通信を受け取り得る。
例として、通信サブシステム1224は、Twitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリ(RSS:Rich Site Summary)フィードのようなウェブフィード、および/または、1つ以上のサードパーティの情報ソースからのリアルタイム更新といったソーシャルネットワークおよび/または他の通信サービスのユーザからデータフィード1226をリアルタイムで受け取るように構成され得る。
さらに、通信サブシステム1224は、リアルタイムイベントのイベントストリーム1228および/またはイベント更新1230を含み得る連続的なデータストリームの形態でデータを受け取るように構成され得る。当該連続的なデータストリームは、性質において明示的な終わりを有さない連続的または無限であり得る。連続的なデータを生成するアプリケーションの例はたとえば、センサデータアプリケーション、金融相場表示器、ネットワークパフォーマンス測定ツール(たとえばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、および自動車交通監視などを含み得る。
通信サブシステム1224はさらに、構造化されたおよび/または構造化されていないデータフィード1226、イベントストリーム1228、およびイベント更新1230などを、コンピュータシステム1200に結合された1つ以上のストリーミングデータソースコンピュータと通信する1つ以上のデータベースに出力するように構成され得る。
コンピュータシステム1200は、ハンドヘルドポータブルデバイス(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含むさまざまなタイプのうちの1つであり得る。
コンピュータおよびネットワークの絶えず変化する性質により、図において示されるコンピュータシステム1200の記載は特定の例としてのみ意図される。当該図に示されたシステムよりも多くまたは少ないコンポーネントを有する多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用され得、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組合せで実現され得る。さらに、ネットワーク入出力デバイスのような他のコンピューティングデバイスへの接続も採用され得る。本願明細書において提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現する他の態様および/または方法を認識するであろう。
上記明細書において、本発明の局面はその特定の実施形態を参照して記載されるが、当業者は本発明がそれに限定されないことを認識するであろう。上記の発明のさまざまな特徴および局面は個々にまたは共同で使用され得る。さらに、実施形態は、明細書のより広い精神および範囲から逸脱することなく本願明細書において記載された環境および適用例を越えて、任意数の環境および適用例において利用され得る。したがって、明細書および図面は、限定ではなく例示であるとみなされるべきである。
その教示がこの開示内に示され得る1つ以上の発明のいずれかのさまざまな実施形態がソフトウェア、ファームウェア、ハードウェアまたはその組合せにおけるロジックの形で実現され得る。ロジックは、この開示において示された発明のさまざまな実施形態において開示され得るステップのセットを実行するために、ロジックマシンの中央処理装置(CPUまたはプロセッサ)を指示するように適合される命令のセットとして、マシンアクセス可能なメモリ、マシン読取可能な物品、有形的なコンピュータ読取可能媒体、コンピュータ読取可能ストレージ媒体、または他のコンピュータ/マシン読取可能媒体に格納され得る。ロジックは、この開示に示される発明のさまざまな実施形態における方法またはプロセスを行うよう実行される際に、コードモジュールがコンピュータシステムまたは情報処理デバイスのプロセッサにより作動状態になると、ソフトウェアプログラムまたはコンピュータプログラムプロダクトの一部を形成し得る。本願明細書において提供されるこの開示および教示に基づいて、示された発明の1つ以上のさまざまな実施形態の開示されたオペレーションまたは機能のいずれかをソフトウェア、ファームウェア、ハードウェアまたはその組合せで実現するための他の態様、変形例、修正例、代替例および/または方法を当業者は理解するであろう。
その教示がこの開示に示され得るそれらの発明のいずれか1つの開示された例、実現例およびさまざまな実施形態は、当業者にこの開示の教示を妥当な明瞭さで伝えるために単に例示的である。これらの実現例および実施形態は例示的な図または特定の図を参照して記載され得る際に、記載される方法および/または特定の構造のさまざまな修正例または適合例は当業者に明らかになり得る。本願明細書において発見されるこの開示およびこれらの教示に依存し、かつ、当該教示によって技術を進歩させたすべてのそのような修正例、適合例または変形例は、その教示がこの開示内に示され得る1つ以上の発明の範囲内に存在すると考えられるべきである。したがって、開示内に示された発明が具体的に示される実施形態にまったく限定されないということが理解されるので、この記載および図は限定的な意味で考えられるべきでない。
したがって、上記の記載および如何なる添付の図面、説明および図は、例示的であるが限定的ではないように意図される。したがって、この開示に示される如何なる発明の範囲も、上記の記載および図に示されるそれらの実施形態を単純に参照してではなく、それらの完全な範囲または均等物とともに係属中の請求項を参照して決定されるべきである。

Claims (16)

  1. ウェブベースの複数のレイヤーからなるアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するための方法であって、
    コンピュータシステムのうちのサーバコンピュータにてドキュメントを作成することと、
    前記ドキュメントについてのメタデータに関連付けられるルールのセットを前記サーバコンピュータによって決定することとを含み、前記メタデータは、前記ドキュメントに含まれる各コンポーネント、および、前記複数のレイヤーのうちの一つのレイヤーにおいて利用可能なデータにコンポーネントがどのように結合されるかを示し、前記方法はさらに、
    ドキュメントの初期化の際に前記コンピュータシステムのうちのクライアントコンピュータから前記サーバコンピュータに与えられる要求に応答して、当該サーバコンピュータにおいて抽出されたメタデータに、当該ドキュメントに含まれる項目の要否に応じたカスタマイゼーションを適用することにより、前記ドキュメンユーザのためにカスタマイズされたメタデータを前記サーバコンピュータによって生成することと、
    前記ドキュメントが前記1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、前記サーバコンピュータか前記クライアントコンピュータに前記ドキュメントについての前記カスタマイズされたメタデータを送信することとを含む、方法。
  2. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを前記サーバコンピュータによって決定することは、使用するべき前記ドキュメントについての前記メタデータのバージョンを規定する少なくとも1つのルールを決定することを含む、請求項1に記載の方法。
  3. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを前記サーバコンピュータによって決定することは、前記ドキュメントのユーザに関連付けられる役割に基づいて、使用するべき前記ドキュメントについての前記メタデータを規定する少なくとも1つのルールを決定することを含む、請求項1に記載の方法。
  4. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを前記サーバコンピュータによって決定することは、時間または日付情報に基づいて、使用するべき前記ドキュメントについて前記メタデータを規定する少なくとも1つのルールを決定することを含む、請求項1〜3のいずれか1項に記載の方法。
  5. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを前記サーバコンピュータによって決定することは、組織の部門に基づいて、使用するべき前記ドキュメントについての前記メタデータを規定する少なくとも1つのルールを決定することを含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを前記サーバコンピュータによって決定することは、メタデータ管理サーバから1つ以上のルールを抽出することを含む、請求項1〜5のいずれか1項に記載の方法。
  7. 前記ドキュメントについての前記メタデータに適用されるようにカスタマイゼーションを構成する前記ルールの決定されたセットに基づいて、前記ドキュメントについての前記メタデータを前記サーバコンピュータによって生成することは、前記ドキュメントについてのベースメタデータに複数のメタデータカスタマイゼーションを適用することを含む、請求項1〜6のいずれか1項に記載の方法。
  8. ウェブベースの複数のレイヤーからなるアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するためのコンピュータ実行可能コードを含むコンピュータ読取可能プログラムであって、
    コンピュータシステムのうちのサーバコンピュータにてドキュメントを作成するためのコードと、
    前記ドキュメントについてのメタデータに関連付けられるルールのセットを前記サーバコンピュータによって決定するためのコードとを含み、前記メタデータは、前記ドキュメントに含まれる各コンポーネント、および、前記複数のレイヤーのうちの一つのレイヤーにおいて利用可能なデータにコンポーネントがどのように結合されるかを示し、さらに、
    ドキュメントの初期化の際に前記コンピュータシステムのうちのクライアントコンピュータから前記サーバコンピュータに与えられる要求に応答して、当該サーバコンピュータにおいて抽出されたメタデータに、当該ドキュメントに含まれる項目の要否に応じたカスタマイゼーションを適用することにより、前記ドキュメンユーザのためにカスタマイズされたメタデータを前記サーバコンピュータによって生成するためのコードと、
    前記ドキュメントが前記1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、前記サーバコンピュータから前記クライアントコンピュータに前記ドキュメントについての前記カスタマイズされたメタデータを送信するためのコードとを含む、コンピュータ読取可能プログラム。
  9. 請求項1〜のいずれか1項に記載の方法をコンピュータシステムに実行させるためのコンピュータ実行可能コードを含むコンピュータ読取可能プログラム。
  10. ウェブベースの複数のレイヤーからなるアプリケーションのためのユーザインターフェイスとして機能するデスクトップアプリケーションのドキュメントを作成するためのシステムであって、
    プロセッサと、
    指示のセットを格納するメモリとを含み、
    前記指示のセットは、前記プロセッサによって実行されると、
    ドキュメントを作成し、
    前記ドキュメントについてのメタデータに関連付けられるルールのセットを決定するように前記プロセッサを構成し、前記メタデータは、前記ドキュメントに含まれる各コンポーネント、および、前記複数のレイヤーのうちの一つのレイヤーにおいて利用可能なデータにコンポーネントがどのように結合されるかを示し、さらに
    ドキュメントの初期化の際にクライアントコンピュータから前記システムに与えられる要求に応答して、当該システムにおいて抽出されたメタデータに、当該ドキュメントに含まれる項目の要否に応じたカスタマイゼーションを適用することにより、前記ドキュメンユーザのためにカスタマイズされたメタデータを生成し、
    前記ドキュメントが前記1つ以上のウェブベースのアプリケーションのためのユーザインターフェイスとして機能するように、前記クライアントコンピュータに前記ドキュメントについての前記カスタマイズされたメタデータを送信するように前記プロセッサを構成する、システム。
  11. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを決定するために、前記プロセッサは、使用するべき前記ドキュメントについての前記メタデータのバージョンを規定する少なくとも1つのルールを決定するように構成される、請求項10に記載のシステム。
  12. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを決定するために、前記プロセッサは、前記ドキュメントのユーザに関連付けられる役割に基づいて、使用するべき前記ドキュメントについての前記メタデータを規定する少なくとも1つのルールを決定するように構成される、請求項10または11に記載のシステム。
  13. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを決定するために、前記プロセッサは、時間または日付情報に基づいて、使用するべき前記ドキュメントについての前記メタデータを規定する少なくとも1つのルールを決定するように構成される、請求項10〜12のいずれか1項に記載のシステム。
  14. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを決定するために、前記プロセッサは、組織の部門に基づいて、使用するべき前記ドキュメントについての前記メタデータを規定する少なくとも1つのルールを決定するように構成される、請求項10〜13のいずれか1項に記載のシステム。
  15. 前記ドキュメントについての前記メタデータに関連付けられる前記ルールのセットを決定するために、前記プロセッサは、メタデータ管理サーバから1つ以上のルールを抽出するように構成される、請求項10〜14のいずれか1項に記載のシステム。
  16. 前記ドキュメントについての前記メタデータに適用されるようにカスタマイゼーションを構成する前記ルールの決定されたセットに基づいて前記ドキュメントについての前記メタデータを生成するために、前記プロセッサは、前記ドキュメントについてベースメタデータに複数のメタデータカスタマイゼーションを適用するように構成される、請求項10〜15のいずれか1項に記載のシステム。
JP2016515519A 2013-09-20 2014-08-28 ランタイムカスタマイゼーションインフラストラクチャ Active JP6541647B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201361880767P 2013-09-20 2013-09-20
US61/880,767 2013-09-20
US201361909205P 2013-11-26 2013-11-26
US61/909,205 2013-11-26
US14/304,393 US9916157B2 (en) 2013-09-20 2014-06-13 Workbook composer for application development framework
US14/304,356 US9851967B2 (en) 2013-09-20 2014-06-13 Runtime customization infrastructure
US14/304,393 2014-06-13
US14/304,356 2014-06-13
PCT/US2014/053138 WO2015041829A1 (en) 2013-09-20 2014-08-28 Runtime customization infrastructure

Publications (3)

Publication Number Publication Date
JP2016533547A JP2016533547A (ja) 2016-10-27
JP2016533547A5 JP2016533547A5 (ja) 2017-09-14
JP6541647B2 true JP6541647B2 (ja) 2019-07-10

Family

ID=52692149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016515519A Active JP6541647B2 (ja) 2013-09-20 2014-08-28 ランタイムカスタマイゼーションインフラストラクチャ

Country Status (4)

Country Link
US (2) US9916157B2 (ja)
EP (1) EP3047394A4 (ja)
JP (1) JP6541647B2 (ja)
CN (1) CN105593844B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992268B2 (en) * 2012-09-27 2018-06-05 Oracle International Corporation Framework for thin-server web applications
US9772987B2 (en) 2013-09-20 2017-09-26 Oracle International Corporation Model-driven desktop integration framework
US9916157B2 (en) 2013-09-20 2018-03-13 Oracle International Corporation Workbook composer for application development framework
US10656971B2 (en) * 2014-01-31 2020-05-19 Dell Products L.P. Agile framework for vertical application development and delivery
US10248634B2 (en) 2014-07-16 2019-04-02 Oracle International Corporation Model-driven data entry validation
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US11238220B1 (en) 2015-11-13 2022-02-01 Wells Fargo Bank, N.A. Dynamic user interface framework
US9952835B2 (en) * 2016-02-23 2018-04-24 Sap Se Generation of hybrid enterprise mobile applications in cloud environment
CN106293721B (zh) * 2016-08-02 2019-05-24 快创科技(大连)有限公司 基于流式数据实时存储的可视化编程系统
US11170117B2 (en) 2018-06-08 2021-11-09 Bmc Software, Inc. Rapid content deployment on a publication platform
US11429783B2 (en) * 2019-09-30 2022-08-30 Stats Llc Augmented natural language generation platform
CN111158684B (zh) * 2019-12-30 2023-07-04 北京天融信网络安全技术有限公司 系统创建方法、装置、电子设备及可读存储介质
US11537621B2 (en) * 2020-06-12 2022-12-27 Sap Se Content metadata service for lifecycle management of digital content
CN111859370B (zh) * 2020-06-30 2024-05-17 百度在线网络技术(北京)有限公司 识别服务的方法、装置、电子设备和计算机可读存储介质
CN113111245B (zh) * 2021-03-15 2023-06-20 成都七柱智慧科技有限公司 实现多维数据质量校验的高校主数据治理系统及方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028306B2 (en) 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US6868413B1 (en) 2001-05-10 2005-03-15 Networks Associates Technology, Inc. System and method for customizing and processing business logic rules in a business process system
US8005345B2 (en) 2001-06-27 2011-08-23 Verizon Business Network Services Inc. Method and system for dynamic control of digital media content playback and advertisement delivery
US7124398B2 (en) 2002-04-10 2006-10-17 International Business Machines Corporation Rapid GUI refacing of a legacy application
US20030233631A1 (en) 2002-06-13 2003-12-18 Ambrose Curry Web services development method
US20050203931A1 (en) 2004-03-13 2005-09-15 Robert Pingree Metadata management convergence platforms, systems and methods
US8296665B2 (en) * 2004-05-11 2012-10-23 Sap Ag Developing and executing applications with configurable patterns
US8280819B2 (en) 2004-07-09 2012-10-02 Ebay Inc. Method and apparatus for securely displaying and communicating trusted and untrusted internet content
US8131736B1 (en) 2005-03-01 2012-03-06 Google Inc. System and method for navigating documents
US7505990B2 (en) * 2005-05-05 2009-03-17 International Business Machines Corporation Method for defining and generating document management applications for model-driven document management
US20060253830A1 (en) 2005-05-06 2006-11-09 Rajanala Arun K Guiding application building using business constraint metadata
US7721278B2 (en) 2005-05-27 2010-05-18 Microsoft Corporation Modular server architecture for multi-environment HTTP request processing
US7877420B2 (en) * 2005-06-24 2011-01-25 Microsoft Corporation Methods and systems for incorporating meta-data in document content
US8171394B2 (en) * 2005-06-24 2012-05-01 Microsoft Corporation Methods and systems for providing a customized user interface for viewing and editing meta-data
JP2007026348A (ja) * 2005-07-21 2007-02-01 Casio Comput Co Ltd 表データ処理装置及び表データ処理プログラム
US7926030B1 (en) * 2005-09-30 2011-04-12 Harmony Information Systems, Inc. Configurable software application
WO2007089847A2 (en) 2006-01-30 2007-08-09 Fast-Cat, Llc A portable dataport device and method for retrieving, inter-relating, annotating and managing electronic documents at a point of need
EP2042989A1 (en) 2006-02-03 2009-04-01 Research In Motion Limited System and method for extending a component-based application platform with custom services
JP4893108B2 (ja) * 2006-05-31 2012-03-07 富士ゼロックス株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US8005806B2 (en) 2006-11-15 2011-08-23 Yahoo! Inc. System and method for information retrieval using context information
AU2008229743A1 (en) 2007-10-03 2009-04-23 Britesoft Solutions (M) Sdn Bhd Cutomizable Application System
EP2270724A3 (en) 2007-10-22 2013-01-16 Open Text S.A. Method and system for managing enterprise content
US8875306B2 (en) 2008-02-12 2014-10-28 Oracle International Corporation Customization restrictions for multi-layer XML customization
US8572580B2 (en) 2008-07-28 2013-10-29 Microsoft Corporation Computer application packages with customizations
US8712990B2 (en) * 2009-10-09 2014-04-29 Sap Ag Methods and systems for providing a business repository
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
JP5571985B2 (ja) * 2010-03-25 2014-08-13 株式会社日立システムズ 表計算ファイルのバージョン変換システムおよびバージョン変換方法ならびにそのためのプログラム
US8463888B1 (en) 2010-12-06 2013-06-11 The Boeing Company Methods and systems for managing automated identification technologies information
US8407461B2 (en) * 2010-12-17 2013-03-26 Oracle International Corporation Plug-in system for software applications
CN102368217A (zh) * 2011-10-20 2012-03-07 镇江睿泰信息科技有限公司 一种元数据驱动的rest风格应用开发方法与系统
JP5838732B2 (ja) * 2011-10-31 2016-01-06 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US9916157B2 (en) 2013-09-20 2018-03-13 Oracle International Corporation Workbook composer for application development framework
WO2015041829A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation Runtime customization infrastructure

Also Published As

Publication number Publication date
CN105593844A (zh) 2016-05-18
US20150089334A1 (en) 2015-03-26
US20150089475A1 (en) 2015-03-26
US9916157B2 (en) 2018-03-13
EP3047394A4 (en) 2017-05-24
US9851967B2 (en) 2017-12-26
JP2016533547A (ja) 2016-10-27
CN105593844B (zh) 2019-08-16
EP3047394A1 (en) 2016-07-27

Similar Documents

Publication Publication Date Title
JP6541647B2 (ja) ランタイムカスタマイゼーションインフラストラクチャ
US10127206B2 (en) Dynamic column groups in excel
US10223347B2 (en) Date picker in excel
US10048948B2 (en) Optimized retrieval of custom string resources
US9626351B2 (en) Status viewer
US9948700B2 (en) ADFDI support for custom attribute properties
US10007356B2 (en) Chart dual-Y resize and split-unsplit interaction
US10970052B2 (en) System and method for enhancing component based development models with auto-wiring
JP6684778B2 (ja) ユーザセッション間にわたる操作のアンドゥサポートを用いた自動保存
US10582012B2 (en) Adaptive data transfer optimization
US10268456B2 (en) Standardized approach to contextual code identification in editors and IDEs
WO2015041829A1 (en) Runtime customization infrastructure

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190611

R150 Certificate of patent or registration of utility model

Ref document number: 6541647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250