JPWO2010116676A1 - サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム - Google Patents

サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム Download PDF

Info

Publication number
JPWO2010116676A1
JPWO2010116676A1 JP2011508229A JP2011508229A JPWO2010116676A1 JP WO2010116676 A1 JPWO2010116676 A1 JP WO2010116676A1 JP 2011508229 A JP2011508229 A JP 2011508229A JP 2011508229 A JP2011508229 A JP 2011508229A JP WO2010116676 A1 JPWO2010116676 A1 JP WO2010116676A1
Authority
JP
Japan
Prior art keywords
version
service
class group
user
updated
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.)
Pending
Application number
JP2011508229A
Other languages
English (en)
Inventor
栄 島村
栄 島村
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2010116676A1 publication Critical patent/JPWO2010116676A1/ja
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

サービス提供装置(200)は、利用者(13)ごとに提供サービスと、その版情報を記憶する版情報格納部(207)と、デフォルトクラス群(221)および版ごとの更新クラス群(231)を格納するローダ管理部(210)と、ローダ管理部(210)からデフォルトクラス群(221)を読出して実行するデフォルトローダ(223)と、更新クラス群(231)を読出して実行する差分ローダ(233)と、サービスの利用要求を受け付ける受付部(203)と、版情報格納部(207)を参照し、要求元の利用者(13)の版を特定する特定部(205)と、デフォルトローダ(223)および特定された版の差分ローダ(233)を使用し、利用者(13)に適した版のサービスオブジェクトを生成して処理を実行するオブジェクト管理部(241)と、サービスを利用者(13)に提供する提供部(243)と、を備える。

Description

