JP2007310891A - コンピュータソフトウェア開発の方法およびシステム - Google Patents

コンピュータソフトウェア開発の方法およびシステム Download PDF

Info

Publication number
JP2007310891A
JP2007310891A JP2007133412A JP2007133412A JP2007310891A JP 2007310891 A JP2007310891 A JP 2007310891A JP 2007133412 A JP2007133412 A JP 2007133412A JP 2007133412 A JP2007133412 A JP 2007133412A JP 2007310891 A JP2007310891 A JP 2007310891A
Authority
JP
Japan
Prior art keywords
service
access interface
core
computer
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007133412A
Other languages
English (en)
Other versions
JP5230964B2 (ja
Inventor
Frank Brunswig
フランク・ブルンスヴィヒ
Thomas Fiedler
トーマス・フィードラー
Oliver Goetz
オリヴァー・ゲーツ
Stefan Rau
シュテファン・ラウ
Stefan Wenneker
シュテファン・ヴェンネカー
Volker Wiechers
フォルカー・ヴィヒャース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of JP2007310891A publication Critical patent/JP2007310891A/ja
Application granted granted Critical
Publication of JP5230964B2 publication Critical patent/JP5230964B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】サービスプロバイダによってサービスコンシューマに対して1つまたは複数のサービスを提供するための方法を提供すること。
【解決手段】本方法は、少なくとも1つのコアサービスと少なくとも1つの複合サービスを記述するメタモデルを定義すること、そのメタモデルに基づいてそのコアサービスについてのモデルを作成すること、およびそのモデルに基づいてサービスプロバイダ上でコアサービスを実装することを含むことができる。本方法はまた、サービスプロバイダ上で複合サービスを実装すること、およびサービスコンシューマ上でコアサービスおよび複合サービスに動的にアクセスする包括的アクセスインターフェースを実装することを含むこともできる。
【選択図】図4

Description

本発明は、一般にコンピュータアプリケーションソフトウェアアーキテクチャ(computer application software architecture)の分野に関し、より詳細にはモデル駆動型サービス指向ソフトウェアアーキテクチャ(model driven service oriented software architecture)を実現する方法およびシステムに関する。
コンピュータソフトウェアのプログラムまたはアプリケーションは、多くの場合に所定の環境内の特定の1組の問題を解決するために開発される。しかし、新しい種類の問題および所定の環境中における変更は、多くの場合にコンピュータソフトウェアのプログラムまたはアプリケーションの修正またはアップデートを必要とする。複雑なソフトウェアのプログラムまたはアプリケーションが関与するときには、変更またはアップデートは、多くの場合に完了するのに長い時間と多大な努力を要する。ソフトウェアモデルを使用して、これらの変更またはアップデートに対応し、変更またはアップデートを完了するための努力の量または時間の長さを低減させることができる。例えば、2005年3月24日のBloesch等に対する米国特許出願公開第2005/0066338号は、アプリケーションの設計とオペレーティングシステムの相互作用についてのメタオブジェクトモデル(meta-object model)をサポートするアプリケーションプログラミングインターフェース(application programming interface)およびフレームワークを開示している。しかし、そのようなオペレーティングシステムの相互作用技法は、大量販売のネットワークコンピューティングアプリケーション(networking computing application)を取り扱うときにはしばしば効果的でないことがある。
ネットワークベースのソフトウェアアプリケーションのうちでもとりわけ、エンタープライズサービスソフトウェアアプリケーション(enterprise service software application)は、安定した接続、高帯域幅、およびビジネス指向アプリケーションを伴うエンタープライズ環境のために開発することができる。エンタープライズサービスソフトウェアは、多くの場合にトランザクショナル様式および/またはステートフル様式で実装(implement)され、機能の観点から微細細分性(fine granularity)を用いて実装することもできる。他方、一般的なウェブサービスソフトウェアアプリケーションは、異なるコンピュータおよび異なるネットワーク接続が相互接続され、環境のステータスが多くの場合に予測できない場合のネットワークコンピューティング環境中における通常のインターネットベースのアプリケーションのために開発することができる。したがって、一般的なウェブサービスソフトウェアは、多くの場合に非トランザクショナル様式および/またはステートレス様式で実装され、機能の観点からかなり大きな細分性(significantly large granularity)を用いて実装することもできる。
以上の違いのために、エンタープライズサービスソフトウェアアプリケーションおよびウェブサービスソフトウェアアプリケーション(web service software application)は、多くの場合に互いに互換性がないこともある。すなわち、エンタープライズサービスおよびウェブサービスは、エンタープライズサービスソフトウェアアプリケーションおよび/またはウェブサービスソフトウェアアプリケーションに対するあまり大きな変更なしに単一ソフトウェアフレームワークによってアクセスすることができない。エンタープライズサービスとウェブサービスの両方にアクセスしようとする従来の試みは、多くの場合に特定のサービスによって取り扱われるべき必要がある追加アダプテーションレイヤおよび追加帯域外データ(例えば、クッキーなど)を使用することができる。
米国特許出願公開第2005/0066338号
しかし、従来の技法によって使用されるそのような追加ソフトウェアコンポーネントは、多くの場合に新しいサービスを提供することができるようになる前にかなりの量のソフトウェア実装形態を必要とする。ある種の状況においては、新しい1つまたは複数のサービスを提供する前にそのようなソフトウェア実装形態を作成することは、望ましくなく、または非実用的なこともある。
開示される実施形態のある種の機能と整合した方法およびシステムは、上記の1つまたは複数の問題を解決することを対象としている。
本発明の一態様は、サービスコンシューマ(service consumer)に対するサービスプロバイダ(service provider)による1つまたは複数のサービスを提供するための方法を含んでいる。本方法は、少なくとも1つのコアサービス(core service)および少なくとも1つの複合サービス(compound service)を記述するメタモデル(meta-model)を定義すること、そのメタモデルに基づいてそのコアサービスについてのモデルを作成すること、およびそのモデルに基づいてサービスプロバイダ上にコアサービスを実装することを含むことができる。本方法はまた、サービスプロバイダ上でその複合サービスを実装すること、およびサービスコンシューマ上でコアサービスおよび複合サービスに動的にアクセスする包括的アクセスインターフェース(generic access interface)を実装することを含むこともできる。
本発明の別の態様は、サービスコンシューマが、サービスプロバイダによって提供されるサービスにアクセスするための方法を含んでいる。本方法は、サービスコンシューマが包括的アクセスインターフェースおよびモデルアクセスインターフェース(model access interface)を含むことができる一方で、サービスプロバイダによって提供されるサービスを要求する、サービスコンシューマによるサービス要求を取得することを含むことができる。本方法はまた、要求されるサービスが、コアサービスであるか、または複合サービスであるかを判定すること、およびサービスがコアサービスである場合に、モデルアクセスインターフェースがコアサービスにアクセスするために使用可能であるかどうかを判定することも含むことができる。さらに、本方法は、サービスがコアサービスでありモデルアクセスインターフェースが使用可能である場合に、サービスプロバイダによって提供されるサービスにアクセスするためのモデルアクセスインターフェースを選択することを含むこともできる。
次に添付図面に示される例示の実施形態について詳細に言及することにする。図面全体を通して同じ参照番号を使用して、同じ部分または同様な部分について言及する。
図1は、本発明のある種の実施形態を組み込むコンピュータシステムを有する例示の操作環境100を示すものである。操作環境100は、通信ネットワークによって相互接続されたコンピュータシステムと、ある種のサービスを実行するように提供されたコンピュータソフトウェアプログラムとを含むことができる。操作環境100は、イントラネット102と、イントラネット102に接続されたサービスプロバイダコンピュータ106(「プロバイダ106」)と、インターネット104と、インターネット104に接続されたサービスコンシューマコンピュータ108(「コンシューマ108」)とイントラネット102とインターネット104の両方にインターフェースして、セキュリティ、プロトコル変換、アドレス指定などのネットワークゲートウェイファンクションを提供するゲートウェイ110とを含むことができる。
イントラネット102は、適切な認可を有するメンバおよび/または顧客によってアクセス可能に設計された組織または企業体に関連するコンピュータネットワークなど、限られたネットワークアクセスを有する1つまたは複数のネットワークセグメント(network segment)から成るプライベートネットワーク(private network)を含むことができる。プロバイダ106を使用して、その企業体によって提供されるある種のサービスをホストし、かつ/または実装することができる。1つのサービスプロバイダコンピュータだけが図1に示されるが、任意数のサービスプロバイダコンピュータが含められてもよく、諸サービスは、複数のサービスプロバイダコンピュータ上に分散されてもよい。
インターネット104は、TCP/IP(transmission control protocol/internet protocol伝送制御プロトコル/インターネットプロトコル)または他の適切な任意のタイプのネットワークプロトコルを介して相互接続された1つまたは複数の任意のパブリックアクセス可能ネットワークを含むことができる。インターネット104は、一般にイントラネット102から分離されていると考えることができるが、ゲートウェイ110を介してイントラネット102に接続することもできる。コンシューマ108は、インターネット104およびイントラネット102を介してプロバイダ106にアクセスして、プロバイダ106によって提供されるサービスを要求することができる。図1は、インターネット104に接続されたたった1つのサービスコンシューマコンピュータだけを示すが、任意数のサービスコンシューマコンピュータが含められてもよい。さらに、複数のサービスコンシューマコンピュータが、同時にプロバイダ106にアクセスすることもできる。
プロバイダ106および/またはコンシューマ108は、適切な任意のタイプのコンピュータシステムを含むことができる。図2は、プロバイダファンクションおよび/またはコンシューマファンクションに関連するコンピュータソフトウェアアプリケーションなど、プロバイダ106および/またはコンシューマ108の機能を実行するようにプロバイダ106および/またはコンシューマ108として構成することができる例示のコンピュータシステム200の機能ブロック図を示している。さらに、コンピュータシステム200は、プロバイダ106および/またはコンシューマ108によって実装されるコンピュータソフトウェアアプリケーションを設計し実装するコンピュータプラットフォームとして構成することもできる。コンピュータソフトウェアアプリケーションは、例えば設計ドキュメントおよび/または様々なモデルに含められる抽象記述に基づいて実装し、または作成することができる。
図2に示されるように、コンピュータシステム200は、プロセッサ202と、RAM(random access memoryランダムアクセスメモリ)204と、ROM(read-only memory読取り専用メモリ)206と、コンソール208と、入力デバイス210と、ネットワークインターフェース212と、データベース214と、ストレージ216とを含むことができる。リストアップされたデバイスのタイプおよび数は、例示的なものにすぎず、限定することを意図していないことが理解される。リストアップされたデバイスの数は変更することができ、他のデバイスが追加されてもよい。
プロセッサ202は、適切な任意のタイプの汎用マイクロプロセッサ、デジタル信号処理プロセッサ、またはマイクロコントローラを含むことができる。プロセッサ202は、コンピュータプログラム命令のシーケンスを実行して、以上で説明されるような様々なファンクションを実施することができる。プロセッサ202は、RAM204、ROM206、コンソール208、入力デバイス210、ネットワークインターフェース212、データベース214、および/またはストレージ216など、他のデバイスに結合され、またはアクセスして、コンピュータプログラム命令および/またはプログラムデータを実行することができる。
コンピュータプログラム命令は、プロセッサ202によって実行するために読取り専用メモリ(ROM)206および/またはストレージ216からRAM204へとロードすることができる。ストレージ216は、プロセッサ202が、コンピュータ実装されたプロセスを実施するために必要とする可能性がある任意のタイプの情報を記憶するように設けられた適切な任意のタイプのマスストレージ(mass storage)を含むことができる。例えば、ストレージ216は、1つまたは複数のハードディスクデバイス、光ディスクデバイス、あるいは他のタイプのストレージデバイスを含むことができる。
コンソール208は、コンピュータシステム200のユーザに対して情報を表示するGUI(graphic user interfaceグラフィックユーザインターフェース)または他のタイプのユーザインターフェースを提供することができる。コンソール208は、適切な任意のタイプのコンピュータディスプレイデバイスまたはコンピュータモニタを含むことができる。入力デバイス210は、ユーザがコンピュータシステム200に情報を入力するために設けることができる。入力デバイス210は、キーボード、マウス、または他の光または無線のコンピュータ入力デバイスなどを含むことができる。
ネットワークインターフェース212は、コンピュータシステム200がイントラネット102および/またはインターネット104を介してリモートにアクセスすることができるように通信接続を実現することができる。データベース214は、プロセッサ202によって使用される任意の情報を含むことができる。データベース214は、任意のタイプの商用データベースまたはカスタマイズされたデータベースを含むことができる。データベース214はまた、データベース中の情報を解析するための解析ツールを含むこともできる。
プロセッサ202は、ある種のソフトウェアプログラムを実行して、操作環境100中においてサービスを提供するソフトウェアフレームワークを実装することができる。図3は、そのソフトウェアフレームワークの例示のソフトウェアアーキテクチャを示している。
図3に示されるように、ソフトウェアアーキテクチャ300は、サービス実装レイヤ(service implementation layer)302、サービスリポジトリ(service repository)308、サービスレイヤ(service layer)320、アクセスレイヤ(access layer)318、モデルアクセスおよび包括的アクセスのプロキシレイヤ(proxy layer)316、エンタープライズアプリケーション310、ウェブアプリケーション312、他のアプリケーション314などを含むことができる。さらに、サービス実装レイヤ302は、コアサービス304および複合サービス306を含むことができる。ソフトウェアコンポーネントの数は例示的なものにすぎず、限定することを意図してはいない。任意数のソフトウェアコンポーネントは、ソフトウェアアーキテクチャ300によって実装することができる。
サービス実装レイヤ302は、サービスプロバイダ(例えば、プロバイダ106)によって提供される適切な任意のタイプのサービスを含むことができる。サービスは、あらかじめ定義され、自己完結し、かつ/または特定のタイプのソフトウェアプラットフォームおよび/または他のファンクションのコンテキストまたは状態から独立なファンクションを意味することができる。サービスは、サービスインターフェースを介してアクセスすることができる。サービスを提供するソフトウェアエンティティ、あるいはそのソフトウェアエンティティがサービスを提供するコンピュータプラットフォームは、サービスプロバイダと称することができ、サービスを要求するソフトウェアエンティティ、あるいはそのソフトウェアエンティティがサービスを要求するコンピュータプラットフォームは、サービスコンシューマと称することができる。サービスプロバイダはまた、ある種の状況下ではサービスコンシューマになることもできる。さらに、ソフトウェアエンティティが様々なタイプの接続(例えば、ネットワーク接続または論理接続など)を介して互いに通信することができるネットワークコンピューティング環境(例えば、操作環境100)においては、サービスは、情報を交換するための接続のエンドポイントと称することもできる。異なるサービスは、これらの接続を介して情報を交換することもできる。
サービス実装レイヤ302は、複数の異なるタイプのサービスを含むように構成することができる。これらのサービスは、対応するサービスインターフェースを介して定義されるオペレーションを有するサービスの集まりとして組織化することができる。ソフトウェアアーキテクチャ300は、様々なアプリケーションによりこれらのサービスに対するアクセスを可能とし、かつ/または諸サービスの間の通信を管理するサービス実装レイヤ302を介してこれらのサービスを提供するように設計し、かつ/または構成することができる。したがって、ソフトウェアアーキテクチャ300は、サービスおよびそれらの相互接続の観点からソリューション(solution)を提供するサービス指向アーキテクチャと称することができる。
ソフトウェアアーキテクチャ300は、ソフトウェアモデリングツール(software modeling tool)を使用し、サービス実装レイヤ302によって提供されるべきサービスを定義し組織化するように構成することができる。UML(unified modeling language統合モデリング言語)などのソフトウェアモデリングツールを使用することにより、諸サービスは、1組のモデルに基づいて組織化することができる。一連の変換をモデル間に課して、諸サービスを実装(implement)することができる。モデルマッピング、モデル変換、および/またはコード生成など、そのような変換は、ソフトウェアモデリングツールによって自動的に実施し、あるいはソフトウェア開発業者などのユーザが手作業で実施することができる。したがって、ソフトウェアアーキテクチャ300はまた、モデル駆動型サービス指向アーキテクチャと称することもできる。
サービス実装レイヤ302によって提供されるサービスを定義するモデル(すなわち、サービス特有のモデル)は、メタモデルで記述することができる。メタモデルは一般に、統合モデリング言語(UML)などの言語を記述するモデルを意味することができ、この言語からモデルを表現することができる。すなわち、メタモデルは、ビジネスモデル、医学的モデル、ウェアハウスモデルなどの様々なサービス特有のモデルを作成するためのビルディングブロックを含むことができる。図示するために、メタモデルによって記述されるサービス特有のモデルは、具体的なメタモデル、または単にモデルと称して、サービス特有のモデルが、特定のメタモデルを使用して定義されることを指し示すことができ、またメタモデルにとって使用可能なある種の変換を受けることができる。例えば、具体的なメタモデルは、メタデータによって表現することができ、このメタデータは、XMI(XML metadata interchange XMLメタデータ交換)などある種のデータ交換規格を使用して変換し、またはアクセスすることができる。
以上に説明されるように、サービス実装レイヤ302は、異なるタイプのサービスを含むことができる。ある種の実施形態においては、サービス実装レイヤ302は、コアサービス304と複合サービス306とを含むことができる。しかし、他のタイプのサービスを使用することもできる。
コアサービスは、個別にアクセスすることができるオペレーションの微細細分性をサポートするサービスのことを意味することができる。オペレーションの細分性は、そのオペレーションによってアクセスされるべきサービスの属性の範囲または領域を意味することができる。オペレーションの微細細分性により、属性の一部分または個別の属性は、単一のオペレーションによってアクセスし、または操作することができるようになり得る。コアサービスは、異なるオペレーションによって個別にアクセスすることができるオペレーション多数の属性を含むことができる。さらに、コアサービスは、そのコアサービスのランタイム状態が、コアサービスのオペレーション中に保持され得る点でステートフルとすることができる。例えば、コアサービスは、個別の属性のステータスを提供し、または個別の特性のうちの特性を変更するクエリインターフェース(query interface)を含むことができる。コアサービス304は、特定のコアサービスの適切な任意のタイプの実装形態(すなわち、特定のコアサービスのバックエンド実装形態)を含むことができ、またそのサービスに関連した状態情報を含むこともできる。
例えば、コアサービス304は、ビジネストランザクション中に作成される購買注文を含むことができる。そのコアサービス購買注文は、顧客情報(例えば、顧客名、住所、電話番号など)、発注情報(例えば、注文番号、日付、場所など)、およびアイテム情報(例えば、ストック番号、価格、場所など)に関連する属性を含むことができる。さらに、ヘッダ情報を購買注文に含めて、その情報にアクセスするためのインデックスを提供することができる。また、ノートを含めて任意のテキストメッセージを記録することもできる。
さらに、コアサービス購買注文により、サービスコンシューマは、他の属性にアクセスすることなく、ある種の属性に個別にアクセスすることができるようになり得る。例えば、そのサービスコンシューマは、注文情報にアクセスすることなく、顧客情報にアクセスすることができる。代わりに、サービスコンシューマは、単に顧客名だけにアクセスすることもできる。サービスコンシューマとサービスプロバイダとの間で交換されるデータ量は、要求される情報だけに制限することができる。さらに、説明されるように、コアサービス304のソフトウェア実行の状態情報は、コアサービス304のサービスプロバイダが保持することができる。
複合サービスは、コアサービスに比較してオペレーションの大きな細分性をサポートするサービスを意味することができる。オペレーションの大きな細分性により、属性の大部分または属性のすべては、単一のオペレーションによってアクセスし、または操作することができるようになり得る。したがって複合サービスは、全体または大きなグループにおけるサービス属性にアクセスする限られた数のオペレーションを含むことができる。さらに、複合サービスは、複合サービスがサービス属性に個別にアクセスすることができないように構成することができ、また属性のすべてまたは属性の組にアクセスするように構成することができる。そのように大きな細分性は、単一のオペレーションによって交換されるべき大量のデータを含むことができる。また、複合サービスの状態情報は、しばしば複合サービスのオペレーション中に保持されないこともある。複合サービス306は、特定の複合サービスの適切な任意のタイプの実装形態(すなわち、特定の複合サービスのバックエンド実装形態)を含むことができる。
購買注文の以上の例に従って、複合サービス308は、購買注文サービスを含むこともできる。しかし、複合サービス購買注文は、サービスコンシューマに単一のアクセスですべての属性にアクセスすることを必要にし得る限られたインターフェースを提供することだけができるようにし、これは、サービスプロバイダとサービスコンシューマとの間で転送される大量のデータをもたらす可能性がある。さらに、複合サービス306は、ステートレスであってもよい。すなわち、サービスプロバイダは、複合サービス306のソフトウェア実行の状態情報を保持することができなくてもよい。
サービス実装レイヤ302、またはコアサービス304と複合サービス306のバックエンド実装形態は、コアサービス304と複合サービス306を定義するモデルに基づいて適切な任意のタイプのコンピュータのハードウェアプラットフォームまたはソフトウェアプラットフォーム上に実装することができる。一実施形態においては、サービス実装レイヤ302に含まれるサービスは、複数のハードウェアおよび/またはソフトウェアのプラットフォーム上に実装することができる。
以上で説明されるように、メタモデルを使用してサービス特有のモデルを定義することができる。ある種の実施形態においては、統合メタモデルは、コアサービス304と複合サービス306の両方を定義するように提供することができる。すなわち、コアサービス304および複合サービス306の完全な記述は、ESDL(enterprise services definition languageエンタープライズサービス定義言語)などの統合メタモデルに含めることができる。コアサービス304および複合サービス306の個々のサービスの具体的なメタモデルは、ビジネスオブジェクトモデルや購買注文モデルなどの統合メタモデルを使用して定義することができる。コアサービス304および複合サービス306のメタモデルおよび具体的なメタモデルは、サービスリポジトリ308に記憶することができる。したがって、サービスリポジトリ308は、サービス実装レイヤ302によって提供されるサービスを記述する様々なメタデータと、そのメタデータを定義し、それにアクセスするためのインターフェースを含むこともできる。
統合メタモデルは、コアサービス304と複合サービス306の両方のサービスインターフェースの完全なリストを記述することができるので、コアサービス304と複合サービス306の両方に共通の定義は、コアサービス304と複合サービス306の両方について定義し、使用することができる。他方、コアサービス304と複合サービス306に共通でない定義は、統合メタモデルに別々に含めることができる。
以上の購買注文例においては、コアサービス購買注文(例えば、コアサービス304)は、統合メタモデルの下のビジネスオブジェクトメタモデル(business object meta-model)によって説明することができる。ビジネスオブジェクトメタモデルは、インターフェース、オペレーション、およびタイプを含むことができる。インターフェースは、サービスとインターフェースするために設けることができ、インターフェースパターン(すなわち、相互作用のあらかじめ定義された抽象定義)によって定義することができる。例えば、インターフェースパターンは、クエリ、アクセス、アクション、トランザクション、メッセージ、動的特性、変更通知、および/または値のヘルプ(value help)などを含むことができる。さらに、ビジネスオブジェクトメタモデルの動的特性は、イネーブル/ディスエーブル、必須、非アクティブ、読取り専用、作成可能、アップデート可能、および/または削除可能など適切な任意のランタイム特性を含むこともできる。
コアサービス購買注文メタモデルは、サービスコンシューマがコアサービス304における購買注文にアクセスする様々なオペレーションを含むことができる。例えば、コアサービス購買注文メタモデルは、購買注文のヘッダ情報を読み取る「ヘッダ読取り(read header)」オペレーション、購買注文における特定のアイテムについて検索する「アイテム発見(find item)」オペレーション、購買注文中のインデックス付け情報(例えば、ヘッダ情報)を求めて検索する「ナビゲート」オペレーション、および/または関連した情報を獲得するための「関連付けによる取出し」オペレーションなどを含むことができる。上記のオペレーションは、例示的なものにすぎず、限定することを意図してはおらず、他のオペレーションを含めることもできる。
さらに複合サービス購買注文メタモデルはまた、統合メタモデルの下で定義することもできる。例えば、統合メタモデルは、1つのオペレーションで購買注文におけるすべての情報を取り出す「データ読取り(read data)」オペレーションなど、1つまたは複数の複合サービスオペレーションを含むことができる。
ある種の実施形態においては、統合メタモデルがコアサービス304と複合サービス306の両方のインターフェースを記述するときに、統合メタモデルは、コアサービス304と複合サービス306についての別個のインターフェースを含むことができる。ある種の他の実施形態においては、統合メタモデルは、コアサービス304と複合サービス306の両方についての共通のインターフェースを含むことができる。余分な制約条件を共通のインターフェースを表すインターフェースパターンに追加して、例えばアクセスされるべきサービスのタイプなどを記述する追加の情報を提供することができる。余分な制約条件はまた、コアサービス304のインターフェースパターンに追加することもできる。コアサービス304が複合サービス306のインターフェースを介してアクセスされる場合、余分な制約条件は、より遅い速度および/またはより低い効率などの劣化した性能を伴うアクセスを可能にすることができる。
例示の購買注文を定義するビジネスオブジェクトメタモデルは、例示の目的のためにすぎないことに注意すべきである。サービスリポジトリ308は、統合メタモデルの下で定義される他のエンタープライズに関連した具体的な任意のメタモデルを含むことができる。例えば、サービスリポジトリ308は、コアサービス304と複合サービス306の両方についてのビジネスウェアハウスおよびOLAP(online analytical processオンライン解析的プロセス)などのためのビジネス情報メタモデルを含むことができる。
具体的なメタモデルが統合メタモデルの下で定義され、メタデータが生成され、サービスリポジトリ308に記憶された後に、コアサービス304および複合サービス306は、サービスレイヤ320を介してソフトウェアアプリケーションによってアクセスすることができる。サービスレイヤ320はまた、具体的なメタモデルおよび統合メタモデルに基づいて作成することもできる。サービスレイヤ320は、サービス実装レイヤ302(例えば、コアサービス304、複合サービス306など)およびサービスリポジトリ308についてのブローカとしての役割を果たすことができる。例えば、サービス層320は、インターフェースパターン中の余分な制約条件中で提供される追加情報を使用して、サービス要求がコアサービス304または複合サービス306について意図されるかどうかを判定することができる。サービスレイヤ320は、ある種の要求に応答して、使用可能なサービスを識別するためにサービスリポジトリ308にアクセスすることもできる。
サービスレイヤ320、サービス実装レイヤ302、およびリポジトリ308は、サービスを提供するサービスプロバイダ(例えば、プロバイダ106)によって実装することができる。サービスコンシューマは、サービスプロバイダに対してサービス要求メッセージを送信し、サービスプロバイダからの戻された応答メッセージを受信することにより、サービスにアクセスすることができる。実際には、サービスコンシューマは、エンタープライズアプリケーション310、ウェブアプリケーション312、他のアプリケーション314などある種のクライアントソフトウェアアプリケーションを使用することにより、サービスにアクセスすることができる。
エンタープライズアプリケーション310は、コアサービス304にアクセスするように設計された適切な任意のタイプのソフトウェアアプリケーションを含むことができ、ウェブアプリケーション312は、複合サービス306にアクセスするように設計された適切な任意のタイプのソフトウェアアプリケーションを含むことができる。他方、他のアプリケーション314は、ある種の共通の規格に従ってソフトウェアアーキテクチャ300の特定の構造の知識なしに一般的なサービスにアクセスするように独立に設計された適切な任意のタイプのサードパーティソフトウェアアプリケーションを含むことができる。エンタープライズアプリケーション310、ウェブアプリケーション312、および他のアプリケーション314のすべては、モデルアクセスおよび包括的アクセスのプロキシレイヤ316を介してサービス実装レイヤ302にアクセスすることができる。
モデルアクセスおよび包括的アクセスのプロキシレイヤ316は、サービス実装レイヤ302に対するアクセスをスムーズに進めまたは実現する任意のソフトウェアプログラムを含むことができる。例えば、モデルアクセスおよび包括的アクセスのプロキシレイヤ316は、サービス実装レイヤ302によって提供される任意のサービスにアクセスするための包括的なインターフェースを提供することができる。その包括的インターフェースを使用して、使用可能なサービスプロバイダを動的に調べ、その使用可能なサービスプロバイダによって提供されるサービスのインターフェースおよび/またはオペレーションを取り出すことができる。次いで取り出されたインターフェースおよび/またはオペレーションを使用して、サービスにアクセスすることができる。包括的なアクセスをエンタープライズアプリケーション310、ウェブアプリケーション312、および他のアプリケーション314のうちのどれかが使用して、コアサービス304または複合サービス306のいずれかにアクセスすることができる。
他方、モデルアクセスおよび包括的アクセスのプロキシレイヤ316は、サービス実装レイヤ302によって提供される任意のサービスにアクセスするためのモデルアクセスインターフェースを提供することができる。そのモデルアクセスインターフェースは、特定の具体的なメタモデルにアクセスする適切な任意のタイプのインターフェースを含むことができる。モデルアクセスインターフェースは、具体的なメタモデルから導き出すことができ、ビジネスオブジェクトメタモデルなど、特定のメタモデルクラスに対応することができる。特定の具体的なメタモデルは、あらかじめ定義され、よくドキュメント化されているので、具体的なメタモデルのインターフェースは、ソフトウェアアプリケーション(例えば、エンタープライズアプリケーション310)に知られていることもあり、動的調査または動的結合は、不必要なこともある。すなわち、速度および効率は、かなり増大させることができる。
モデルアクセスインターフェースも包括的アクセスインターフェースも、サービス実装レイヤ302のサービスを提供しアップデートするために必要なこともある。例えば、新しいサービス(すなわち、追加されるべきサービス、または既存のサービスに対するアップデート)が、元のソフトウェア製品中で実装されるときに、クライアントアプリケーションは、1つまたは複数のモデルアクセスインターフェースを使用して、その新しいサービスに速やかにアクセスすることができる。さらに、新しいサービスが、既存のソフトウェア製品に後で追加されるときに、クライアントアプリケーションは、そのクライアントアプリケーションを変更することなく、1つまたは複数の包括的アクセスインターフェースを介してその新しいサービスにアクセスすることを直ちに開始することができる。モデルアクセスインターフェースは、クライアントアプリケーション中において後で開発され展開(deploy)されて、それらのアプリケーションのアクセス効率を改善することができる。
さらに、新しいインターフェース、新しい特性などの新しい1つまたは複数のサービスのメタモデルは、適切な任意のタイプのリポジトリ構成ツールを使用することにより、サービスリポジトリ308に追加することができる。アップデートされたリポジトリ308は、新しい1つまたは複数のサービスに関するサービスコンシューマからの問い合わせに応答することができる。
クライアントアプリケーション(例えば、エンタープライズアプリケーション310、ウェブアプリケーション312など)とモデルアクセスおよび包括的アクセスのレイヤは1つまたは複数のサービスコンシューマ(例えば、コンシューマ108)によって実装することができる。モデルアクセスおよび包括的アクセスのプロキシレイヤ316は、アクセスレイヤ318を介してサービスプロバイダのサービスレイヤ320にアクセスすることができる。
アクセスレイヤ318は、DCOM(distributed component object model分散コンポーネントオブジェクトモデル)、SOAP(simple object access protocol単純オブジェクトアクセスプロトコル)、CORBA(common object request broker architectureコモンオブジェクト要求ブローカアーキテクチャ)、JINIネットワークアーキテクチャ、RPC(remote procedure callリモートプロシージャコール)、RMI(remote method invocationリモートメソッド呼出し)など、特定の規格に従って通信および/または他のサポートするファンクションを提供する適切な任意のタイプのソフトウェアプログラムを含むことができる。アクセスレイヤ318は、サービスプロバイダ(例えば、プロバイダ106)とサービスコンシューマ(例えば、コンシューマ108)の両方によって実装して、サービスプロバイダとサービスコンシューマとの間の情報を交換することができる。
例えば、サービスプロバイダとサービスコンシューマが同じコンピュータ上で実装される場合のある種の状況においては、アクセスレイヤ318は、サービスコンシューマが、サービスプロバイダによって提供される諸サービスに直接にアクセスすることができるようにするDMI(direct method invocation直接メソッド呼出し)インターフェースを含むこともできる。ある種の実施形態においては、その直接アクセスは、ソフトウェアファンクションコールとして実装することができる。
ソフトウェアアーキテクチャ300によるソフトウェアフレームワークまたはソフトウェアプログラムの作成および/またはオペレーションは、コンピュータシステム200など、1つまたは複数のコンピュータシステムによって実行することができる。図4は、コンピュータシステム200、および/またはコンピュータシステム200のユーザによって、またより詳細にはある種の開示された実施形態と整合したプロセッサ202によって実施することができる例示のソフトウェア作成プロセスを示している。
図4に示されるように、プロセッサ202は、ソフトウェアアーキテクチャ300において提供されるべき1つまたは複数のコアサービスを識別することができる(ステップ402)。プロセッサ202は、提供されるべきすべてのサービスとサポートされるべきサービスのすべてのインターフェースを識別し、かつ/またはドキュメント化することができる。プロセッサ202は、ソフトウェアアーキテクチャ300において提供されるべき複合サービスを識別することもできる(ステップ404)。そのように行う際に、プロセッサ202は、識別された複合サービスのすべてのインターフェースを提供することもできる。
さらに、プロセッサ202は、識別されたコアサービスと複合サービスの完全な記述を提供する統合メタモデルを定義することができる(ステップ406)。統合メタモデルは、以前に説明されるようにコアサービスと複合サービスの両方のインターフェースの完全なリストを含むことができる。統合メタモデルが定義された後に、プロセッサ202は、コアサービスと複合サービスを記述する1つまたは複数のモデルまたは具体的なメタモデルを作成することができる(ステップ408)。諸モデルは、新しいサービスが追加されるべきときにはいつでも再使用することができる。
モデルに基づいて、プロセッサ202は、サービスプロバイダ(例えば、プロバイダ106)についての1つまたは複数のコアサービス(例えば、コアサービス304)を実装することができる(ステップ410)。プロセッサ202はまた、サービスプロバイダについての1つまたは複数の複合サービス(例えば、複合サービス306)を実装することもできる(ステップ412)。コアサービスおよび複合サービスは、異なるソフトウェア構造またはプログラミング言語で実装することができる。さらに、プロセッサ202は、ある種のコアサービスおよび/またはある種の複合サービスを提供する任意のサードパーティソフトウェアプログラムを組み込むこともできる。
様々な具体的なメタモデルまたはモデルは、モデルリポジトリに記憶することができる。プロセッサ202は、そのリポジトリを作成し、かつ/または構成して、統合メタモデル、具体的なメタモデル、および任意のメタモデルまたは他の関連したデータをリポジトリに記憶することができる(ステップ414)。プロセッサ202は、適切な任意のタイプの構成ツールを使用してリポジトリを構成することができる。さらに、プロセッサ202は、リポジトリを任意のサービスコンシューマがアクセスして、サービスを見出し、サービスにアクセスすることができるように、リポジトリの他の機能を実装することもできる。
さらにプロセッサ202は、サービス(例えば、コアサービス304および複合サービス306など)にアクセスするためのアクセス規格(例えば、アクセスレイヤ318)を選択することができる(ステップ416)。プロセッサ202は、諸サービスのソフトウェアプラットフォーム、プログラミング言語、操作環境などに基づいてアクセス規格を選択することができる。複数の規格を同時にサポートすることができる。
プロセッサ202は、コアサービスおよび複合サービスについてのサービスインターフェース(例えば、サービスレイヤ320)を提供することもできる(ステップ418)。プロセッサ202は、特定のコアサービスおよび複合サービスと独立なサービスインターフェースを実装して、例えば新しいコアサービスおよび/または複合サービスをアップデートし、かつ/または追加するときの努力を低減させ、あるいはなくすることができる。
プロセッサ202は、コアサービスおよび複合サービスにアクセスするクライアントソフトウェアフレームワークを実装することもできる。さらにプロセッサ202は、コアサービスおよび複合サービスにアクセスする包括的アクセスインターフェースを実装することもできる(ステップ420)。プロセッサ202は、包括的アクセスインターフェースを使用して、統合メタモデルの下の任意のコアサービスおよび/または複合サービスに基づいたモデルにアクセスすることができるように、任意の特定のコアサービスおよび/または複合サービスから独立した包括的アクセスインターフェースを実装することができる。アクセスされるべきサービスの特定のタイプ、インターフェース、および/またはオペレーションは、ランタイム中にサービスに動的にアクセスする包括的アクセスインターフェースに渡すこともできる。
プロセッサ202は、特定のサービス特有のメタモデル実装形態にアクセスするモデルアクセスインターフェースを実装することもできる(ステップ422)。モデルアクセスインターフェースは、コアサービスおよび/または複合サービスの特定のサービスに対応する具体的なメタモデルオブジェクトに基づいて実装することができる。さらに、プロセッサ202は、モデルアクセスインターフェースおよび/または包括的インターフェースを使用するクライアントアプリケーションを実装し展開することもできる(ステップ424)。クライアントアプリケーションのユーザは、モデルアクセスインターフェースおよび/または包括的インターフェースを介してコアサービス、複合サービス、またはその両方にアクセスすることができる。
ソフトウェアフレームワークまたはソフトウェアプログラムの作成の後に、ソフトウェアフレームワークまたはソフトウェアプログラムは、サービスプロバイダ上のソフトウェアフレームワークまたはソフトウェアプログラムのユーザによって展開することができる。さらに、新しいサービスを既存の、または展開済みのコアサービスおよび/または複合サービスに追加することもでき、また既存のサービスをアップデートすることもできる。図5は、新しいサービスを追加し既存のサービスをアップデートするための例示のアップグレードするプロセスを示している。
図5に示されるように、プロセッサ202は、新しいサービスまたはサービスアップデートを実装することができる(ステップ502)。新しいサービスまたはサービスアップデートは、統合メタモデルの下の記述を有する新しいモデルに基づいたものとすることができる。しかし、新しいサービスまたはサービスアップデートのインターフェースが、あらかじめ定義されたメタモデルに完全に含まれない場合、新しいインターフェースをメタモデルに追加することができ、リポジトリ(例えば、サービスリポジトリ308)もまたアップデートすることができる。リポジトリをアップデートすることは、以上で説明されるようにある種の構成ツールを使用してリポジトリを構成することにより実施することができる。
プロセッサ202は、既存のソフトウェアフレームワークまたはソフトウェアプログラム中において新しいサービスまたはサービスアップデートを展開することができる(ステップ504)。すなわち、新しいサービスは、アクセスするために使用可能にするためにバックエンドサービス実装レイヤ302に追加することができる。他方、プロセッサ202はまた、包括的アクセスインターフェースに基づいて新しいサービスまたはサービスアップデートについての既存のクライアントアプリケーションに対する変更を実装し、展開することもできる(ステップ506)。包括的アクセスインターフェースは、特定のタイプのコアサービスまたは複合サービスから独立したものとすることができるので、既存のクライアントアプリケーションに対する変更は最小限に、あるいはなくすることができる。新しいサービスまたはサービスアップデートは、包括的アクセスインターフェースを使用して通常のソフトウェア変更またはアップグレーディングによって必要とされる期間よりもかなり短い期間の後にアクセスすることができる。
諸サービスは、包括的アクセスインターフェースを介してアップデートされたクライアントアプリケーションによってアクセスすることができるが、プロセッサ202はまた、新しいサービスまたはサービスアップデートに対するさらに具体的なアクセスを実現するモデルアクセスインターフェースを実装することもできる(ステップ508)。モデルアクセスインターフェースは、包括的アクセスインターフェースに比べて実装するために、より長い時間とより多くの努力を要する可能性があるが、アクセスの速度および効率をかなり改善することができる。
モデルアクセスインターフェースが実装された後に、プロセッサ202は、モデルアクセスインターフェースに基づいてクライアントアプリケーションに対する変更を実装し展開することができる(ステップ510)。包括的アクセスインターフェースに比べてモデルアクセスインターフェースに基づいては、クライアントアプリケーションに対する変更を実装し展開するために、より多くの努力を必要とする可能性があるので、もっと長い時間がかかって初めて、クライアントアプリケーションは諸サービスにアクセスすることができる。しかし、諸サービスは、最初に包括的アクセスインターフェースによってアクセスされてもよいが、それと同時にモデルアクセスインターフェースは実装されている。したがって、諸サービスは、後でモデルアクセスインターフェースによってアクセスすることができる。
図6は、ソフトウェアアーキテクチャ300と整合した、ランタイム中にサービスを提供しサービスにアクセスするためのさらに詳細を伴う例示のソフトウェアアーキテクチャ600を示している。ソフトウェアアーキテクチャ600は、サービス実装レイヤ601(例えばサービス実装レイヤ302)と、ソフトウェアコントローラ602と、サービスランタイムリポジトリ608(例えば、サービスリポジトリ308)と、ローカルクライアントプロキシ604と、サービスマネージャ606(例えば、サービスレイヤ320)とを含むことができる。ソフトウェアアーキテクチャ600はまた、クライアントアプリケーション628と、型付けプロキシ(typed proxy)630-1から630-4と、型付けリポジトリプロキシ(typed repository proxy)632と、ビジネスオブジェクトモデルプロキシ642と、ビジネス情報モデルプロキシ644と、プロセスオブジェクトモデルプロキシ646と、包括的クライアントプロキシ648と、リポジトリマネージャプロキシ650とを含むこともできる。
プロキシは、一般に別のアプリケーションまたはコンピュータシステムに関与する詳細を示さないまま、別のアプリケーションまたはコンピュータシステムの代わりにある種の1つまたは複数のファンクションおよび/またはある種の1つまたは複数のオペレーションを実施するソフトウェアエージェントと称することができる。例えば、ビジネスオブジェクトモデルプロキシ642は、統合メタモデルの下で定義されるビジネスオブジェクトモデルのサービスに対応することができる。
さらに、ソフトウェアアーキテクチャ600はまた、サービスマネージャプロキシ624と、エンタープライズデータオブジェクト626と、直接メソッド呼出し(DMI)620と、単純オブジェクトアクセスプロトコル(SOAP)チャネル622などを含むこともできる。当業者なら、他のコンポーネントおよび/または異なる数のコンポーネントをソフトウェアアーキテクチャ600によって実装することができるので、リストアップされたコンポーネントは、単に例示的なものにすぎず、限定することを意図していないことが理解されよう。
ビジネスオブジェクトプロバイダ612、ビジネス情報プロバイダ614、ビジネスプロセスプロバイダ616、および複合サービスプロバイダ618によって提供される複合サービスおよびコアサービスについての完全な記述を含むメタモデル(例えば、統合メタモデル)を定義することができる。サービス実装レイヤ601は、ビジネスオブジェクトプロバイダ612と、ビジネス情報プロバイダ614と、ビジネスプロセスプロバイダ616と、複合サービスプロバイダ618とを含むことができる。ビジネスオブジェクトプロバイダ612、ビジネス情報プロバイダ614、およびビジネスプロセスプロバイダ616は、様々なコアサービスを提供することができる。
より詳細には、ビジネスオブジェクトプロバイダ612は、ビジネストランザクションの具体的なメタモデル記述に基づいてコアサービスを提供することができ、ビジネス情報プロバイダ614は、ビジネスウェアハウス(例えば、データベースウェアハウス)およびオンライン解析的処理(OLAP)を記述する具体的なメタモデルに基づいてコアサービスを提供することができ、ビジネスプロセスプロバイダ616は、特定の顧客のための特定の出力、または組織内のマーケット横断時間(market across time)および空間を生成するように設計されたビジネスアクティビティを記述する具体的なメタモデルに基づいてコアサービスを提供することができる。
定義されたメタモデル、具体的なメタモデル、および関連するメタデータは、サービスランタイムリポジトリ608(例えば、リポジトリ308)に記憶することができ、ランタイム中にアクセスすることができる。諸サービスとサービスランタイムリポジトリ608は、サービスマネージャ606(例えば、サービスレイヤ320)を介してアクセスすることができる。
さらに、ソフトウェアコントローラ602は、サービスプロバイダ(例えば、ビジネスオブジェクトプロバイダ612、ビジネス情報プロバイダ614、ビジネスプロセスプロバイダ616、および複合サービスプロバイダ618)と、サービスマネージャ606と、サービスランタイムリポジトリ608との間の相互作用を調整することができる。例えば、ソフトウェアコントローラ602は、サービスプロバイダおよび/またはサービスリポジトリ608に対するアクセスをスムーズに進める命名サービスやディレクトリサービスなど、ある種のサービスハンドラおよび/またはウェブサービスユーティリティを提供することができる。ソフトウェアコントローラ602はまた、統合メッセージハンドリング、接続チャネル通知、および/または動的特性ハンドリングなどを提供することもできる。
クライアントアプリケーション628(例えば、エンタープライズアプリケーション310、ウェブアプリケーション312、他のアプリケーション314など)は、異なるインターフェースを介してサービスプロバイダにアクセスすることができる。例えば、クライアントアプリケーション628は、包括的クライアントプロキシ648(例えば、包括的アクセスインターフェース)を直接に使用して、あるいは型付けプロキシ630-4を介して包括的クライアントプロキシ648を使用して、サービスプロバイダにアクセスすることができる。クライアントアプリケーション628はまた、ビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、またはプロセスオブジェクトモデルプロキシ646を使用して、あるいはそれぞれ型付けプロキシ630-1、型付けプロキシ630-2、または型付けプロキシ630-3を介してビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、またはプロセスオブジェクトモデルプロキシ646を使用してサービスプロバイダにアクセスすることもできる。
包括的クライアントプロキシ648は、サービス実装レイヤ601によって提供されるサービスにアクセスするための包括的アクセスインターフェースを提供することができる。包括的クライアントプロキシ648によって提供される包括的アクセスインターフェースを使用するために、対応する具体的なメタモデルおよび/またはメタデータなどの情報は、リポジトリマネージャプロキシ650を介してサービスランタイムリポジトリ608からクライアントアプリケーション628によって取得されてもよい。しかし、他のリポジトリサービスが、包括的クライアントプロキシ648によって使用されてもよい。
ビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、またはプロセスオブジェクトモデルプロキシ646は、それぞれビジネスオブジェクトプロバイダ612、ビジネス情報プロバイダ614、またはビジネスプロセスプロバイダ616に対応するサービスにアクセスするためのモデルアクセスインターフェースを提供することができる。様々なモデルプロキシは、対応するサービスプロバイダ、または対応する具体的なメタモデルによって提供される特定のタイプのコアサービスについての特定のインターフェース、特性、および/またはオペレーションを含むことができる。
型付けプロキシ(例えば、型付けプロキシ630-1から630-4および型付けリポジトリプロキシ632など)は、対応するプロキシ(例えば、ビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、プロセスオブジェクトモデルプロキシ646、包括的クライアントプロキシ648、およびリポジトリマネージャプロキシ650など)の型チェック呼出しを実現することができる。型付けプロキシによって実現される型チェックは、対応するプロキシの任意の呼出しのシンタックスをランタイムコンパイルエラーおよび/または他のタイプのランタイムエラーを低減させるために正しいものとして保証することができる。
さらに、プロキシは、サービスマネージャプロキシ624を介してサービスプロバイダにアクセスすることができる。サービスマネージャプロキシ624は、サービスマネージャ606を介してサービスプロバイダに対する接続を実現する機能インターフェースまたはメソッド呼出しインターフェースを含むことができる。サービスマネージャプロキシ624はまた、一部または全部のプロキシに共通のデータコンテナを提供するエンタープライズデータオブジェクト626を含むこともできる。サービスマネージャプロキシ624は、直接メソッド呼出し620により、または単純オブジェクトアクセスプロトコル(SOAP)チャネル(例えば、アクセスレイヤ318など)を経由したサービスマネージャ606に対する接続を実現することができる。他のミドルウェア規格が、使用されてもよい。
手段、クライアントアプリケーション628が、サービスプロバイダと同じコンピュータプラットフォーム上にあるときなど、直接メソッド呼出し620が使用されるときには、ローカルクライアントプロキシ604を使用して、他のタイプのアクセスについてのメッセージ処理の代わりに、メソッド呼出し(またはファンクションコール)を取り扱うことができる。さらに、サービスマネージャプロキシ624はまた、SDO規格に準拠したサードパーティアプリケーションが、サービスマネージャプロキシ624を介してサービスプロバイダにアクセスすることができるように、SDO(service data objectサービスデータオブジェクト)652をサポートすることもできる。
ソフトウェアアーキテクチャ600によるソフトウェアフレームワークを作成し、かつ/またはアップデートすることは、ソフトウェアアーキテクチャ300によるソフトウェアのフレームワークまたはプログラムと同様の方法で実行することができる。ソフトウェアアーキテクチャ600によるクライアントアプリケーションの操作プロセスは、より詳細なオペレーションを含むことができる。図7は、コンピュータシステム200によって、より詳細にはプロセッサ202によって実施することができる例示のクライアントアプリケーション操作プロセスを示している。
図7に示されるように、クライアントアプリケーション操作プロセスの最初にプロセッサ202は、サービス要求を取得することができる(ステップ702)。クライアントアプリケーション628のユーザが、クライアントアプリケーション628のある種のプログラムを呼び出すときに、あるいは他の任意のソフトウェアプログラムによって要求されるときに、プロセッサ202は、サービス要求を取得することができる。サービス要求を取得した(ステップ702)後に、プロセッサ202は、要求されたサービスがコアサービスか、または複合サービスかを判定することができる(ステップ704)。プロセッサ702が、要求されたサービスが複合サービスであることを判定する場合(ステップ704;no)、プロセッサ202は、包括的クライアントプロキシ650を選択することができる(ステップ710)。
他方、プロセッサ202が、要求されたサービスがコアサービスであることを判定する場合(ステップ704;yes)には、プロセッサ202は、さらに対応するモデルプロキシ(例えば、ビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、またはプロセスオブジェクトモデルプロキシ646など)が使用可能であるかどうかを判定することができる(ステップ706)。対応するモデルプロキシが使用可能でない場合(ステップ706;no)、プロセッサ202はまた包括的クライアントプロキシを選択することもできる(ステップ710)。しかし、対応するモデルプロキシが使用可能である場合(ステップ706;yes)には、プロセッサ202は、要求されたコアサービスにアクセスするための使用可能なモデルプロキシを選択することができる(ステップ708)。
さらに、プロセッサ202は、型付けアクセスが要求されるかどうかを判定することができる(ステップ712)。型付けアクセスが要求される場合(ステップ712;yes)、プロセッサ202は、選択されたモデルプロキシまたは包括的クライアントプロキシについての型付けプロキシ630-1から630-4や型付けリポジトリプロキシ632など、対応する型付けプロキシをコンパイルし、かつ/または呼び出すことができる(ステップ714)。プロセッサ202はまた、型付けアクセス中に任意のコンパイルエラーを報告することもできる。型付けアクセスが要求されない場合(ステップ712;no)、あるいは対応する型付けプロキシがエラーなしでコンパイルされた(ステップ714)後に、プロセッサ202は、エンタープライズデータオブジェクト626を要求されるサービスのために使用されるデータコンテナとして生成することができ、またサービスマネージャプロキシ624を呼び出して(ステップ716)、要求されたサービスにアクセスすることができる。
プロセッサ202はまた、要求アクセスが、直接またはローカルのアクセスであるかどうかを判定することもできる(ステップ718)。要求されたアクセスが、直接またはローカルのアクセスである場合(ステップ718;yes)、プロセッサ202は、直接メソッド呼出しにより要求されたサービスにアクセスすることができる(ステップ720)。他方、要求されたアクセスが、直接またはローカルのアクセスではない場合(ステップ718;no)には、プロセッサ202は、SOAPチャネル622を介して要求されたサービスにアクセスすることができる。しかし、他の接続を使用することもできる。サービスプロバイダは、要求されたサービスを受信することができ、また以前に説明されたように、以上に開示されるアクセス方法を使用してクライアントアプリケーション628に対して対応するサービス応答を送信することができるが、逆の順序(例えば、直接呼出しメソッド620またはSOAPチャネル622、サービスマネージャプロキシ624など)である。
モデルアクセスインターフェース(例えば、ビジネスオブジェクトモデルプロキシ642、ビジネス情報モデルプロキシ644、プロセスオブジェクトモデルプロキシ646、またはリポジトリマネージャプロキシ650など)と、包括的アクセスインターフェース(例えば、包括的クライアントプロキシ648など)の両方を使用することにより、クライアントアプリケーション628は、同じソフトウェアフレームワーク内のコアサービスと複合サービスの両方に柔軟にアクセスすることができる。さらに、新しいサービスまたは既存のサービスのアップデートを、包括的アクセスインターフェースを介して提供して、市場に出るまでの時間および/または実装努力の量をかなり低減させることができるが、より高度でさらに具体的なソリューションを新しいサービスまたはサービスアップデートについて後で提案して、そのソフトウェアフレームワークの速度および/または効率を増大させることができる。
したがって、ユーザまたはソフトウェアプロセスは、統合メタモデルを使用して、サービスプロバイダ上のコアサービスと複合サービスの両方を定義することができ、またクライアントソフトウェアアプリケーションを使用して、共通のソフトウェアフレームワークまたはアーキテクチャを介してコアサービスおよび複合サービスにアクセスすることもできる。コアサービスおよび複合サービスのモデルをエンタープライズ内で再使用して、テストされたソリューションを実現することができる。サードパーティソフトウェアコンポーネントはまた、共通の規格を使用することにより統合することもできる。
開示された例示の方法およびシステムの他の実施形態、特徴、態様、および原理は、当業者には明らかになり、様々な環境およびシステム中において実装することができる。例えば、サードパーティソフトウェアアプリケーション開発業者は、開示されたソフトウェアアーキテクチャを適応させて、ウェブサービスアプリケーションにおけるコアサービスと複合サービスの両方を利用したソフトウェアプログラムを作成し、あるいは開示されたサービスプロバイダアーキテクチャなどと共に機能するクライアントソフトウェアアプリケーションを作成することを可能にすることができる。
ある種の開示された実施形態と整合した操作環境のブロック図である。 ある種の開示された実施形態と整合したコンピュータシステムのブロック図である。 ある種の開示された実施形態と整合した例示のソフトウェアアーキテクチャのブロック図である。 ある種の開示された実施形態と整合した例示の作成プロセスのフローチャートである。 ある種の開示された実施形態と整合した例示のアップグレーディングプロセスのフローチャートである。 ある種の開示された実施形態と整合した別の例示のソフトウェアアーキテクチャのブロック図である。 ある種の開示された実施形態と整合した例示の操作プロセスのフローチャートである。
符号の説明
100 操作環境
102 イントラネット
104 インターネット
106 サービスプロバイダコンピュータ、プロバイダ
108 サービスコンシューマコンピュータ、コンシューマ
110 ゲートウェイ
200 コンピュータシステム
202 プロセッサ
204 ランダムアクセスメモリ(RAM)
206 読取り専用メモリ(ROM)
208 コンソール
210 入力デバイス
212 ネットワークインターフェース
214 データベース
216 ストレージ
300 ソフトウェアアーキテクチャ
302 サービス実装レイヤ
304 コアサービス
306 複合サービス
308 サービスリポジトリ
310 エンタープライズアプリケーション
312 ウェブアプリケーション
314 他のアプリケーション
316 モデルアクセスおよび包括的アクセスのプロキシレイヤ
318 アクセスレイヤ
320 サービスレイヤ
600 ソフトウェアアーキテクチャ
601 サービス実装レイヤ
602 ソフトウェアコントローラ
604 ローカルクライアントプロキシ
606 サービスマネージャ
608 サービスランタイムリポジトリ
612 ビジネスオブジェクトプロバイダ
614 ビジネス情報プロバイダ
616 ビジネスプロセスプロバイダ
618 複合サービスプロバイダ
620 直接メソッド呼出し(DMI)
622 単純オブジェクトアクセスプロトコル(SOAP)チャネル
624 サービスマネージャプロキシ
626 エンタープライズデータオブジェクト
628 クライアントアプリケーション
630-1〜630-4 型付けプロキシ
632 型付けリポジトリプロキシ
642 ビジネスオブジェクトモデルプロキシ
644 ビジネス情報モデルプロキシ
646 プロセスオブジェクトモデルプロキシ
648 包括的クライアントプロキシ
650 リポジトリマネージャプロキシ
652 サービスデータオブジェクト

Claims (20)

  1. サービスプロバイダによってサービスコンシューマに対して1つまたは複数のサービスを提供するための方法であって、
    少なくとも1つのコアサービスと少なくとも1つの複合サービスとを記述するメタモデルを定義すること、
    前記メタモデルに基づいて前記コアサービスについてのモデルを作成すること、
    前記モデルに基づいて前記サービスプロバイダ上で前記コアサービスを実装すること、
    前記サービスプロバイダ上で前記複合サービスを実装すること、および
    前記サービスコンシューマ上で前記コアサービスおよび前記複合サービスに動的にアクセスする包括的アクセスインターフェースを実装すること
    を含む方法。
  2. 前記モデルに基づいて前記コアサービスだけにアクセスするために前記サービスコンシューマ上でモデルアクセスインターフェースを実装すること
    をさらに含む、請求項1に記載の方法。
  3. 前記サービスプロバイダ上で前記メタモデルをリポジトリに記憶すること、および
    前記サービスコンシューマ上で第1のクライアントアプリケーションを展開して、前記コアサービスおよび前記複合サービスの少なくとも一方についての前記サービスプロバイダにアクセスすること
    をさらに含む、請求項2に記載の方法。
  4. 前記サービスプロバイダ上で前記コアサービス中に新しいサービスを実装すること、および
    前記リポジトリを構成して、前記新しいサービスを前記サービスコンシューマに対して使用可能にすること
    をさらに含む、請求項3に記載の方法。
  5. 前記サービスコンシューマ上で前記第1のクライアントアプリケーションによる前記包括的アクセスインターフェースを使用して前記新しいサービスにアクセスすること
    をさらに含む、請求項4に記載の方法。
  6. 第2のクライアントアプリケーションを展開して、前記サービスコンシューマ上で前記第1のクライアントアプリケーションを置き換えて、前記サービスについて前記サービスプロバイダにアクセスすること
    をさらに含み、前記第2のクライアントアプリケーションが、前記新しいサービスに対応するモデルアクセスインターフェースを有する、請求項5に記載の方法。
  7. サービスプロバイダによって提供される1つまたは複数のサービスにアクセスするための方法であって、
    包括的アクセスインターフェースおよびモデルアクセスインターフェースを含むサービスコンシューマによる、前記サービスプロバイダによって提供されるサービスを要求するサービス要求を取得すること、
    要求される前記サービスが、コアサービスであるか、あるいは複合サービスであるかを判定すること、
    前記サービスがコアサービスである場合に、前記モデルアクセスインターフェースが、前記コアサービスにアクセスするために使用可能であるかどうかを判定すること、および
    前記サービスがコアサービスであり、前記モデルアクセスインターフェースが使用可能である場合に、前記サービスプロバイダによって提供される前記サービスにアクセスするための選択されたアクセスインターフェースとして前記モデルアクセスインターフェースを選択すること
    を含む方法。
  8. 前記サービスが複合サービスである場合、または前記サービスがコアサービスであり、前記モデルアクセスインターフェースが使用可能でない場合に、前記サービスプロバイダによって提供される前記サービスにアクセスするための前記選択されたアクセスインターフェースとして前記包括的アクセスインターフェースを選択すること
    をさらに含む、請求項7に記載の方法。
  9. 前記選択されたアクセスインターフェース上で型チェックを実施すること、および
    データコンテナを生成して、前記サービス要求および前記選択されたアクセスインターフェースのためのランタイムメモリ空間を提供すること
    をさらに含む、請求項8に記載の方法。
  10. 前記サービスコンシューマと前記サービスプロバイダが、同じコンピュータプラットフォーム上にあるかどうかを判定すること、および
    前記サービスコンシューマと前記サービスプロバイダが、同じコンピュータプラットフォーム上にある場合に、直接メソッド呼出し方法により前記選択されたアクセスインターフェースを呼び出すこと
    をさらに含む、請求項9に記載の方法。
  11. 前記サービスコンシューマと前記サービスプロバイダが、前記同じコンピュータプラットフォーム上にない場合に、前記サービスコンシューマと前記サービスプロバイダとの間のスモールオブジェクトアクセスプロトコル(SOAP)チャネルを介して前記選択されたアクセスインターフェースにアクセスすること
    をさらに含む、請求項10に記載の方法。
  12. 少なくとも1つのコアサービスと少なくとも1つの複合サービスとを含むサービスを提供するように構成される第1のコンピュータと、
    前記第1のコンピュータによって提供される前記サービスにアクセスするように構成される第2のコンピュータと、
    前記第1のコンピュータと前記第2のコンピュータを結合するように構成される1つまたは複数のコンピュータネットワーク接続と
    を備え、前記第1のコンピュータが、
    前記コアサービスおよび前記複合サービスを記述するメタモデルに基づいて前記コアサービスについてのモデルを作成し、
    前記モデルに基づいて前記サービスプロバイダ上で前記コアサービスを実装し、
    前記サービスプロバイダ上で前記複合サービスを実装し、
    前記第1のコンピュータ上で前記メタモデルをリポジトリに記憶する
    ように構成されるプロセッサをさらに含むシステム。
  13. 前記第2のコンピュータが、さらに
    前記第2のコンピュータ上に前記コアサービスおよび前記複合サービスに動的にアクセスする包括的アクセスインターフェースを実装し、
    前記第2のコンピュータ上に前記モデルに基づいて前記コアサービスだけにアクセスするモデルアクセスインターフェースを実装し、
    前記第2のコンピュータ上に第1のクライアントアプリケーションを展開して、前記包括的アクセスインターフェースおよび前記モデルアクセスインターフェースの一方を使用して前記のコアサービスおよび複合サービスの少なくとも一方についての前記サービスプロバイダにアクセスするように構成される、請求項12に記載のシステム。
  14. 前記プロセッサが、さらに
    前記第1のコンピュータ上で前記コアサービス中に新しいサービスを実装し、前記リポジトリを構成して前記新しいサービスを使用可能にするように構成される、請求項13に記載のシステム。
  15. 前記第2のコンピュータが、さらに
    前記第2のコンピュータ上で前記第1のクライアントアプリケーションにより前記包括的アクセスインターフェースを使用して前記新しいサービスにアクセスするように構成される、請求項14に記載のシステム。
  16. 前記第2のコンピュータが、さらに
    第2のクライアントアプリケーションを展開して、前記サービスコンシューマ上で前記第1のクライアントアプリケーションを置き換えて、前記第1のコンピュータ上で前記コアサービスにアクセスするように構成され、前記第2のクライアントアプリケーションが、前記新しいサービスに対応するモデルアクセスインターフェースを有する、請求項15に記載のシステム。
  17. サービスコンシューマが、コンピュータシステム上でサービスプロバイダによって提供されるサービスにアクセスするように構成される前記コンピュータシステム上で使用するためのコンピュータ読取り可能媒体であって、
    包括的アクセスインターフェースおよびモデルアクセスインターフェースを含むサービスコンシューマによる、前記サービスプロバイダによって提供されるサービスを要求するサービス要求を取得すること、
    要求される前記サービスが、コアサービスであるか、あるいは複合サービスであるかを判定すること、
    前記サービスがコアサービスである場合に、前記モデルアクセスインターフェースが、前記コアサービスにアクセスするために使用可能であるかどうかを判定すること、および
    前記サービスがコアサービスであり、前記モデルアクセスインターフェースが使用可能である場合に、前記サービスプロバイダによって提供される前記サービスにアクセスするための選択されたアクセスインターフェースとして前記モデルアクセスインターフェースを選択すること
    を含む方法を実施するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体。
  18. 前記方法が、
    前記サービスが複合サービスである場合、または前記サービスがコアサービスであり、前記モデルアクセスインターフェースが使用可能でない場合に、前記サービスプロバイダによって提供される前記サービスにアクセスするための前記選択されたアクセスインターフェースとして前記包括的アクセスインターフェースを選択すること
    をさらに含む、請求項17に記載のコンピュータ読取り可能媒体。
  19. 前記方法が、
    前記選択されたアクセスインターフェース上で型チェックを実施すること、および
    データコンテナを生成して、前記サービス要求および前記選択されたアクセスインターフェースのためのランタイムメモリ空間を提供すること
    をさらに含む、請求項18に記載のコンピュータ読取り可能媒体。
  20. 前記方法が、
    前記サービスコンシューマと前記サービスプロバイダが、両方ともに前記コンピュータシステム上にあるかどうかを判定すること、
    前記サービスコンシューマと前記サービスプロバイダが、両方ともに前記コンピュータシステム上にある場合に、直接メソッド呼出し方法により前記選択されたアクセスインターフェースを呼び出すこと、および
    前記サービスコンシューマと前記サービスプロバイダが、両方ともには前記コンピュータシステム上にない場合に、前記サービスコンシューマと前記サービスプロバイダとの間のスモールオブジェクトアクセスプロトコル(SOAP)チャネルを介して前記選択されたアクセスインターフェースにアクセスすること
    をさらに含む、請求項17に記載のコンピュータ読取り可能媒体。
JP2007133412A 2006-05-19 2007-05-18 コンピュータソフトウェア開発の方法およびシステム Active JP5230964B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/436,613 US7770146B2 (en) 2006-05-19 2006-05-19 Computer software development incorporating core and compound services
US11/436,613 2006-05-19

Publications (2)

Publication Number Publication Date
JP2007310891A true JP2007310891A (ja) 2007-11-29
JP5230964B2 JP5230964B2 (ja) 2013-07-10

Family

ID=38512444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007133412A Active JP5230964B2 (ja) 2006-05-19 2007-05-18 コンピュータソフトウェア開発の方法およびシステム

Country Status (4)

Country Link
US (2) US7770146B2 (ja)
EP (1) EP1857931A3 (ja)
JP (1) JP5230964B2 (ja)
CN (1) CN101075333A (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8887130B2 (en) * 2006-06-16 2014-11-11 Sony Corporation Software design and development in a service oriented environment
US7774463B2 (en) * 2006-07-25 2010-08-10 Sap Ag Unified meta-model for a service oriented architecture
US20090132220A1 (en) * 2007-11-21 2009-05-21 International Business Machines Corporation Method For Creating A Telecommunications Application
US9158510B2 (en) * 2007-11-21 2015-10-13 International Business Machines Corporation System and computer program product for creating a telecommunications application
US20090172003A1 (en) * 2007-12-27 2009-07-02 Frank Jentsch Secondary Persistencies in a Service-Oriented Business Framework
US20100121740A1 (en) * 2008-11-13 2010-05-13 Oracle International Corporation Data driven orchestration of business processes
US9020881B2 (en) * 2008-12-19 2015-04-28 Sap Se Public solution model in an enterprise service architecture
IL197576A0 (en) * 2009-03-12 2009-12-24 Univ Ben Gurion A method and tool for task modeling of mobile phone applications
CN101877109A (zh) * 2010-04-08 2010-11-03 苏州德融嘉信信用管理技术有限公司 基于网上银行业务平台的应用系统工具集
US8832658B2 (en) 2010-12-21 2014-09-09 Sap Ag Verification framework for business objects
US9423920B2 (en) 2010-12-22 2016-08-23 Sap Se System and method for modifying user interface elements
US9135319B2 (en) 2010-12-28 2015-09-15 Sap Se System and method for executing transformation rules
US8805859B2 (en) * 2011-02-21 2014-08-12 General Electric Company Methods and systems for receiving, mapping and structuring data from disparate systems in a healthcare environment
US9009740B2 (en) * 2011-07-13 2015-04-14 Adobe Systems Incorporated Invocation of additional processing using remote procedure calls
US8863075B2 (en) 2011-08-10 2014-10-14 Sap Ag Automated support for distributed platform development
US8584136B2 (en) 2011-08-15 2013-11-12 Sap Ag Context-aware request dispatching in clustered environments
US9406044B2 (en) * 2011-12-22 2016-08-02 Sap Se Rule-based determination and validation in business object processing
CN102523308B (zh) * 2011-12-31 2015-01-14 北京新媒传信科技有限公司 一种应用开发方法和运行该方法所开发应用的平台系统
US9524146B2 (en) * 2012-12-14 2016-12-20 Sap Se Typed access of business object data structures
US10091282B2 (en) 2013-06-12 2018-10-02 Sap Se Metadata-driven dynamic load balancing in multi-tenant systems
CN104361425A (zh) * 2014-10-14 2015-02-18 许继电气股份有限公司 基于代理的智能变电站全景信息综合集成展示方法
US9853913B2 (en) * 2015-08-25 2017-12-26 Accenture Global Services Limited Multi-cloud network proxy for control and normalization of tagging data
US10768975B2 (en) * 2016-03-04 2020-09-08 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
US10423917B2 (en) 2016-12-19 2019-09-24 Sap Se Modeling internet of things devices in processes
CN111052082A (zh) * 2017-02-22 2020-04-21 思开睿公司 计算机网络建模
US11379481B2 (en) 2018-05-03 2022-07-05 Sap Se Query and metadata repositories to facilitate content management and lifecycles in remote analytical application integration
US11354332B2 (en) 2020-05-20 2022-06-07 Sap Se Enabling data access by external cloud-based analytics system
US11567738B2 (en) 2021-04-15 2023-01-31 Red Hat, Inc. Code generator for creating a unified data model for multiple language specifications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140239A (ja) * 2000-08-17 2002-05-17 Masahiro Mizuno 情報管理システム及び情報管理方法及びシステム制御装置
JP3628577B2 (ja) * 1999-02-18 2005-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・データ処理装置、操作方法および記憶装置
JP2005339520A (ja) * 2004-04-26 2005-12-08 Ricoh Co Ltd サービス提供装置、サービス提供プログラム、記録媒体及びサービス提供方法
JP2006092039A (ja) * 2004-09-21 2006-04-06 Fuji Xerox Co Ltd サービス利用システム

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638539A (en) * 1994-02-28 1997-06-10 International Business Machines Corporation Tool for defining complex systems
US6011917A (en) * 1995-08-23 2000-01-04 International Business Machines Corporation Method and computer system for generating process management computer programs from process models
DE19712946A1 (de) * 1996-05-30 1997-12-04 Ibm Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
JP2002526833A (ja) * 1998-09-30 2002-08-20 アイツー テクノロジーズ, インコーポレイテッド 多次元データ管理システム
US6678882B1 (en) * 1999-06-30 2004-01-13 Qwest Communications International Inc. Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
US7152228B2 (en) * 1999-07-08 2006-12-19 Science Applications International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6601234B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US7188332B2 (en) * 1999-10-05 2007-03-06 Borland Software Corporation Methods and systems for relating a data definition file and a data model for distributed computing
US7810069B2 (en) * 1999-10-05 2010-10-05 Borland Software Corporation Methods and systems for relating data structures and object-oriented elements for distributed computing
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
WO2002037261A2 (en) * 2000-11-03 2002-05-10 Wilde Technologies Limited A software development process
US7320120B2 (en) * 2000-12-20 2008-01-15 Microsoft Corporation Pluggable notations and semantics for visual modeling elements
US20020174169A1 (en) * 2001-05-21 2002-11-21 Schmid Hans Albrecht Process for operating a distributed computer network comprising several distributed computers
US7322025B2 (en) * 2001-07-17 2008-01-22 Tata Consultancy Services Limited Method and apparatus for versioning and configuration management of object models
US7316000B2 (en) * 2001-08-27 2008-01-01 International Business Machines Corporation Interactive agent for a topological multi-tier business application composer
US6757899B2 (en) * 2001-10-11 2004-06-29 Harris Corporation Dynamic CORBA gateway for CORBA and non-CORBA clients and services
AU2003211000A1 (en) * 2002-02-12 2003-09-04 Sandpiper Software, Inc. Ontology frame-based knowledge representation in the unified modeling language (uml)
US7028288B2 (en) * 2002-06-03 2006-04-11 Sun Microsystems, Inc. Input field constraint mechanism
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US6839724B2 (en) * 2003-04-17 2005-01-04 Oracle International Corporation Metamodel-based metadata change management
US7287037B2 (en) * 2003-08-28 2007-10-23 International Business Machines Corporation Method and apparatus for generating service oriented state data mapping between extensible meta-data model and state data including logical abstraction
US7293254B2 (en) * 2003-09-18 2007-11-06 Microsoft Corporation Extensibility application programming interface and framework for meta-model objects
US7543268B2 (en) * 2003-09-30 2009-06-02 Sap Ag Development environment for developing applications using a metamodel and a metadata API
US7533365B1 (en) * 2004-02-03 2009-05-12 Borland Software Corporation Development system with methodology for run-time restoration of UML model from program code
US8271541B2 (en) * 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7506303B2 (en) * 2005-01-12 2009-03-17 International Business Machines Corporation System and method for utilizing non-EMF based objects in an EMF environment
US7681176B2 (en) * 2005-03-04 2010-03-16 Microsoft Corporation Generating a graphical designer application for developing graphical models
US7480897B2 (en) * 2005-03-10 2009-01-20 International Business Machines Corporation Method and system for managing development objects for computer program code
US7941784B2 (en) * 2005-03-14 2011-05-10 Research In Motion Limited System and method for generating component based applications
US7463263B2 (en) * 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
US7992132B2 (en) * 2005-11-10 2011-08-02 Computer Associates Think, Inc. Server side application integration framework
US7979840B2 (en) * 2006-10-31 2011-07-12 International Business Machines Corporation Method and apparatus for service-oriented architecture process decomposition and service modeling
US7984417B2 (en) * 2007-06-29 2011-07-19 Sap Portals Israel Ltd. Meta-model information associated with an enterprise portal
US8112738B2 (en) * 2007-09-26 2012-02-07 Sap Ag Apparatus and method of customizable model import and export to and from XML schema formats
US8214794B2 (en) * 2008-03-06 2012-07-03 International Business Machines Corporation Populating information contained in java annotations into existing EMF models
US8276112B2 (en) * 2008-03-28 2012-09-25 Sap Ag Performance-related decision support for model-driven engineering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628577B2 (ja) * 1999-02-18 2005-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・データ処理装置、操作方法および記憶装置
JP2002140239A (ja) * 2000-08-17 2002-05-17 Masahiro Mizuno 情報管理システム及び情報管理方法及びシステム制御装置
JP2005339520A (ja) * 2004-04-26 2005-12-08 Ricoh Co Ltd サービス提供装置、サービス提供プログラム、記録媒体及びサービス提供方法
JP2006092039A (ja) * 2004-09-21 2006-04-06 Fuji Xerox Co Ltd サービス利用システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200601474008; 根本 たかとし: 'Webアプリ開発/実行環境 日立製作所 Cosminexus Version6' 開発の現場 vol.002 , 20050912, pp.196-199, 株式会社翔泳社 *
JPN6012044919; 根本 たかとし: 'Webアプリ開発/実行環境 日立製作所 Cosminexus Version6' 開発の現場 vol.002 , 20050912, pp.196-199, 株式会社翔泳社 *

Also Published As

Publication number Publication date
US7770146B2 (en) 2010-08-03
CN101075333A (zh) 2007-11-21
EP1857931A2 (en) 2007-11-21
US20110023009A1 (en) 2011-01-27
EP1857931A3 (en) 2007-12-12
US8473896B2 (en) 2013-06-25
JP5230964B2 (ja) 2013-07-10
US20070288508A1 (en) 2007-12-13

Similar Documents

Publication Publication Date Title
JP5230964B2 (ja) コンピュータソフトウェア開発の方法およびシステム
US7836439B2 (en) System and method for extending a component-based application platform with custom services
US7937500B2 (en) Dynamic, real-time integration of software resources through services of a content framework
US8335862B2 (en) Programmatic management of software resources in a content framework environment
US6985939B2 (en) Building distributed software services as aggregations of other services
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
US7363628B2 (en) Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
US8056091B2 (en) Systems and methods for using application services
EP1818820A1 (en) System and method for installing custom services on a component-based application platform
JP2011204228A (ja) 学習メカニズムを用いたマッシュアップインフラストラクチャ
US8458647B2 (en) Method and apparatus for graphically constructing applications utilizing information from multiple sources
EP1444609A1 (en) Application view component for system integration
JP2009054151A (ja) 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体
McGovern et al. Understanding service-oriented architecture
JP2004356735A (ja) ネットワークアクセスのための方法,プログラム,サーバ,システム
AU2002347920A1 (en) Application view component for system integration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

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

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5230964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250