本発明は、サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラムに関し、特に、複数の版のサービスを多重に提供するサービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラムに関する。
近年、複数の利用者に対して同一のプラットフォーム上で様々なサービスを提供するSaaS(Software as a Service)/ASP(Application Service Provider)によるサービス提供モデルが注目を集めている。こうした形態のサービスの代表的なものとして、Salesforce.com(http://www.salesforce.com/jp/)などが存在する。SaaS/ASP型のサービスは、一定のAPI(Application Program Interface)を公開し、利用者からSOAP(Simple Object Access Protocol)、HTTP(HyperText Transfer Protocol)などのプロトコルを用いてその機能を利用できるようにしているものがある。
特許文献1(特開2008−123183号公報)に記載のシステムは、SaaS型のサービスにおいて、サービスをソフトウェアの機能単位で提供することで、利用者が用途ごとに必要最小限のサービスを利用できることが記載されている。
一般にこのサービスはバグ対応、機能向上などの目的で不定期に新しい版のものに更新され、個々のAPIやAPIによって実現される機能は変更、追加、削除されうる。
このようなサービス更新に関連した技術として、更新モジュールを自動的に最新にする方法が特許文献2(特開2006−011801号公報)に記載されている。しかしながら、通常サービスの更新は継続的に行われるものであり、特許文献1に記載の技術のような、単純な新版、旧版という2種類ではなく、複数のバージョンV1.0、V1.01、V1.12、V2.0といった具合に最新版と複数の旧版が存在するのが一般的であり、一部の利用者については旧版のサービスを提供し続ける必要がある。
複数の版のサービスを継続提供するという要件に加えて、多くのSaaS/ASP型のサービスは、サービス更新時においてもサービスを継続する必要がある。このため既存のASP事業者は旧版のサービスを継続しつつ、これらが稼働するのとは別のサーバハードウェアやVMWare(登録商標)、Xen(登録商標)などに代表される仮想化技術による仮想OS(Operating System)に新版サービスを配備して、あるタイミングで新版、旧版を入れ替えるという方法をとってきた。一方で、新版のAPIや機能に追従できない一部の利用者に対しては旧版のサービスを提供しているハードウェアの一部を残して、旧版サービスの提供を継続する。
このときの入れ替えの例を図19で説明する。利用者群3(U1)は負荷分散器7を介してV1.00版のサービス提供装置群10で提供されるサービスを利用している。このとき、負荷分散器7は多数の利用者3からの複数の要求を、サービス提供装置群10内のサービス提供装置11〜12へ適切に分配する機能を持つ。サービス提供装置11は要求受信応答部101で利用者からの要求を受信すると、ローダ102から処理に必要なオブジェクトを取得する。ローダ102には配備時にV1.00サービス処理を実装したクラス群103が読み込まれており、ローダ102はここから処理に必要なオブジェクトを生成して要求受信応答部101へ返す。処理が完了したら要求受信応答部101は結果を応答として利用者3へ返す。
そして、このサービスをV1.01版に更新する場合、V1.01版のサービス提供装置群15を増設用に用意する。サービス提供装置群15のサービス提供装置16〜17は、要求受信応答部101およびローダ102はサービス提供装置群10のものと同一で、ローダ102に読み込まれているV1.01サービス用の処理を実装したクラス群153のみが異なっている。
次に適切なタイミングで負荷分散器7の設定を変更し、V1.00版のサービス提供装置群10への接続は止め、利用者群3からの要求をV1.01版のサービス提供装置群15内のサービス提供装置16〜17へ割り振る。利用者3の内、V1.00版でのサービスを継続する利用者群U2からの要求については、負荷分散器7はV1.00版のサービス提供装置群10へ要求を割り振るが、一般に旧版の利用は縮小傾向にあるため、管理者は適宜V1.00版のサービス提供装置群10内のサービス提供装置を撤去またはV1.01版へ移行することによって旧版のサービス提供装置群10を縮退する。
上記のような版の多重管理の方法は、ほぼ同一だが一部分が異なるサービスを複数配備することにより、共通部分を多重に配備している。たとえば、V1.00サービス用クラス群103の一部のクラスのみを更新した場合でも、V1.01サービス用クラス群153は更新のない共通部分も含めて読み込まれなければならない。
こうした方法に対して、サービス更新時にサービス全体のコピーを用意するのではなく必要な部分のみを改版する既存技術として、高度にモジュール化されたソフトウェアの一部分を変更し、ソフトウェア全体を停止することなく再配備するというシステムの一例が、特許文献3(特開2003−337702号公報)に記載されている。
また、特許文献4(特開2008−165377号公報)に記載のシステムは、一アプリケーション実行時に、ファイルシステム上の複数バージョンのライブラリを管理する方法の最適化を行う構成が記載されている。このシステムでは、同一ライブラリの異なる版を同一システムで利用可能とし、パッケージの版の更新後も、古い版のプログラムをバックアップしておくことで、以前の古い版に戻すことができるとされている。
特開2008−123183号公報 特開2006−011801号公報 特開2003−337702号公報 特開2008−165377号公報
ところで、上述したように、SaaS/ASP型のサービスでは、サービスの要求元利用者の要件に応じて複数の版のサービスを多重に提供する必要がある。
上述した文献記載のシステムにおいては、ASPなどサーバ側でアプリケーションを実行し、その結果を利用者に返すことでサービスを提供するシステムではなく、端末側でアプリケーションを実行するため、同じアプリケーションの複数のバージョンを同時に実行する必要はなく、仮に、上記文献記載の技術をサーバに適用し、複数のバージョンのアプリケーションを同時に実行するには、バージョンごとに適切なマウントポイントを設定して、個別にアプリケーションを立ち上げる必要がある。この場合、異なるバージョンのアプリケーション間で共通のライブラリであってもメモリ上には重複して読み込まれることから、メモリ使用容量が増大し、負荷がかかるといった問題点があった。
本発明の目的は、上述した課題である、旧版のサービス継続に必要な計算機リソースをできるだけ効率化でき、かつ、サービスの要求元の要件に応じて複数の版のサービスを多重に提供することができるサービス提供装置、システム、方法、およびプログラムを提供することにある。
本発明のサービス提供装置は、利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶手段と、
前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶手段と、
前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶手段と、
前記デフォルトクラス群記憶手段に記憶された前記デフォルトクラス群を読み出して実行するデフォルトロード手段と、
前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶手段に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ロード手段と、
前記利用者から前記サービスの利用の要求を受け付ける受付手段と、
前記版情報記憶手段を参照し、前記要求を受け付けた前記利用者に適した版を特定する特定手段と、
前記デフォルトロード手段および特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ロード手段を使用して、特定された前記利用者に適した版のサービスオブジェクトを生成して処理を実行するサービスオブジェクト管理手段と、
前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供する提供手段と、を備える。
本発明のサービス提供システムは、複数の上記サービス提供装置と、
複数の前記サービス提供装置の負荷状態に応じて、利用者の要求に呼応してサービス提供を実施するサービス提供装置を決定し、前記サービス提供装置を割り当てる負荷分散装置と、を備え、
複数の前記サービス提供装置は、利用適用中のすべての版についてすべてのサービスを同様に前記利用者に提供できるように、
同じ版のデフォルトクラス群を前記デフォルトクラス群記憶手段に格納し、
同じ前記利用適用中のすべての版の更新版別クラス群を前記更新版別クラス群記憶手段にそれぞれ格納する。
本発明のサービス提供装置のデータ処理方法は、
前記サービス提供装置が、
利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶装置と、
前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶装置と、
前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶装置と、
前記デフォルトクラス群記憶装置に記憶された前記デフォルトクラス群を読み出して実行するデフォルトローダと、
前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶装置に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ローダと、を備え、
前記サービス提供装置が、
前記利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて前記版情報記憶装置に記憶し、
前記デフォルトクラス群を前記デフォルトクラス群記憶装置に格納し、
前記最も古い版以降に更新された版ごとに、前記更新版別クラス群を前記更新版別クラス群記憶装置にそれぞれ格納し、
前記利用者から前記サービスの利用の要求を受け付け、
前記版情報記憶装置を参照し、前記要求を受け付けた前記利用者に適した版を特定し、
前記デフォルトローダおよび特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ローダを使用して、前記利用者に適した版のサービスオブジェクトを生成して処理を実行し、
前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供する。
本発明のサービス提供装置を制御するコンピュータプログラムは、
コンピュータが、
利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶装置と、
前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶装置と、
前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶装置と、
前記デフォルトクラス群記憶装置に記憶された前記デフォルトクラス群を読み出して実行するデフォルトローダと、
前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶装置に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ローダと、を備え、
コンピュータに、
前記利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて前記版情報記憶装置に記憶する手順と、
前記デフォルトクラス群を前記デフォルトクラス群記憶装置に格納する手順と、
前記最も古い版以降に更新された版ごとに、前記更新版別クラス群を前記更新版別クラス群記憶装置にそれぞれ格納する手順と、
前記利用者から前記サービスの利用の要求を受け付ける手順と、
前記版情報記憶装置を参照し、前記要求を受け付けた前記利用者に適した版を特定する手順と、
前記デフォルトローダおよび特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ローダを使用して、前記利用者に適した版のサービスオブジェクトを生成して処理を実行する手順と、
前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供する手順と、を実行させるためのコンピュータプログラムである。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明のデータ処理方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明のデータ処理方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
さらに、本発明のデータ処理方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
本発明によれば、サービス更新時におけるサービス停止と、利用者側で不整合の発生とを解決するサービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラムが提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の実施の形態に係るサービス提供装置の版情報格納部に記憶している版情報管理テーブルの構造の一例を示す図である。 本発明の実施の形態に係るサービス提供システムの動作の一例を示すフローチャートである。 本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクト動作時の動作の一例を示すフローチャートである。 本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の実施の形態に係るサービス提供装置の利用状況記憶部に記憶しているセッション情報テーブルの構造の一例を示す図である。 本発明の実施の形態に係るサービス提供システムの動作の一例を示すフローチャートである。 本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクトの版削除時の動作の一例を示すフローチャートである。 本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクトの版追加時の登録動作の一例を示すフローチャートである。 本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の一実施例におけるユーザリクエストデータの一例を示す図である。 本発明の一実施例におけるセッション付きユーザリクエストデータの一例を示す図である。 本発明の一実施例におけるサービス要求に対するサービスレスポンスの一例を示す図である。 本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。 本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクトの版追加時の登録動作の一例を示すフローチャートである。 本発明の一実施例におけるAspect記述による既存クラスの更新例を説明する図である。 異なるバージョンのサービスを配備したサービス提供装置を備えた構成の一例を示すブロック図である。
(第1の実施の形態)
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
図1は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。
まず、本明細書において「利用者」とは、サービス提供装置で提供されているサービスを利用する主体全般をさすものとし、それは人間、人間が使用している端末装置およびプログラム、さらに人間のインタラクションとは直接関係なく動作している装置およびプログラムのことをも指すものとする。
また、「利用者」は、企業単位、企業の所属部門ごとのような複数のユーザをまとめた利用者群であってもよいし、個人ユーザであってもよい。
まず、本発明の前提を述べる。本発明におけるサービスオブジェクトは複数のクラスを実体化したインスタンスから構成される。このインスタンスはローダによって管理されているクラスから生成され、メモリ上に配置されることでサービスオブジェクトとして実行可能な状態となる。
本発明のシステムが提供するサービスとは、ソフトウェアで実現できる何らかの機能であり、たとえば、ワープロや表計算などの市販のパッケージソフトウェアだけでなく、予定表やプロジェクト管理、掲示板、電子会議室、Webメールの配信などにより社内の情報共有を行うグループウェアと呼ばれるもの、財務・会計を行うもの、オンラインストレージによってデータ共有を行うもの、各業種や各企業に特化された、または汎用の営業管理、財務管理、生産管理、CRM(Customer Relationship Management)顧客管理を行うものなどビジネス用のソフトウェア、およびCAD(computer aided design)や構造計算、画像/音声などのメディア処理、流体シミュレーションのような高度な科学技術計算を行うライブラリの機能を有するものを含む。
特に、頻繁に機能更新が発生し、多数のユーザによって強要されるようなWebアプリケーションサービスに有用である。
本発明の実施の形態に係るサービス提供装置200は、利用者13ごとに提供すべきサービスと、サービスの版情報を関連付けて記憶する版情報記憶部(版情報格納部207)と、利用者13に提供すべきサービスの中で最も古い版のデフォルトクラス群221を格納するデフォルトクラス群記憶部(ローダ管理部210)と、最も古い版以降に更新された版ごとに、デフォルトクラス群221との差分クラス群を含む更新版別クラス群(更新クラス群231)をそれぞれ格納する更新版別クラス群記憶部(ローダ管理部210)と、ローダ管理部210に記憶されたデフォルトクラス群221を読み出して実行するデフォルトロード部(デフォルトローダ223)と、更新クラス群231ごとに設けられ、ローダ管理部210に記憶された更新クラス群231をそれぞれ読み出して実行する更新版別差分ロード部(差分ローダ233)と、利用者13からサービスの利用の要求を受け付ける受付部(要求受付部203)と、版情報格納部207を参照し、要求を受け付けた利用者13に適した版を特定する特定部(ローダ特定部205)と、デフォルトローダ223および特定された利用者13に適した版の更新クラス群231に対応する差分ローダ233を使用して、特定された利用者13に適した版のサービスオブジェクトを生成して処理を実行するサービスオブジェクト管理部241と、処理を実行した結果により要求に応じたサービスを利用者13に提供する提供部(サービス提供部243)と、を備える。
利用者13(図中、利用者U1およびU2)は、サービス提供装置200にサービス要求を送信する。同図では、利用者U1より利用者U2の方がユーザ数やサービスの利用量や頻度が多いことを示しており、ユーザ数やサービスの利用量あるいは頻度などは利用者13ごとに異なることを示している。
サービス提供装置200は、インターフェイス部(I/F)201と、要求受付部203と、ローダ特定部205と、版情報格納部207と、ローダ管理部210と、サービスオブジェクト管理部241と、サービス提供部243と、を備えている。
ローダ管理部210は、デフォルトクラス群221と、デフォルトローダ223と、少なくとも一つの差分ローダ233と、各差分ローダ233に対応する更新クラス群231と、を有する。
サービス提供装置200は、図示しないCPU(Central Processing Unit)やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置が接続可能なコンピュータであり、例えば、記録媒体(磁気ディスク、半導体メモリ、光ディスク等)に格納されたコンピュータプログラムにしたがって処理を実行するコンピュータによって各構成要素の各機能が実現される。なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
また、サービス提供装置の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
そして、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、各ユニットの各機能を実現することができる。
本実施形態のコンピュータプログラムは、サービス提供装置200を制御するコンピュータプログラムであって、コンピュータに、利用者13ごとに提供すべきサービスと、サービスの版情報を関連付けて版情報格納部207に記憶する手順と、デフォルトクラス群221をローダ管理部210に格納する手順と、最も古い版以降に更新された版ごとに、更新クラス群231をローダ管理部210にそれぞれ格納する手順と、利用者13からサービスの利用の要求を受け付ける手順と、版情報格納部207を参照し、要求を受け付けた利用者13に適した版を特定する手順と、デフォルトローダ223および特定された利用者13に適した版の更新クラス群231に対応する差分ローダ233を使用して、利用者13に適した版のサービスオブジェクトを生成して処理を実行する手順と、処理を実行した結果により要求に応じた前記サービスを利用者13に提供する手順と、を実行させるように記述されている。
インターフェイス部201は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク25を介して利用者13の端末や装置と通信する。要求受付部203は、利用者13からの要求をネットワーク25を介して受信し、受信した要求内容から、各種情報を取り出し、サービスオブジェクト管理部241へ渡す。詳細には、要求受付部203は、利用者13から受信した要求内容から、要求元を判別するため情報、一連の関連する要求を識別するID、利用サービスを識別する情報、および利用サービスに対するパラメータを取り出し、サービスオブジェクト管理部241へ渡す。なお、特に一連の関連する要求について、本発明では以下「セッション」と呼ぶこととし、このIDをセッションIDとする。
サービスオブジェクト管理部241は、要求受付部203から受け取ったパラメータに基づいて、要求元の利用者13に応じて適切なサービスオブジェクトを構成して実行する。詳細には、サービスオブジェクト管理部241は、要求受付部203から受け取ったパラメータをローダ特定部205に渡し、利用者13に適した版のローダを要求する。そして、ローダ特定部205から返されたローダを用いてサービスオブジェクトを生成する。さらにこのサービスオブジェクトにパラメータを渡して処理を行い、その結果をサービス提供部243に渡す。
ローダ特定部205は、サービスオブジェクト管理部241からの要求に応じて、ユーザごとの利用サービスの版に応じて適切なローダを特定する。詳細には、ローダ特定部205は、版情報格納部207の版情報管理テーブル700から、要求元の利用者13に対して提供すべき版情報を取得する。なお、もっとも古いバージョンが要求された場合には、差分ローダ233は取得せず、デフォルトローダ223のみを取得する。
版情報格納部207は、利用者ごとにどの版のサービスを利用するのかを格納する。図2は、版情報格納部207に記憶している版情報管理テーブル700の構造の一例を示す図である。同図に示すように、版情報管理テーブル700は、利用者13の利用者ID、その利用者13に提供するサービス、その提供されるサービスの版番号と、をそれぞれ対応付ける利用者ID欄701、サービス名欄702、版番号欄703を有する。なお、版番号欄703では、特定の版の指定だけでなく、たとえば、常に最新の版にするなどの指定も可能とする。
図1に戻り、サービス提供部243は、サービスオブジェクト管理部241から処理の結果を受け取り、利用者13にネットワーク25を介して提供する。これにより、利用者13の要求にあったサービスを提供することができる。
ローダ管理部210において、デフォルトローダ223は、本システムのすべての利用者13に共通のデフォルトクラス群221を管理する。差分ローダ233は、版ごとのデフォルトクラス群221からの複数の更新クラス群231を管理する複数の差分ローダA〜Xからなる。デフォルトローダ223と、すべての差分ローダA〜Xの間には親子関係があり、デフォルトローダ223がすべての差分ローダ233の親となる。なお、差分ローダ233は提供する必要がある版の数だけ存在し、図1のV1.01、V1.02、V2.00といった版番号やローダの数は例に過ぎない。また、この各差分ローダ233は提供が必要な版の数だけ用意され、図中の3つに限定されるわけではない。
最も古い版のサービスを実現するために必要なクラス群を格納したデフォルトクラス群221は、デフォルトローダ223がメモリ上にロードし、これより新しい版の更新部分のクラスからなる更新クラス群231はそれぞれの版用の差分ローダ233がロードする。
このように構成された本実施形態のサービス提供システムの動作について以下に説明する。
図3は、本実施形態のサービス提供システムの動作の一例を示すフローチャートである。以下、図1乃至図3を用いて説明する。
本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置200が、利用者13ごとに提供すべきサービスと、サービスの版情報を関連付けて版情報格納部207に記憶し、デフォルトクラス群221をローダ管理部210に格納し、最も古い版以降に更新された版ごとに、更新クラス群231をローダ管理部210にそれぞれ格納し、利用者13からサービスの利用の要求を受け付け(ステップS101)、版情報格納部207を参照し、要求を受け付けた利用者13に適した版を特定し(ステップS105)、デフォルトローダ223および特定された利用者13に適した版の更新クラス群231に対応する差分ローダ233を使用して、利用者13に適した版のサービスオブジェクトを生成して処理を行い(ステップS107、ステップS109)、処理を実行した結果により要求に応じたサービスを利用者13に提供する(ステップS111)。
具体的には、まず、要求受付部203で利用者13からの要求データを受信する(ステップS101)。そして、要求受付部203は、受信した要求データから要求者の利用者ID、サービスまたは操作名、および利用サービスに対するパラメータを抽出し、サービスオブジェクト管理部241に受け渡す(ステップS103)。サービスオブジェクト管理部241からパラメータをローダ特定部205が受け取り、ローダ特定部205が、版情報格納部207を参照し、利用者IDからその利用者13に提供すべき版情報を取得する(ステップS105)。
そして、ローダ特定部205は、ローダ管理部210にアクセスし、得られた版に該当する差分ローダ233のいずれかとデフォルトローダ223を取得する(ステップS107)。そして、ローダ特定部205は、サービスオブジェクト管理部241に取得した差分ローダ233とデフォルトローダ223を返す。このときもっとも古い版を利用者13に提供する場合、ローダ特定部205は差分ローダ233は選択せず、デフォルトローダ223のみをサービスオブジェクト管理部241に返す。
サービスオブジェクト管理部241は、特定部205から差分ローダ233とデフォルトローダ223を受け取り、取得したローダを使用して利用者13から要求されたサービスオブジェクトを実行する(ステップS109)。サービスオブジェクト管理部241はこの実行結果を、サービス提供部243を介して利用者13へ返し(ステップS111)、処理を終了する。すなわち、サービス提供部243からネットワーク25を介して利用者13にサービスが提供される。
図4は、本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクト動作時の動作の一例を示すフローチャートである。特に、サービス提供システムにおけるサービスオブジェクト動作を示す。以下、図4を参照して、サービスオブジェクト動作時にどのようにローダが使用されるかを説明する。
サービスオブジェクト管理部241において、サービスオブジェクト動作時にはコード内でクラスへの参照が発生する(ステップS1501)。このローダ内のロード済みクラスを参照するとき、まず、ローダ特定部205から返された差分ローダに該当クラスがあるかどうかを確認する(ステップS1503)。該当クラスが存在する場合(ステップS1503のYES)、この該当クラスを、実際に参照するロード済みクラスとして選択する(ステップS1505)。該当クラスが差分ローダ内に存在しない場合(ステップS1503のNO)、もしくはローダ特定部205からデフォルトローダ223のみが渡されている場合(ステップS1503のNO)、デフォルトローダ223に該当クラスがあるかどうかを確認する(ステップS1507)。
該当クラスが存在する場合(ステップS1507のYES)、この該当クラスを実際に参照するロード済みクラスとして選択する(ステップS1509)。デフォルトローダ223にも該当クラスが存在しない場合は(ステップS1507のNO)、クラスが発見できない旨のエラーを発生し、例外処理を行う(ステップS1511)。
ステップS1505またはステップS1509で、参照するロード済みクラスが選択された後、参照元のサービスオブジェクトに対し、このロード済みクラスを返却する(ステップS1513)。このような動作によって、差分ローダに存在するロード済みクラスを優先して、存在しない場合のみデフォルトローダ223のクラスを参照することができる。
以上、説明したように、本実施形態のサービス提供システムによれば、サービスの要求元(利用者13)の要件に応じて複数の版のサービスを多重に提供することができ、利用者13に適した版のサービスを、効率よく提供できる。本実施形態のサービス提供装置200は、サービス提供を要求されている各版に対する更新クラスのみを保持し、共通クラスは共有することによってクラスの多重読み込みをしなくて済むため、複数の版のサービスを提供するコストを小さくできる。すなわち、旧版のサービス継続に必要な計算機リソースをできるだけ効率化できる。
(第2の実施の形態)
図5は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。
本実施形態のサービス提供システムは、上記実施形態とは、利用者のサービス利用状況を確認しながら提供するサービスの一貫性を維持する点で相違する。
本実施形態のサービス提供装置200は、複数の利用者ごとに異なる要求に応じた複数の版のサービスを提供する場合に、サービス更新時に利用者側でサービス不整合が発生するという問題点を解決することができる。
この問題点について、以下に詳しく説明する。利用者は提供されているサービスの機能のいくつかを組みあわせて自身のアプリケーションを実装しているケースがある。この場合、一連の利用者側アプリケーションの処理においてサービスの機能を順次呼び出して使うことになる。この時、利用者側アプリケーションの処理をまったく考慮せず突然サービス側で新版に更新した場合、一連の処理の途中で旧版の機能と新版の機能が入り混じって呼び出されてしまうことがあるためである。
本実施形態のサービス提供システムは、利用者のサービス利用状況を確認しながら提供するサービスの一貫性を維持することで、利用者側で不整合が発生するという課題を解決することができる。
本実施形態のサービス提供装置300は、利用者13によるサービスの版ごとの利用状況を管理する利用状況記憶部301と、利用状況記憶部301により管理されている利用状況に基づいて、利用者13ごとに利用中のサービスの版を判断し、当該利用者13の当該版のサービスの一連の利用が終了するまでは、同一の版を使用し、利用者13ごとに提供されるサービスの一貫性を維持する一貫性管理部303をさらに備える。
具体的には、サービス提供装置300は、図1の上記実施形態のサービス提供装置200と同様な構成を有し、サービスオブジェクト管理部241に換えてサービスオブジェクト管理部341を備えるとともに、さらに、利用状況記憶部301と、一貫性管理部303と、を備えている。
利用状況記憶部301は、利用者13によるサービスの版ごとの利用状況を管理する。図6は、利用状況記憶部301に記憶しているセッション情報テーブル500の構造の一例を示す図である。同図に示すように、セッション情報テーブル500は、セッションを識別するセッションID欄501、利用者ID欄502、版番号欄503、有効期限欄504を有する。
図5に戻り、一貫性管理部303は、利用者13からの一連の要求群を管理するものであり、利用状況記憶部301により管理されている利用状況に基づいて、利用者13ごとに利用中のサービスの版を判断し、当該利用者13の当該版のサービスの一連の利用が終了するまでは、同一の版を使用し、利用者13ごとに提供されるサービスの一貫性を維持する。
サービスオブジェクト管理部341は、ローダ特定部205から利用者13に提供すべき版情報を取得し、利用者IDおよび版情報に基づいて、該当セッションIDのレコードがセッション情報テーブル500内に存在するかを一貫性管理部303へ問い合わせる。該当セッションIDのレコードがセッション情報テーブル500内に存在する場合は、サービスオブジェクト管理部341は、ローダ特定部205に対してそのレコードに記録されている版の差分ローダ233のいずれかとデフォルトローダ223を要求する。該当セッションIDのレコードがセッション情報テーブル500内に存在しない場合は、サービスオブジェクト管理部341は、先にローダ特定部205から返された版の差分ローダ233のいずれかとデフォルトローダ223を要求する。
このように構成された本実施形態のサービス提供装置300の動作について、以下に説明する。図7は、本発明の実施の形態に係るサービス提供システムの動作の一例を示すフローチャートである。以下、図5乃至図7を用いて説明する。
本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置300が、利用者13によるサービスの版ごとの利用状況をセッション情報テーブル500で管理し、セッション情報テーブル500の利用状況に基づいて、利用者13ごとに利用中のサービスの版を判断し(ステップS1007〜ステップS1013)、当該利用者13の当該版のサービスの一連の利用が終了するまでは、同一の版を使用し、利用者13ごとに提供されるサービスの一貫性を維持する。
具体的には、本実施形態のサービス提供装置300は、上記実施形態のサービス提供装置200の図3のフローチャートと同様のステップS101、ステップS105〜ステップS111を有するとともに、さらに、ステップS1003。ステップS1007、ステップS1009、ステップS1011、およびステップS1013を有する。
ステップS101で要求受付部203が受信した利用者13からの要求データをサービスオブジェクト管理部341が受け取り、利用者13からの要求データから利用者ID、セッションID、サービスまたは操作名、およびパラメータを抽出し、ローダ特定部205に渡す(ステップS1003)。そして、ローダ特定部205では、図3と同様の処理(ステップS105)が行われ、利用者13に提供すべき版情報がサービスオブジェクト管理部341に返される。
続いて、サービスオブジェクト管理部341は、一貫性管理部303に該当セッションIDのレコードがセッション情報テーブル500内に存在するかを問い合わせる(ステップS1007)。一貫性管理部303に管理されているセッション情報内に該当セッションIDの有効なレコードが存在する場合(ステップS1009のYES)、先にローダ特定部205から得られた利用者13に提供すべきサービスの版を、一貫性管理部303から得られた版に変更する(ステップS1013)。すなわち、サービスオブジェクト管理部341は、ローダ特定部205に対して、そのレコードに記録されている版の差分ローダ233のいずれかとデフォルトローダ223を要求することとなる。
一方、該当セッションIDの有効なレコードが存在しない場合は(ステップS1009のNO)、サービスオブジェクト管理部241は、利用状況記憶部301のセッション情報テーブル500に新規レコードを追加し、このセッションIDとステップS1003で取得した版情報から構成されるレコードを一貫性情報として追加する(ステップS1011)。すなわち、サービスオブジェクト管理部341は、ローダ特定部205に対して、先にローダ特定部205から返された版の差分ローダ233のいずれかとデフォルトローダ223を要求することとなる。なお、もっとも古いバージョンが要求される場合、差分ローダ233は返されず、デフォルトローダ223のみが返る。
そして、ローダ特定部205では、図3と同様の処理(ステップS107)が行われ、ローダ特定部205により特定されたローダがサービスオブジェクト管理部241に返される。さらに、サービスオブジェクト管理部241では、図3と同様の処理(ステップS109)が行われ、サービス提供部243がネットワーク25を介して利用者13にサービスを提供し(ステップS111)、処理を終了する。
以上、説明したように、本実施形態のサービス提供システムによれば、上記実施形態と同様な効果を奏するとともに、一貫性管理部303により利用者13の一連の要求を管理することと、新版のサービス提供を開始しても並行して旧版のサービスを提供することとによって、一連の要求が終了するまでは、それまで使用していた旧版のサービスを利用できるので、利用者13側でのサービス不整合が起こりづらくなる。すなわち、本実施形態のサービス提供システムによれば、利用者13に提供されるサービスが利用の途中で、版が更新されたり、利用者13が版の指定を変更したりした場合等に、整合性がとれなくなるなどの不具合を防ぐことができ、サービスの一貫性を保つ機能がある。
(第3の実施の形態)
図8は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。
本実施形態のサービス提供システムは、上記実施形態とは、利用されていない不要な旧版のサービスを、システムを止めることなく排除できる点で相違する。
本実施形態のサービス提供装置400は、サービス更新時にサービスが停止するという問題点を解決することができる。すなわち、複数の利用者から要求される、異なる複数の版のサービスを停止することなく提供できないという問題点を解決することができる。
この問題点について、以下に詳しく説明する。この問題点は、上記実施形態の問題点とトレードオフの関係にある。サービス不整合を防ぐためには、たとえば、新版への更新の前に動作している一連の利用者側アプリケーションの処理が終了するのを待たなければならない。一方、その間新規に別の利用者側アプリケーションの要求を受け付けると別の処理が始まるため、新規の要求はすべての動作中の処理が終了するまでブロックする必要があるためである。
本実施形態のサービス提供装置400は、利用状況記憶部301および版情報格納部207を参照して、いずれの利用者13にも利用されていない旧版のサービスがあるか否かを判定する判定部(サービス配備管理部401)と、利用されていない旧版のサービスがあると判定されたとき、当該サービスの旧版の更新クラス群231をローダ管理部210から削除するとともに、対応する差分ローダ233を削除する削除部(サービス配備管理部401)と、をさらに備える。
具体的には、サービス提供装置400は、図5の上記実施形態のサービス提供装置300と同様な構成を有し、さらに、サービス配備管理部401を備えている。
サービス配備管理部401は、サービスを構成するクラス配備を管理する。詳細には、サービス配備管理部401は、利用状況記憶部301および版情報格納部207を参照して、いずれの利用者13にも利用されていない旧版のサービスがあるか否かを判定し、利用されていない旧版のサービスがあると判定されたとき、当該サービスの旧版の更新クラス群231をローダ管理部210から削除するとともに、対応する差分ローダ233をローダ管理部210から削除する。
サービス配備管理部401が、上記の削除可否の判定を実施するタイミングは、たとえば、定期的に判定を行い、所定期間以上利用されていない旧版のサービスを自動的に削除してもよいし、あるいは、サービス提供装置400の管理者から特定の版の削除要求を図示されない操作受付部を介して受け付けた時、特定の版のサービスについて利用者がいない場合に削除してもよい。
このように構成された本実施形態のサービス提供装置400の動作について、以下に説明する。図9は、本発明の実施の形態に係るサービス提供システムの動作の一例を示すフローチャートである。特に、サービスオブジェクトの版削除時の動作の一例を示す。以下、図8および図9を用いて説明する。
本実施形態のサービス提供装置400のデータ処理方法は、サービス提供装置400が、セッション情報テーブル500および版情報格納部207を参照して、いずれの利用者にも利用されていない旧版のサービスがあるか否かを判定し(ステップS2101、ステップS2105)、利用されていない旧版のサービスがあると判定されたとき、当該サービスの旧版の更新クラス群231をローダ管理部210から削除するとともに、対応する差分ローダ233を削除する(ステップS2113)。
具体的には、定期的、または特定の版の削除要求があった場合、サービス配備管理部401は版情報格納部207に問い合わせて該当版の利用者13が存在するかどうかを調べる(ステップS2101)。利用者13が存在する場合(ステップS2101のYES)、削除ができないため、その旨をエラーとして要求元に返し、例外処理を行い(ステップS2103)、本処理を終了する。該当版の利用者13がいない場合(ステップS2101のNO)、一貫性管理部303に該当版を利用しているセッションが残存しているかどうかを問い合わせる(ステップS2105)。一貫性管理部303は、利用状況記憶部301を参照し、利用者13が残存しているか否かをサービス配備管理部401に返す。
利用者13が残存していない場合(ステップS2105のNO)、サービス配備管理部401は、該当版の差分ローダをローダ特定部205での管理対象から外し、ローダ管理部210から差分ローダごと、すなわち、差分ローダ233と更新クラス群231を削除し(ステップS2113)、処理を終了する。該当版を利用しているセッションが残存している場合(ステップS2105のYES)、さらに、一貫性管理部303に、そのセッションが有効期限内かどうか確認する(ステップS2107)。一貫性管理部303は、利用状況記憶部301を参照し、セッションが有効期限内かどうかをサービスオブジェクト管理部241に返す。有効期限内であれば(ステップS2107のYES)、サービスオブジェクト管理部241は、一定時間待ち(ステップS2109)、その後、S2105に戻り、処理を繰り返す。有効期限後であれば(ステップS2107のNO)、サービス配備管理部401は、一貫性管理部303に利用状況記憶部301のセッション情報テーブル500内のセッション情報から該当セッションのレコードを削除させる(ステップS2111)。そして、サービスオブジェクト管理部241は、ローダ管理部210から当該差分ローダ233および更新クラス群231を削除して(ステップS2113)、処理を終了する。
このように、本実施形態のサービス提供装置400によれば、サービス提供時の動作と並行して、サービス提供装置400の管理者によるサービス管理の中で、サービス配備管理部401は、ローダ特定部205、一貫性管理部303と連携して新規版のサービス配備を行うことができる。
以上、説明したように、本実施形態のサービス提供システムによれば、上記実施形態と同様な効果を奏するとともに、利用されていない不要な旧版のサービスをシステムを止めずに排除できるとともに、これによりサービス提供装置400のローダ管理部210のメモリ使用容量が利用されていない不要な旧版のサービスのために浪費されることを防ぐことができ、負荷を低減できる。
本発明の他の実施の形態として、図9の版の削除においてS2109で一定時間待つことなく有効期限内の対応セッションが残っている場合エラーを返して例外処理を行う方法がある。図9の方式の場合、該当セッションがなくなるか、有効期限以降になるまで無限にループする。版の削除の手続きを行うユーザインタフェースによっては有効期限内の対応セッションが残っていることをサービス管理者に示して終了するような実装が必要になる場合、この実施の形態の手順が有効である。
(第4の実施の形態)
図10は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。
本実施形態のサービス提供システムは、上記実施形態とは、新しい新版のサービスを、システムを止めることなく追加して更新できる点で相違する。
本実施形態のサービス提供装置800は、新しく更新された新版の差分クラス群を受け付ける更新受付部803と、受け付けた新版の差分クラス群を更新される直前の版の更新クラス群231に追加して新版の更新クラス群231としてローダ管理部210に格納するとともに、当該新版の更新クラス群231に対応する新版の差分ローダ233を追加する追加部(サービス配備管理部801)と、をさらに備える。
また、サービス提供装置800は、利用者13から利用するサービスおよび当該サービスの版の指定を受け付ける指定受付部(要求受付部203)と、利用者13から指定されたサービスおよび当該サービスの版の版情報を、版情報格納部207に利用者13に対応付けて登録する登録部(サービス配備管理部801)と、をさらに備える。
具体的には、サービス提供装置800は、図5の上記実施形態のサービス提供装置300と同様な構成を有し、さらに、サービス配備管理部801と更新受付部803を備えている。あるいは、図8の上記実施形態のサービス提供装置400のサービス配備管理部401をサービス配備管理部801に換え、それ以外はサービス提供装置400と同様な構成を有してもよい。また、サービス配備管理部801は、後述する機能とともにサービス配備管理部401と同様な機能も有することができる。
更新受付部803は、管理者などから新しく更新された特定の新版の差分クラス群の追加登録要求を受け付ける。
サービス配備管理部801は、更新受付部803が追加登録要求を受け付けた新版の差分クラス群を直前の版の更新クラス群231に追加して新版の更新クラス群231としてローダ管理部210に格納するとともに、当該新版の更新クラス群231に対応する新版の差分ローダ233をローダ管理部210に追加する。
さらに、サービス配備管理部801は、利用者13から指定されたサービスおよび当該サービスの版の版情報を、版情報格納部207に利用者13に対応付けて登録する。
具体的には、サービス配備管理部801は、追加登録要求に応じて、新規差分ローダを生成し、ローダ管理部210へ版番号と共に登録する。さらに、サービス配備管理部801は、この新規差分ローダに配備すべき更新クラス群をローダ管理部210に読み込む。そして、要求受付部203が利用者13から、新版のサービスの利用要求を受け付けたとき、サービス配備管理部801は、利用要求に基づいて、その新版を利用する利用者13の利用者IDと、利用するサービス名と、利用する版番号とを取得し、互いに関連付けて図2の版情報格納部207に登録する。
このように構成された本実施形態のサービス提供装置800の動作について、以下に説明する。図11は、本発明の実施の形態に係るサービス提供システムの動作の一例を示すフローチャートである。特に、サービスオブジェクトの版追加時の登録動作の一例を示す。以下、図10および図11を用いて説明する。
本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置800が、新しく更新された新版の差分クラス群を受け付け(ステップS2001)、受け付けた新版の差分クラス群を更新される直前の版の更新クラス群231に追加して新版の更新クラス群231としてローダ管理部210に格納するとともに、当該新版の更新クラス群231に対応する新版の差分ローダ233をローダ管理部210に追加する。
本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置800が、利用者13から利用するサービスおよび当該サービスの版の指定を受け付け(ステップS2007)、利用者13から指定されたサービスおよび当該サービスの版の版情報を、版情報格納部207に利用者に対応付けて登録する(ステップS2009)。
具体的には、更新受付部803が特定の版の追加要求を受け付けた場合(ステップS2001のYES)、サービス配備管理部801は、新規差分ローダを生成し、ローダ管理部210へ版番号と共に登録する(ステップS2003)。さらに、サービス配備管理部801は、この新規差分ローダに配備すべき更新クラス群をローダ管理部210に読み込む(ステップS2005)。そして、要求受付部203が利用者13から、新版のサービスの利用要求を受け付けたとき(ステップS2007のYES)、サービス配備管理部801は、利用要求に基づいて、その新版を利用する利用者13の利用者IDと、利用するサービス名と、利用する版番号とを取得し、互いに関連付けて図2の版情報格納部207に登録する(ステップS2009)。
このように、本実施形態のサービス提供装置800によれば、サービス提供時の動作と並行して、サービス提供装置800の管理者によるサービス管理の中で、サービス配備管理部801は、ローダ特定部205、一貫性管理部303と連携して旧版のサービスの配備解除および一貫性管理部303で管理している古いレコードの削除を行うことができる。
以上、説明したように、本実施形態のサービス提供システムによれば、上記実施形態と同様な効果を奏するとともに、旧版のサービス終了を待たなくても新版サービスを開始できることと、システム全体を入れ替えなくても新版の差分ローダを追加するだけでサービス更新が可能であるので、サービスを継続したままサービスの更新が可能である。これにより、サービス提供装置800は、新しく更新された版のサービスを、システムを止めることなく追加できる。
(第5の実施の形態)
図12は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。
本実施形態のサービス提供システムは、上記実施形態とは、複数のサービス提供装置を備える点で相違する。本実施形態において、複数のサービス提供装置は互いに同じ構成を有し、同じ版構成のサービスを提供するローダおよびクラス群を有する。
本実施形態のサービス提供システム1000は、利用者側の要求としての旧版でのサービス継続にコストがかかりがちであるという問題点を解決することができる。
この問題点について、以下に詳しく説明する。旧版に対して専用のハードウェア、仮想OSを割り当てて運用するような従来の方法の場合、旧版の提供には一定のハードウェアリソースが必要となる。一般に旧版のサービスは利用者の数が少なくなるが、図19のような方法の場合、最低1台は旧版のサービス用にサービス提供装置を確保する必要があり、利用者数にきめ細かく追随した計算機リソースの調整が困難であることが理由の一つである。また継続提供が必要な版が多数存在する場合、サービス提供装置ごとに少しずつ異なる各版のサービス用クラス群の管理が煩雑となり、管理コストが増加することがもう一つの理由である。
本実施形態のサービス提供システム1000は、上記実施形態の複数のサービス提供装置800(A1、A2、...、An)の負荷状態に応じて、利用者13の要求に呼応してサービス提供を実施するサービス提供装置800を決定し、サービス提供装置800を割り当てる負荷分散装置(負荷分散器27)と、を備え、複数のサービス提供装置800は、利用適用中のすべての版についてすべてのサービスを同様に利用者に提供できるように、同じ版のデフォルトクラス群221(図10)をデフォルトクラス群記憶部(ローダ管理部210:図10)に格納し、同じ利用適用中のすべての版の更新版別クラス群(更新クラス群231:図10)を更新版別クラス記憶部(ローダ管理部210:図10)にそれぞれ格納する。
この構成によれば、複数のサービス提供装置が同じ構成を有するので、サービスや版ごとにサーバを分ける場合に比較して、サービスによって利用者数や負荷が異なる場合でも、事前に負荷を考慮する必要がなく、システム構築が簡単で、サーバの増設や置き換えなどもシステムを止めずに実施でき、簡易に負荷の分散を実現できる。
利用者13(図中、利用者U1およびU2)は、負荷分散器27を介して少なくとも一のサービス提供装置800(図中、複数のサービス提供装置A1、A2、. . .、An)にサービス要求を送信する。
サービス提供装置800においてサービスオブジェクトにより適切な処理をした後、利用者13に処理の結果を返す。大量の利用者13からのサービス要求を処理するため負荷分散器27には複数のサービス提供装置800が接続され、適切に処理を割り振る。サービス提供装置800が非常に高性能である場合、利用者13からのサービス要求がそれほど多くない場合は、負荷分散器27を介さずに1つのサービス提供装置800のみで全利用者のサービス要求を処理する場合もありうる。
なお、負荷分散器27は、一般的な装置で構成することができ、本発明の本質に関わらないので詳細な説明は省略する。
なお、本実施形態において、旧版のサービスの削除や、新版のサービスの登録などは、複数のサービス提供装置800で同様に実行され、複数のサービス提供装置800は、互いに同じ構成を維持するものとする。
本実施形態のサービス提供システム1000によれば、旧版のサービス継続に必要な計算機リソースをできるだけ効率化できる。すなわち、複数の版のサービスを提供するコストを小さくできる。この理由は、サービス提供を要求されている各版に対する更新クラスのみを保持し共通クラスは共有することによってクラスの多重読み込みをしなくて済むからである。
また、一つの装置で複数の版のサービス提供が可能であるため、特定の版の利用者数が少なくても他の版のサービス提供装置として動作することによりハードウェアリソースの利用効率が高い。すなわち、版ごとに装置を準備すると版の利用状況によって各装置のリソースの利用状況にばらつきが生じてしまうため、装置の配備を調整する必要があるが、本実施形態のサービス提供システムでは、利用者の利用状況などを予想して計画を立てる必要がない。さらに、どのサービス提供装置も同一の構成で運用できるため、運用コストを下げることが可能であることも理由の一つである。
(第6の実施の形態)
図16は、本発明の実施の形態に係るサービス提供システムの構成を示すブロック図である。本実施形態のサービス提供システムは、図10の上記第4の実施形態とは、新しい新版のサービスの指定にサービス横断的な変更設定を指定された場合にシステムを止めることなく追加更新できる点で相違する。なお、図16の本実施形態のサービス提供システムは、図8および図12の上記実施形態のサービス提供システムにも適用することができる。
第4の実施の形態では新版のサービスを受け付ける際に、新版の更新クラス群を更新受付部803で受け付けることが前提である。明示的に更新されたクラス群を与える代わりに、Aspect Oriented Programming(AOP)のようにサービス横断的な変更設定を指定することにより該当クラスを自動更新する技術が存在する。この技術はプログラムコードの一定の性質をもつ部分に対して一律に変更を加えることや、再コンパイルなしで既存の実行バイナリに動的に直接変更を加えることを可能にする技術である。以後、このサービス横断的な変更のことをAspect、その変更設定をAspect定義と呼ぶこととする。
AOPのような技術でサービスを動的に更新する場合、クラスローダにクラスがロードされる際にAspect注入機構によりAspectが該当クラスに適用される。本来はサービスを構成するクラス全体をクラスローダに再ロードしてAspect適用をおこなうことになるが、これは差分ローダ上にすべてのクラスを多重にロードすることになり効率が悪い。そこで、本実施形態では、AOPのような新規版のサービス配備時の仕組みとしてサービス横断的な変更点を登録することで自動的に複数のクラスを更新するタイプのサービス全体にわたるサービス更新による新版の登録時にも他のサービスを止めずに効率的にサービス提供を行えるシステムを提供する。
本実施形態のサービス提供システムは、図16に示すように、図10のサービス提供装置800に替えて、サービス提供装置900を備える。
本実施形態のサービス提供装置900は、新版としてサービス全般に跨る変更ルールを記述した設定(Aspect定義)を受け付ける更新受付部803と、設定に基づき変更の対象となるクラスのみを抽出する更新クラス抽出部901と、抽出された変更の対象となるクラスのみに対して変更を適用しながら変更済みクラス群(差分クラス群)を変更される直前の版の更新版別クラス群(差分クラス群231)に追加して新版の更新版別クラス群(差分クラス群231)として、更新版別クラス群記憶部(ローダ管理部210)に格納するとともに、当該新版の更新版別クラス群(差分クラス群231)に対応する新版の更新版別差分ロード部(差分ローダ233)を追加する追加部(サービス配備管理部801)と、をさらに備える。
具体的には、本実施形態のサービス提供装置900は、図10のサービス提供装置800と同様な構成を有し、さらに、更新クラス抽出部901と、Aspect注入機構902と、をさらに備える。
本実施形態のサービス提供装置900において、更新受付部803は、Aspect定義によるサービス更新を受け付ける。サービス配備管理部801は、更新受付部803がAspect定義によるサービス更新を受け付けた場合、サービス中のどのクラスを更新しなければならないかを更新クラス抽出部901に問い合わせる。そして、サービス配備管理部801は、更新対象となるクラスのみを新たに生成した新版用の差分ローダへ読み込むようローダ管理部210に指示する。
更新クラス抽出部901は、サービス配備管理部801からの問合せに応じて、サービス中のどのクラスを更新しなければならないかを、更新受付部803が受け付けたAspect定義を調べ、更新対象のクラスを抽出し、サービス配備管理部801に返信する。すなわち、更新クラス抽出部901は、サービス更新に対して、事前にその変更点でどのクラスに更新がかかるかを調べる。
ローダ管理部210は、新規差分ローダ上へサービス配備管理部801から指示された更新対象クラスをロードする。このとき同時にAspect注入機構902が働き、登録したAspect定義に基づいた変更を更新対象クラスへ適用するよう、各差分ローダ233に指示する。すなわち、ローダ管理部210は、更新クラス抽出部901が抽出した該当クラスを更新版の差分ローダ上に読み込む際に登録された変更点に応じてクラスを更新する。
こうすることで、AOPのようなサービス全体にわたるサービス更新による新版の登録時にも他のサービスを止めずに効率的にサービス提供を行うことが可能になる。
次に、本実施の形態のサービス提供システムにおけるサービスオブジェクトの版追加時の登録動作全体の動作について詳細に説明する。図17は、本発明の実施の形態に係るサービス提供システムにおけるサービスオブジェクトの版追加時の登録動作の一例を示すフローチャートである。以下、図16および図17を用いて説明する。
本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置900が、新しく更新された新版向けのサービス全体に跨る変更ルールを記述した設定(Aspect定義)を受け付ける(ステップS2201のYES)。そして、サービス配備管理部801が、登録されたAspect定義を更新クラス抽出部901へ渡し、更新クラス抽出部901は追加する版の変更内容を記述したAspect適用の対象となるクラスだけを抽出してサービス配備管理部801へ返す(ステップS2202)。新規受付でない場合(ステップS2201のNO)、ステップS2205に進む。
サービス配備管理部801が、ローダ管理部210にこのAspect適用対象クラス群のみをロードする差分ローダを新版向けのクラスローダとして生成させる(ステップS2203)。そして、サービス配備管理部801が、この新規差分ローダに上記Aspect適用対象クラス群をAspect注入機構902でAspectを適用しながらロードする(S2204)。
さらに、本実施形態のサービス提供装置のデータ処理方法は、サービス提供装置900が、利用者13から利用するサービスおよび当該サービスの版の指定を受け付け(ステップS2205のYES)、利用者13から指定されたサービスおよび当該サービスの版の版情報を、版情報格納部207に利用者に対応付けて登録する(ステップS2206)。利用を受け付けなかった場合(ステップS2205のNO)、本フローを終了する。
具体的な実施例を用いて本発明を実施するための最良の形態の動作を、図2、図6、図12乃至図15を参照して説明する。ただし以下は一実施例であり、動作やデータ書式などをこれに限定しない。本実施例では、上記実施形態のサービス提供システム1000を例に説明する。
まず、利用者からの初期の要求データの例を図13に示す。この例では要求データ600はXML(EXtensible Markup Language、http://www.w3.org/TR/xml)の形式で記述されており、HTTP(HyperText Transfer Protocol、RFC2616)などのプロトコルで利用者から送信される。この要求データをもとにサービス提供装置800は利用者に対して適切なサービスオブジェクトを生成する。この要求データではユーザID602を指定してサービス“MyAnalyze”、操作“invoke”をサービス識別部603で指定している。サービスに対するパラメータはパラメータ指定部604で指定する。この要求データ600は一連のサービス要求の最初のものである前提なのでセッションはまだ作成されておらず、セッション情報はデータ内に含まれていない。
サービス提供装置800のサービスオブジェクト管理部341は、要求データ600を元に版情報格納部207へ問い合わせて、どの版のサービスを利用するかを決定する。図2の版情報格納部207の例では、ユーザID“a1234”、サービス“MyAnalyze”のレコードを版情報管理テーブル700から検索し、該当する版番号欄の版番号“V1.05”を返す。もし該当レコードが存在しない場合は、その時点での最新版の版番号を返す。
サービスオブジェクト管理部341は“V1.05”の差分ローダをローダ特定部205から取得し、“MyAnalyze”のサービスオブジェクトを生成する。さらにこのサービスオブジェクトの操作“invoke”に引数“xxx”、“yyy”を与えて実行し結果を利用者に返す。図15にレスポンスの例を示す。レスポンス650はそれ以後の一連のサービス継続時に使用されるセッションID651とサービス処理の結果652を返す。この例では処理を受け付けた旨の結果が返る。
続いて一連のサービスを継続する場合の要求データの例を図14に示す。この要求データ610はサービス“MyAnalyze”、操作“invoke”の処理結果を取得するための操作“getResult”を実行する。要求データ610にはセッション情報613が付いているので、サービスオブジェクト管理部341は一貫性管理部303にセッション“20081114−3245”に該当するバージョン情報をセッション情報テーブル500から検索する。一貫性管理部303で管理されるセッション情報テーブル500に記憶されているセッション情報を図6に示す。
一貫性管理部303はこのセッション情報テーブル500を要求データに含まれるセッションIDを元に検索し、該当するレコードの有効期限欄504の値からレコードの情報が有効かどうかを判断する。この場合は有効であるため版番号欄503の値“V1.05”を返す。サービスオブジェクト管理部341は返された版番号“V1.05”の差分ローダをローダ特定部205から取得し、サービス“MyAnalyze”、操作“invoke”処理を実行して処理結果を利用者に返す。
新規にサービスを要求する場合には要求データ600のようにセッション情報を付けない。これによってあらかじめ版情報格納部207で格納されている版かあるいは最新版のサービスオブジェクトによるサービスを実行できる。そのサービス要求が一連のサービス要求の一部である場合は同一のセッションIDを指定したセッション情報をつける。これによって、セッション情報取得時に提供された版によるサービスが継続され、またセッションが有効な間はその版のローダが破棄されることはない。
サービス配備管理部801は定期的に一貫性管理部303へアクセスして、セッション情報テーブル500のセッション情報から有効期限欄504の値が現在時刻以前になっているレコードを検索し、そうしたレコードはセッション情報テーブル500から削除する。
次に、本実施例における新版のサービス配備の例を図16および図18を用いて説明する。
本発明における新版サービスは、デフォルトローダ223上にロードされたデフォルトクラス群221のクラスに対するAspectとして管理者によって更新受付部803を介して配備される。
図18のAspect定義1200の例は、AspectJ(http://www.eclipse.org/aspectj/)での記述例である。このAspect定義1200が、新版サービス用の改版内容として配備されると、更新クラス抽出部901は、Aspect定義1200を解析して、内容が更新されるMyAnalyzeクラス(デフォルトクラス)1100を抽出する。次に、ローダ管理部210は、このMyAnalyzeクラス1100のみをロードする新版用の差分ローダを生成する。この差分ローダには、MyAnalyzeクラス1100に対して、Aspect注入機構902がAspect定義1200を適用して改版したAspect適用済みMyAnalyzeクラス1101をロードする。
このようにAspect適用が必要なクラスのみ事前に抽出し、専用のクラスローダ上でAspect適用することで、サービス全体を停止することなく、様々な版のAspectを適用したサービスを同一のサービス提供装置で提供することができる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
この出願は、2009年3月30日に出願された日本出願特願2009−083117号および2010年2月26日に出願された日本出願特願2010−41474号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (19)

  1. 利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶手段と、
    前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶手段と、
    前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶手段と、
    前記デフォルトクラス群記憶手段に記憶された前記デフォルトクラス群を読み出して実行するデフォルトロード手段と、
    前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶手段に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ロード手段と、
    前記利用者から前記サービスの利用の要求を受け付ける受付手段と、
    前記版情報記憶手段を参照し、前記要求を受け付けた前記利用者に適した版を特定する特定手段と、
    前記デフォルトロード手段および特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ロード手段を使用して、特定された前記利用者に適した版のサービスオブジェクトを生成して処理を実行するサービスオブジェクト管理手段と、
    前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供する提供手段と、を備えるサービス提供装置。
  2. 請求項1に記載のサービス提供装置において、
    前記利用者による前記サービスの前記版ごとの利用状況を管理する利用状況管理手段と、
    前記利用状況管理手段により管理されている前記利用状況に基づいて、前記利用者ごとに利用中のサービスの版を判断し、当該利用者の当該版の前記サービスの一連の利用が終了するまでは、同一の版を使用し、前記利用者ごとに提供される前記サービスの一貫性を維持する一貫性管理手段をさらに備えるサービス提供装置。
  3. 請求項2に記載のサービス提供装置において、
    前記利用状況管理手段および前記版情報記憶手段を参照して、いずれの前記利用者にも利用されていない旧版のサービスがあるか否かを判定する判定手段と、
    利用されていない前記旧版のサービスがあると判定されたとき、当該サービスの前記旧版の前記更新版別クラス群を前記更新版別クラス群記憶手段から削除するとともに、対応する前記更新版別差分ロード手段を削除する削除手段と、をさらに備えるサービス提供装置。
  4. 請求項2または3に記載のサービス提供装置において、
    新しく更新された新版の差分クラス群を受け付ける更新受付手段と、
    受け付けた前記新版の前記差分クラス群を直前の版の前記更新版別クラス群に追加して前記新版の前記更新版別クラス群として前記更新版別クラス群記憶手段に格納するとともに、当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ロード手段を追加する追加手段と、をさらに備えるサービス提供装置。
  5. 請求項2または3に記載のサービス提供装置において、
    新版としてサービス全般に跨る変更ルールを記述した設定を受け付ける更新受付手段と、
    前記設定に基づき変更の対象となるクラスのみを抽出する更新クラス抽出手段と、
    抽出された前記変更の対象となるクラスのみに対して変更を適用しながら前記変更済みクラス群を直前の版の更新版別クラス群に追加して前記新版の前記更新版別クラス群として、前記更新版別クラス群記憶手段に格納するとともに、当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ロード手段を追加する追加手段と、をさらに備えるサービス提供装置。
  6. 請求項1乃至5いずれか1項に記載のサービス提供装置において、
    前記利用者から利用するサービスおよび当該サービスの版の指定を受け付ける指定受付手段と、
    前記利用者から指定された前記サービスおよび当該サービスの前記版の版情報を、前記版情報記憶手段に前記利用者に対応付けて登録する登録手段と、をさらに備えるサービス提供装置。
  7. 請求項1乃至6いずれか1項に記載の複数のサービス提供装置と、
    複数の前記サービス提供装置の負荷状態に応じて、利用者の要求に呼応してサービス提供を実施するサービス提供装置を決定し、前記サービス提供装置を割り当てる負荷分散装置と、を備え、
    複数の前記サービス提供装置は、利用適用中のすべての版についてすべてのサービスを同様に前記利用者に提供できるように、
    同じ版のデフォルトクラス群を前記デフォルトクラス群記憶手段に格納し、
    同じ前記利用適用中のすべての版の更新版別クラス群を前記更新版別クラス群記憶手段にそれぞれ格納するサービス提供システム。
  8. サービス提供装置のデータ処理方法であって、
    前記サービス提供装置が、
    利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶装置と、
    前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶装置と、
    前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶装置と、
    前記デフォルトクラス群記憶装置に記憶された前記デフォルトクラス群を読み出して実行するデフォルトローダと、
    前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶装置に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ローダと、を備え、
    前記サービス提供装置が、
    前記利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて前記版情報記憶装置に記憶し、
    前記デフォルトクラス群を前記デフォルトクラス群記憶装置に格納し、
    前記最も古い版以降に更新された版ごとに、前記更新版別クラス群を前記更新版別クラス群記憶装置にそれぞれ格納し、
    前記利用者から前記サービスの利用の要求を受け付け、
    前記版情報記憶装置を参照し、前記要求を受け付けた前記利用者に適した版を特定し、
    前記デフォルトローダおよび特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ローダを使用して、前記利用者に適した版のサービスオブジェクトを生成して処理を行い、
    前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供するサービス提供装置のデータ処理方法。
  9. 請求項8に記載のサービス提供装置のデータ処理方法において、
    前記サービス提供装置は、前記利用者による前記サービスの前記版ごとの利用状況を管理する利用状況管理テーブルを記憶する記憶装置を備え、
    前記サービス提供装置が、
    前記利用者による前記サービスの前記版ごとの利用状況を前記利用状況管理テーブルで管理し、
    前記利用状況管理テーブルの前記利用状況に基づいて、前記利用者ごとに利用中のサービスの版を判断し、
    当該利用者の当該版の前記サービスの一連の利用が終了するまでは、同一の版を使用し、前記利用者ごとに提供される前記サービスの一貫性を維持するサービス提供装置のデータ処理方法。
  10. 請求項9に記載のサービス提供装置のデータ処理方法において、
    前記サービス提供装置が、
    前記利用状況管理テーブルおよび前記版情報記憶装置を参照して、いずれの前記利用者にも利用されていない旧版のサービスがあるか否かを判定し、
    利用されていない前記旧版のサービスがあると判定されたとき、当該サービスの前記旧版の前記更新版別クラス群を前記更新版別クラス群記憶装置から削除するとともに、対応する前記更新版別差分ローダを削除するサービス提供装置のデータ処理方法。
  11. 請求項9または10に記載のサービス提供装置のデータ処理方法において、
    前記サービス提供装置が、
    新しく更新された新版の差分クラス群を受け付け、
    受け付けた前記新版の前記差分クラス群を直前の版の前記更新版別クラス群に追加して前記新版の前記更新版別クラス群として前記更新版別クラス群記憶装置に格納するとともに、当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ローダを追加するサービス提供装置のデータ処理方法。
  12. 請求項9または10に記載のサービス提供装置のデータ処理方法において、
    前記サービス提供装置が、
    新しく更新された新版向けのサービス全体に跨る変更ルールを記述した設定を受け付け、
    受け付けた前記設定に基づき変更の対象となるクラスのみを抽出し、
    抽出した前記変更の対象となるクラスのみに対して変更を適用しながら前記変更済みクラス群を直前の版の前記更新版別クラス群に追加して前記新版の前記更新版別クラス群として前記更新版別クラス群記憶装置に格納するとともに、当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ローダを追加するサービス提供装置のデータ処理方法。
  13. 請求項8乃至12いずれか1項に記載のサービス提供装置のデータ処理方法において、
    前記サービス提供装置が、
    前記利用者から利用するサービスおよび当該サービスの版の指定を受け付け、
    前記利用者から指定された前記サービスおよび当該サービスの前記版の版情報を、前記版情報記憶装置に前記利用者に対応付けて登録するサービス提供装置のデータ処理方法。
  14. サービス提供装置を制御するコンピュータプログラムであって、
    コンピュータが、
    利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて記憶する版情報記憶装置と、
    前記利用者に提供すべき前記サービスの中で最も古い版のデフォルトクラス群を格納するデフォルトクラス群記憶装置と、
    前記最も古い版以降に更新された版ごとに、前記デフォルトクラス群との差分クラス群を含む更新版別クラス群をそれぞれ格納する更新版別クラス群記憶装置と、
    前記デフォルトクラス群記憶装置に記憶された前記デフォルトクラス群を読み出して実行するデフォルトローダと、
    前記更新版別クラス群ごとに設けられ、前記更新版別クラス群記憶装置に記憶された前記更新版別クラス群をそれぞれ読み出して実行する更新版別差分ローダと、を備え、
    前記コンピュータに、
    前記利用者ごとに提供すべきサービスと、前記サービスの版情報を関連付けて前記版情報記憶装置に記憶する手順と、
    前記デフォルトクラス群を前記デフォルトクラス群記憶装置に格納する手順と、
    前記最も古い版以降に更新された版ごとに、前記更新版別クラス群を前記更新版別クラス群記憶装置にそれぞれ格納する手順と、
    前記利用者から前記サービスの利用の要求を受け付ける手順と、
    前記版情報記憶装置を参照し、前記要求を受け付けた前記利用者に適した版を特定する手順と、
    前記デフォルトローダおよび特定された前記版の前記更新版別クラス群に対応する前記更新版別差分ローダを使用して、前記利用者に適した版のサービスオブジェクトを生成して処理を実行する手順と、
    前記処理を実行した結果により前記要求に応じた前記サービスを前記利用者に提供する手順と、を実行させるためのコンピュータプログラム。
  15. 請求項14に記載のコンピュータプログラムにおいて、
    前記コンピュータが、前記利用者による前記サービスの前記版ごとの利用状況を管理する利用状況管理テーブルを記憶する記憶装置を備え、
    前記利用者による前記サービスの前記版ごとの利用状況を前記利用状況管理テーブルで管理する手順と、
    前記利用状況管理テーブルの前記利用状況に基づいて、前記利用者の利用中のサービスの版を判断する手順と、
    当該利用者の当該版のサービスの一連の利用が終了するまでは、同一の版を使用し、前記利用者ごとに提供される前記サービスの一貫性を維持する手順と、をコンピュータにさらに実行させるためのコンピュータプログラム。
  16. 請求項15に記載のコンピュータプログラムにおいて、
    前記利用状況管理テーブルおよび前記版情報記憶装置を参照して、いずれの前記利用者にも利用されていない旧版のサービスがあるか否かを判定する手順と、
    利用されていない前記旧版のサービスがあると判定されたとき、当該サービスの前記旧版の前記更新版別クラス群を前記更新版別クラス群記憶装置から削除するとともに、対応する前記更新版別差分ローダを削除する手順と、をコンピュータにさらに実行させるためのコンピュータプログラム。
  17. 請求項15または16に記載のコンピュータプログラムにおいて、
    新しく更新された新版の差分クラス群を受け付ける手順と、
    受け付けた前記新版の前記差分クラス群を直前の版の前記更新版別クラス群に追加して前記新版の前記更新版別クラス群として前記更新版別クラス群記憶装置に格納する手順と、
    当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ローダを追加する手順と、をコンピュータにさらに実行させるためのコンピュータプログラム。
  18. 請求項15または16に記載のコンピュータプログラムにおいて、
    新しく更新された新版向けのサービス全体に跨る変更ルールを記述した設定を受け付ける手順と、
    受け付けた前記設定に基づき変更の対象となるクラスのみを抽出する手順と、
    抽出した前記変更の対象となるクラスのみに対して変更を適用しながら前記変更済みクラス群を直前の版の前記更新版別クラス群に追加して前記新版の前記更新版別クラス群として前記更新版別クラス群記憶装置に格納する手順と、
    当該新版の前記更新版別クラス群に対応する前記新版の更新版別差分ローダを追加する手順と、をコンピュータにさらに実行させるためのコンピュータプログラム。
  19. 請求項14乃至18いずれか1項に記載のコンピュータプログラムにおいて、
    前記利用者から利用するサービスおよび当該サービスの版の指定を受け付ける手順と、
    前記利用者から指定された前記サービスおよび当該サービスの前記版の版情報を、前記版情報記憶装置に前記利用者に対応付けて登録する手順と、をコンピュータにさらに実行させるためのコンピュータプログラム。
JP2011508229A 2009-03-30 2010-03-29 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム Pending JPWO2010116676A1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2009083117 2009-03-30
JP2009083117 2009-03-30
JP2010041474 2010-02-26
JP2010041474 2010-02-26
PCT/JP2010/002282 WO2010116676A1 (ja) 2009-03-30 2010-03-29 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
JPWO2010116676A1 true JPWO2010116676A1 (ja) 2012-10-18

Family

ID=42935975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011508229A Pending JPWO2010116676A1 (ja) 2009-03-30 2010-03-29 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム

Country Status (4)

Country Link
US (1) US20120011496A1 (ja)
JP (1) JPWO2010116676A1 (ja)
CN (1) CN102349052A (ja)
WO (1) WO2010116676A1 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093493A1 (en) 2008-10-28 2011-04-21 Honeywell International Inc. Building management system site categories
US8438532B2 (en) 2011-04-19 2013-05-07 Sonatype, Inc. Method and system for scoring a software artifact for a user
CN102185917A (zh) * 2011-04-29 2011-09-14 深圳市五巨科技有限公司 一种服务器适配移动终端的方法及系统、服务器适配装置
US8627270B2 (en) 2011-09-13 2014-01-07 Sonatype, Inc. Method and system for monitoring a software artifact
US9141378B2 (en) 2011-09-15 2015-09-22 Sonatype, Inc. Method and system for evaluating a software artifact based on issue tracking and source control information
JP2013077220A (ja) * 2011-09-30 2013-04-25 Toshiba Corp コンピュータシステム及びアプリケーションのマルチバージョン管理装置
US8893116B2 (en) * 2012-01-15 2014-11-18 Microsoft Corporation Installation engine and package format for parallelizable, reliable installations
US8656343B2 (en) 2012-02-09 2014-02-18 Sonatype, Inc. System and method of providing real-time updates related to in-use artifacts in a software development environment
US8825689B2 (en) 2012-05-21 2014-09-02 Sonatype, Inc. Method and system for matching unknown software component to known software component
US9141408B2 (en) * 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
JP6106998B2 (ja) * 2012-09-03 2017-04-05 日本電気株式会社 サービス提供システム、管理装置、サービス提供方法、及び、プログラム
US9529349B2 (en) 2012-10-22 2016-12-27 Honeywell International Inc. Supervisor user management system
US9135263B2 (en) 2013-01-18 2015-09-15 Sonatype, Inc. Method and system that routes requests for electronic files
WO2014132537A1 (ja) 2013-03-01 2014-09-04 日本電気株式会社 情報処理装置、そのデータ処理方法、およびプログラム
US10333801B2 (en) * 2013-03-14 2019-06-25 Amazon Technologies, Inc. Inventory service for distributed infrastructure
CN111026430B (zh) * 2013-05-20 2023-10-13 派克赛泽有限责任公司 本地或分布式计算机系统上的柔性节点组成的方法和系统
US9933762B2 (en) * 2014-07-09 2018-04-03 Honeywell International Inc. Multisite version and upgrade management system
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
CN104410672B (zh) * 2014-11-12 2017-11-24 华为技术有限公司 网络功能虚拟化应用升级的方法、转发业务的方法及装置
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US20160371071A1 (en) * 2015-06-16 2016-12-22 Dell Software Inc. Account-based software upgrades in a multi-tenant ecosystem
US10209689B2 (en) 2015-09-23 2019-02-19 Honeywell International Inc. Supervisor history service import manager
US10362104B2 (en) 2015-09-23 2019-07-23 Honeywell International Inc. Data manager
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
RU2018132612A (ru) * 2016-02-24 2020-03-13 Сен-Гобен Абразивс, Инк. Абразивные изделия с покрытием и способы их изготовления
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
CN107547237A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 虚拟网络功能vnf更新方法、装置和vnf包
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
JP6943089B2 (ja) * 2017-09-04 2021-09-29 日本電気株式会社 情報処理システム、情報処理方法、及びプログラム
EP3659394A1 (en) * 2017-10-17 2020-06-03 Telefonaktiebolaget LM Ericsson (publ) Service registration in a communications network
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US11138001B2 (en) * 2018-03-12 2021-10-05 Twilio Inc. Customizable cloud-based software platform
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US10430179B1 (en) * 2019-03-07 2019-10-01 Capital One Services, Llc Methods and systems for managing application configurations
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
CN110633090B (zh) * 2019-08-14 2022-04-12 华为技术有限公司 补丁方法、相关装置及系统
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11687523B2 (en) 2020-11-25 2023-06-27 Salesforce, Inc. System and method for efficiently transferring data for offline use
US11675800B2 (en) * 2020-11-30 2023-06-13 Salesforce, Inc. Version control and execution on a mobile device
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228025A (ja) * 1988-03-08 1989-09-12 Nec Corp プログラム版数管理方式
JPH03124148A (ja) * 1989-10-09 1991-05-27 Hitachi Ltd サービス制御方法
JP2004506968A (ja) * 2000-05-31 2004-03-04 インタミッション リミテッド データ処理装置、方法、及びシステム
JP2004164236A (ja) * 2002-11-12 2004-06-10 Canon Inc データ更新方法
JP2005182641A (ja) * 2003-12-22 2005-07-07 Hitachi Information Systems Ltd 動的負荷分散システム及び動的負荷分散方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3463803B2 (ja) * 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
US7032229B1 (en) * 2001-06-04 2006-04-18 Palmsource, Inc. Automatic tracking of user progress in a software application
US8230414B1 (en) * 2005-06-16 2012-07-24 Infinera Corporation Software distribution and cache management across client machines on a network
JP2008181228A (ja) * 2007-01-23 2008-08-07 Sony Corp 管理システムおよび管理方法、端末装置、管理サーバ、並びにプログラム
US20100107150A1 (en) * 2007-03-20 2010-04-29 Tomihisa Kamada Terminal having application update managing function, and application update managing program and system
US8099727B2 (en) * 2007-06-01 2012-01-17 Netapp, Inc. System and method for providing uninterrupted operation of a replication system during a software upgrade
US20100131940A1 (en) * 2008-11-26 2010-05-27 Microsoft Corporation Cloud based source code version control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228025A (ja) * 1988-03-08 1989-09-12 Nec Corp プログラム版数管理方式
JPH03124148A (ja) * 1989-10-09 1991-05-27 Hitachi Ltd サービス制御方法
JP2004506968A (ja) * 2000-05-31 2004-03-04 インタミッション リミテッド データ処理装置、方法、及びシステム
JP2004164236A (ja) * 2002-11-12 2004-06-10 Canon Inc データ更新方法
JP2005182641A (ja) * 2003-12-22 2005-07-07 Hitachi Information Systems Ltd 動的負荷分散システム及び動的負荷分散方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200401174010; 萩原 正義: '萩原正義の「システム・アーキテクチャ」論 【最終回】ソフトウェア・モデルとアーキテクチャ' NIKKEI BYTE 第247号, 20031122, 第121-128頁, 日経BP社 *
JPN6013027712; 萩原 正義: '萩原正義の「システム・アーキテクチャ」論 【最終回】ソフトウェア・モデルとアーキテクチャ' NIKKEI BYTE 第247号, 20031122, 第121-128頁, 日経BP社 *

Also Published As

Publication number Publication date
US20120011496A1 (en) 2012-01-12
WO2010116676A1 (ja) 2010-10-14
CN102349052A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
WO2010116676A1 (ja) サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
US8230426B2 (en) Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US11061884B2 (en) Method and system to accelerate transaction commit using non-volatile memory
US9697050B2 (en) System and method for scaling for a large number of concurrent users
RU2429529C2 (ru) Динамическое конфигурирование, выделение и развертывание вычислительных систем
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US20060075079A1 (en) Distributed computing system installation
US20120102480A1 (en) High availability of machines during patching
SG189412A1 (en) Online database availability during upgrade
Kähkipuro UML based performance modeling framework for object-oriented distributed systems
US8751469B2 (en) System and method for scaling for a large number of concurrent users
US20070240140A1 (en) Methods and systems for application load distribution
Siddiqui et al. GLARE: A grid activity registration, deployment and provisioning framework
Alomari et al. Cdport: A framework of data portability in cloud platforms
US9904574B2 (en) Parallel computing without requiring antecedent code deployment
Miceli et al. Programming abstractions for data intensive computing on clouds and grids
US8060885B2 (en) Creating task queries for concrete resources using alias selection fields specifying formal resources and formal relationships
Kacsuk et al. WS-PGRADE: Supporting parameter sweep applications in workflows
Padulano et al. Leveraging an open source serverless framework for high energy physics computing
US20200125569A1 (en) Method and system to implement sql macros
US20090132463A1 (en) System and method for facilitating transition between ibm® websphere® mq workflow and ibm® websphere® process server
US20240126742A1 (en) Transaction manager library for automatic enlisting of distributed xa participants
Team Condor Version 7.2 Manual
Stephan Efficient Scale-out Execution for Fine-grained Data-Parallelism
Team Condor® Version 7.3. 0 Manual

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107