JP2024105342A - Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング - Google Patents
Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング Download PDFInfo
- Publication number
- JP2024105342A JP2024105342A JP2024070583A JP2024070583A JP2024105342A JP 2024105342 A JP2024105342 A JP 2024105342A JP 2024070583 A JP2024070583 A JP 2024070583A JP 2024070583 A JP2024070583 A JP 2024070583A JP 2024105342 A JP2024105342 A JP 2024105342A
- Authority
- JP
- Japan
- Prior art keywords
- service
- api
- services
- registry
- functions
- 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
Links
- 230000027455 binding Effects 0.000 title claims abstract description 18
- 238000009739 binding Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 claims abstract description 144
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000011161 development Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 description 26
- 238000007726 management method Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 230000018109 developmental process Effects 0.000 description 18
- 238000004519 manufacturing process Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008520 organization Effects 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 239000011521 glass Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 241000238558 Eucarida Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000012864 cross contamination Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】コンテナ環境内の登録されたサービスエンドポイントに対するアプリケーションプログラミングインターフェイス(API)関数を与える方法を提供する。【解決手段】方法は、APIレジストリにおいてAPI定義のアップロードを受けるステップを含む。API定義は、コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、1つ以上のAPI関数と、を含む。方法はまた、APIレジストリが、1つ以上のAPI関数とサービスのエンドポイントとの間のバインディングを作成するステップと、APIレジストリが、第1のサービスの使用を求める要求を第2のサービスから受けるステップと、APIレジストリが、1つ以上のAPI関数を第2のサービスに与えるステップと、を含む。【選択図】図7A
Description
関連出願の相互参照
本願は、本明細書に引用により援用する2017年9月30日出願の米国仮出願第62/566,351号に基づく利益を主張する。本願はまた、本願と同日に出願され本願と共通の譲受人に譲渡された以下の出願に関連し、これらの出願各々も本明細書に引用により援用する。
・2018年9月28日に出願されAPI REGISTRY IN A CONTAINER PLATFORM PROVIDING PROPERTY-BASED API FUNCTIONALITYと題された米国特許出願第16/147,305号(
代理人整理番号088325-1090746)
・2018年9月28日に出願されDYNAMIC NODE REBALANCING BETWEEN CONTAINER PLATFORMSと題された米国特許出願16/147,343号(代理人整理番号088325-1090747)
・2018年9月28日に出願されOPTIMIZING REDEPLOYMENT OF FUNCTIONS AND SERVICES ACROSS MULTIPLE CONTAINER PLATFORMS AND INSTALLATIONSと題された米国特許出願第
16/147,332号(代理人整理番号088325-1090748)
・2018年9月28日に出願されREAL-TIME DEBUGGING INSTANCES IN A DEPLOYED CONTAINER PLATFORMと題された米国特許出願16/147,351号(代理人整理番号088325-1090753)
本願は、本明細書に引用により援用する2017年9月30日出願の米国仮出願第62/566,351号に基づく利益を主張する。本願はまた、本願と同日に出願され本願と共通の譲受人に譲渡された以下の出願に関連し、これらの出願各々も本明細書に引用により援用する。
・2018年9月28日に出願されAPI REGISTRY IN A CONTAINER PLATFORM PROVIDING PROPERTY-BASED API FUNCTIONALITYと題された米国特許出願第16/147,305号(
代理人整理番号088325-1090746)
・2018年9月28日に出願されDYNAMIC NODE REBALANCING BETWEEN CONTAINER PLATFORMSと題された米国特許出願16/147,343号(代理人整理番号088325-1090747)
・2018年9月28日に出願されOPTIMIZING REDEPLOYMENT OF FUNCTIONS AND SERVICES ACROSS MULTIPLE CONTAINER PLATFORMS AND INSTALLATIONSと題された米国特許出願第
16/147,332号(代理人整理番号088325-1090748)
・2018年9月28日に出願されREAL-TIME DEBUGGING INSTANCES IN A DEPLOYED CONTAINER PLATFORMと題された米国特許出願16/147,351号(代理人整理番号088325-1090753)
背景
理論上、任意の形態のコンテナは、情報のパッケージングおよび情報との対話のための標準化された方法を表している。コンテナは、互いに分離することが可能であり、相互汚染(コンタミネーション)のいかなるリスクも伴うことなく並列に使用することが可能である。現代のソフトウェアの世界において、「コンテナ」という用語は固有の意味を獲得している。Docker(登録商標)コンテナのようなソフトウェアコンテナは、1つのソフトウェアを論理的にカプセル化し定義するソフトウェア構造である。コンテナにカプセル化される最も一般的なタイプのソフトウェアは、アプリケーション、サービス、またはマイクロサービスである。現代のコンテナはまた、オペレーティングシステム、ライブラリ、ストレージボリューム、構成ファイル、アプリケーションバイナリ、および、典型的なコンピューティング環境において見出されるであろうテクノロジースタックのその他の部分のような、アプリケーション/サービスが動作するのに必要なソフトウェアサポートすべてを含む。そのため、このコンテナ環境を使用することにより、各々が自身のサービスを任意の環境で実行する複数のコンテナを作成することができる。コンテナは、プロダクションデータセンター、オンプレミスデータセンター、クラウドコンピューティングプラットフォームなどにおいて、いかなる変更も伴うことなくデプロイすることができる。クラウド上にコンテナを立ち上げることは、ローカルワークステーション上にコンテナを立ち上げることと同一である。
理論上、任意の形態のコンテナは、情報のパッケージングおよび情報との対話のための標準化された方法を表している。コンテナは、互いに分離することが可能であり、相互汚染(コンタミネーション)のいかなるリスクも伴うことなく並列に使用することが可能である。現代のソフトウェアの世界において、「コンテナ」という用語は固有の意味を獲得している。Docker(登録商標)コンテナのようなソフトウェアコンテナは、1つのソフトウェアを論理的にカプセル化し定義するソフトウェア構造である。コンテナにカプセル化される最も一般的なタイプのソフトウェアは、アプリケーション、サービス、またはマイクロサービスである。現代のコンテナはまた、オペレーティングシステム、ライブラリ、ストレージボリューム、構成ファイル、アプリケーションバイナリ、および、典型的なコンピューティング環境において見出されるであろうテクノロジースタックのその他の部分のような、アプリケーション/サービスが動作するのに必要なソフトウェアサポートすべてを含む。そのため、このコンテナ環境を使用することにより、各々が自身のサービスを任意の環境で実行する複数のコンテナを作成することができる。コンテナは、プロダクションデータセンター、オンプレミスデータセンター、クラウドコンピューティングプラットフォームなどにおいて、いかなる変更も伴うことなくデプロイすることができる。クラウド上にコンテナを立ち上げることは、ローカルワークステーション上にコンテナを立ち上げることと同一である。
現代のサービス指向アーキテクチャおよびクラウドコンピューティングプラットフォームは、大きなタスクを多数の小さな特定のタスクに分割する。コンテナをインスタンス化することによって個々の特定のタスクに集中することができ、さらに、複数のコンテナが協働することによって高度なアプリケーションを実現することができる。これはマイクロサービスアーキテクチャと呼ばれることがあり、各コンテナは、独立してアップグレードすることが可能なさまざまなバージョンのプログラミング言語およびライブラリを使用することができる。コンテナ内の処理には分離されているという性質があるので、コンテナ
は、より大きくよりモノリシックなアーキテクチャに対して行われる変更と比較すると、手間またはリスクがほとんどない状態でアップグレードおよびリプレイスが可能である。コンテナプラットフォームを実行するために仮想マシンを使用できるが、このマイクロサービスアーキテクチャの実行において、コンテナプラットフォームは従来の仮想マシンよりも遥かに効率的である。
は、より大きくよりモノリシックなアーキテクチャに対して行われる変更と比較すると、手間またはリスクがほとんどない状態でアップグレードおよびリプレイスが可能である。コンテナプラットフォームを実行するために仮想マシンを使用できるが、このマイクロサービスアーキテクチャの実行において、コンテナプラットフォームは従来の仮想マシンよりも遥かに効率的である。
簡単な概要
いくつかの実施形態において、コンテナ環境内の登録されたサービスエンドポイントに対するアプリケーションプログラミングインターフェイス(Application Programming Interface)(API)関数を与える方法は、APIレジストリにおいて、コンテナ環境に
デプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、1つ以上のAPI関数とを含み得る、API定義を受けるステップを含み得る。この方法はまた、APIレジストリが、1つ以上のAPI関数とサービスのエンドポイントとの間のバインディングを作成するステップと、APIレジストリが、第1のサービスの使用を求める要求を第2のサービスから受けるステップと、APIレジストリが、1つ以上のAPI関数を第2のサービスに与えるステップとを含み得る。
いくつかの実施形態において、コンテナ環境内の登録されたサービスエンドポイントに対するアプリケーションプログラミングインターフェイス(Application Programming Interface)(API)関数を与える方法は、APIレジストリにおいて、コンテナ環境に
デプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、1つ以上のAPI関数とを含み得る、API定義を受けるステップを含み得る。この方法はまた、APIレジストリが、1つ以上のAPI関数とサービスのエンドポイントとの間のバインディングを作成するステップと、APIレジストリが、第1のサービスの使用を求める要求を第2のサービスから受けるステップと、APIレジストリが、1つ以上のAPI関数を第2のサービスに与えるステップとを含み得る。
いくつかの実施形態において、1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含み得る非一時的なコンピュータ読取可能媒体において、当該動作は、APIレジストリにおいて、コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、1つ以上のAPI関数とを含み得る、API定義を受けることを含み得る。上記動作はまた、APIレジストリが、1つ以上のAPI関数とサービスのエンドポイントとの間のバインディングを作成することと、APIレジストリが、第1のサービスの使用を求める要求を第2のサービスから受けることと、APIレジストリが、1つ以上のAPI関数を第2のサービスに与えることとを含み得る。
いくつかの実施形態において、システムは、1つ以上のプロセッサと、1つ以上のメモリデバイスとを含み得る。1つ以上のメモリデバイスは、1つ以上のプロセッサによって実行されると当該1つ以上のプロセッサに動作を実行させる命令を含み、当該動作は、APIレジストリにおいて、コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、1つ以上のAPI関数とを含み得る、API定義を受けることを含む。上記動作はまた、APIレジストリが、1つ以上のAPI関数とサービスのエンドポイントとの間のバインディングを作成することと、APIレジストリが、第1のサービスの使用を求める要求を第2のサービスから受けることと、APIレジストリが、1つ以上のAPI関数を第2のサービスに与えることとを含み得る。
いずれの実施形態にも、以下の特徴のうちのいずれかまたはすべてが、限定されることなく任意の組み合わせで含まれ得る。上記方法/動作はまた、1つ以上のAPI関数を含む第2のサービスのためのクライアントライブラリを生成することを含み得る。クライアントライブラリは、API関数を実現するメンバ関数とともにオブジェクトクラスを含み得る。クライアントライブラリは、第1のサービスのエンドポイントに対するダイレクトコールを含み得る。クライアントライブラリは、1つ以上のAPI関数のうちの1つが第2のサービスによってコールされたときに第1のサービスのエンドポイントを実行時にアップデートするコードを含み得る。クライアントライブラリは、1つ以上のAPI関数の1つ以上のパラメータとして受けたデータを、第1のサービスのエンドポイントに対するHTTPコールに再フォーマットし得る。クライアントライブラリは、第1のサービスのエンドポイントのHTTPコールに加えるための追加情報を第3のサービスに要求し得る
。クライアントライブラリは、第1のサービスに対する失敗コールをリトライするコードを含み得る。クライアントライブラリは、結果値を第1のサービスの結果セットから抽出し当該結果値を1つ以上のAPI関数に対するリターン値としてパッケージングするコードを含み得る。第1のサービスのエンドポイントは、IPアドレスとポート番号とを含み得る。コンテナ環境は、コンテナにカプセル化された複数のサービスを含み得る。APIレジストリは、コンテナ環境内のコンテナにカプセル化されたサービスとしてデプロイされ得る。APIレジストリは、統合開発環境(Integrated Development Environment)(IDE)において開発中のサービスと、コンテナ環境において既にデプロイされているサービスとが、利用できる。上記方法/動作はまた、APIレジストリが、コンテナ環境にデプロイされているコンテナ化されたサービスの任意の利用できるエンドポイントを識別することを含み得る。上記方法/動作はさらに、APIレジストリに登録されたすべてのサービスに対するAPI関数のリストをユーザインターフェイスに表示させることを含み得る。第1のサービスの使用を求める第2のサービスからの要求は、ユーザインターフェイスに表示された1つ以上のAPI関数のうちの1つの選択を受けることによって受けることができる。ユーザインターフェイスはコマンドラインインターフェイスを含み得る。ユーザインターフェイスはグラフィカルユーザインターフェイスを含み得る。
。クライアントライブラリは、第1のサービスに対する失敗コールをリトライするコードを含み得る。クライアントライブラリは、結果値を第1のサービスの結果セットから抽出し当該結果値を1つ以上のAPI関数に対するリターン値としてパッケージングするコードを含み得る。第1のサービスのエンドポイントは、IPアドレスとポート番号とを含み得る。コンテナ環境は、コンテナにカプセル化された複数のサービスを含み得る。APIレジストリは、コンテナ環境内のコンテナにカプセル化されたサービスとしてデプロイされ得る。APIレジストリは、統合開発環境(Integrated Development Environment)(IDE)において開発中のサービスと、コンテナ環境において既にデプロイされているサービスとが、利用できる。上記方法/動作はまた、APIレジストリが、コンテナ環境にデプロイされているコンテナ化されたサービスの任意の利用できるエンドポイントを識別することを含み得る。上記方法/動作はさらに、APIレジストリに登録されたすべてのサービスに対するAPI関数のリストをユーザインターフェイスに表示させることを含み得る。第1のサービスの使用を求める第2のサービスからの要求は、ユーザインターフェイスに表示された1つ以上のAPI関数のうちの1つの選択を受けることによって受けることができる。ユーザインターフェイスはコマンドラインインターフェイスを含み得る。ユーザインターフェイスはグラフィカルユーザインターフェイスを含み得る。
本発明の性質および利点の一層の理解は、本明細書の残りの部分および図面を参照することによって実現するであろう。いくつかの図面で使用されている同様の参照番号は、同様の構成要素を示す。いくつかの例では、参照番号に添字を対応付けることにより、同様の複数の構成要素のうちの1つを示している。既存の添字を示すことなく参照番号に言及している場合は、そのような同様の複数の構成要素すべてに言及することを意図している。
詳細な説明
開発者が開発中にサービスを登録することを可能にするとともにデプロイ中およびデプロイ後双方においてこれらのサービスを他のサービスが利用できるようにする、統合開発環境(IDE)の一部であるアプリケーションプログラミングインターフェイス(API)レジストリの実施形態について説明する。APIレジストリは、コンテナプラットフォーム上のコンテナ化されたアプリケーションとして動作するオーケストレーションされたコンテナプラットフォームの一部としてデプロイすることが可能である。サービスまたはマイクロサービスが開発されコンテナプラットフォーム上のコンテナにデプロイされると、APIレジストリは、ディスカバリプロセスを実行することにより、利用できるサービスに対応するコンテナプラットフォーム内の利用できるエンドポイント(たとえばIPアドレスおよびポート番号)の場所を特定することができる。APIレジストリはまた、API定義ファイルのアップロードを受け入れることができ、API定義ファイルは、生のサービスエンドポイントを、APIレジストリを介して利用できるようにされるAPI関数にするために使用することができる。APIレジストリは、発見されたエンドポイントを、最新状態に保たれコンテナプラットフォーム内の他のサービスが利用できるようにされたAPI関数に動的にバインドすることができる。これは、API関数とサービスエンドポイントとの間のバインディングに対する任意の変更をAPIレジストリが管理している間、他のサービスが静的にコールできる安定したエンドポイントを提供する。これはまた、コンテナプラットフォーム内のサービスを使用するプロセスを簡略化する。HTTPコールに対するコードを記述する代わりに、新たなサービスは、APIインターフェイスを使用するだけで、登録されたサービスにアクセスすることができる。
開発者が開発中にサービスを登録することを可能にするとともにデプロイ中およびデプロイ後双方においてこれらのサービスを他のサービスが利用できるようにする、統合開発環境(IDE)の一部であるアプリケーションプログラミングインターフェイス(API)レジストリの実施形態について説明する。APIレジストリは、コンテナプラットフォーム上のコンテナ化されたアプリケーションとして動作するオーケストレーションされたコンテナプラットフォームの一部としてデプロイすることが可能である。サービスまたはマイクロサービスが開発されコンテナプラットフォーム上のコンテナにデプロイされると、APIレジストリは、ディスカバリプロセスを実行することにより、利用できるサービスに対応するコンテナプラットフォーム内の利用できるエンドポイント(たとえばIPアドレスおよびポート番号)の場所を特定することができる。APIレジストリはまた、API定義ファイルのアップロードを受け入れることができ、API定義ファイルは、生のサービスエンドポイントを、APIレジストリを介して利用できるようにされるAPI関数にするために使用することができる。APIレジストリは、発見されたエンドポイントを、最新状態に保たれコンテナプラットフォーム内の他のサービスが利用できるようにされたAPI関数に動的にバインドすることができる。これは、API関数とサービスエンドポイントとの間のバインディングに対する任意の変更をAPIレジストリが管理している間、他のサービスが静的にコールできる安定したエンドポイントを提供する。これはまた、コンテナプラットフォーム内のサービスを使用するプロセスを簡略化する。HTTPコールに対するコードを記述する代わりに、新たなサービスは、APIインターフェイスを使用するだけで、登録されたサービスにアクセスすることができる。
いくつかの実施形態において、IDEは、コンテナプラットフォーム内で利用することが可能でありAPIレジストリに登録されているサービスの場所を開発者が特定するための、ナビゲーション/ブラウズインターフェイスを提供することができる。開発中の新たなサービスのために、APIレジストリが既存のサービスにコールするとき、APIレジストリは、登録されているサービスとのやり取りのために必要なすべての機能を含む一組のクライアントライブラリを自動的に生成することができる。たとえば、いくつかの実施形態は、APIコールに対応するメンバ関数を含むオブジェクトクラスを生成することができる。開発中、新たなサービスは、これらのオブジェクトをインスタンス化するおよび/またはそれらのメンバ関数を使用するだけで、対応するAPIにコールすることができる。クライアントライブラリにおけるコードは、呼び出し側サービスと登録されたサービ
スのエンドポイントとの間の直接接続を支配し、このやり取りに必要なすべての機能を扱うコードを含み得る。たとえば、自動的に生成されたクライアントライブラリは、APIコールからのパラメータをサービスエンドポイントへのHTTPコールにパッケージングしフォーマットするためのコード、コールのためのパラメータセットを完成させるためにデータを配置するためのコード、情報を互換パケット(JSON、XMLなど)にパッケージングするためのコード、結果パケットを受けてパースするためのコード、リトライおよびエラー条件を扱うためのコードなどを含み得る。呼び出し側サービスの観点からすると、この機能すべてを扱うためのコードは、APIレジストリによって自動的に生成され、したがって、サービスコールの詳細を要約しカプセル化してクライアントライブラリオブジェクトにする。呼び出し側サービスに要求されるのは、APIレジストリが作成したクライアントライブラリオブジェクトのメンバ関数を実行することだけである。
スのエンドポイントとの間の直接接続を支配し、このやり取りに必要なすべての機能を扱うコードを含み得る。たとえば、自動的に生成されたクライアントライブラリは、APIコールからのパラメータをサービスエンドポイントへのHTTPコールにパッケージングしフォーマットするためのコード、コールのためのパラメータセットを完成させるためにデータを配置するためのコード、情報を互換パケット(JSON、XMLなど)にパッケージングするためのコード、結果パケットを受けてパースするためのコード、リトライおよびエラー条件を扱うためのコードなどを含み得る。呼び出し側サービスの観点からすると、この機能すべてを扱うためのコードは、APIレジストリによって自動的に生成され、したがって、サービスコールの詳細を要約しカプセル化してクライアントライブラリオブジェクトにする。呼び出し側サービスに要求されるのは、APIレジストリが作成したクライアントライブラリオブジェクトのメンバ関数を実行することだけである。
いくつかの実施形態において、APIレジストリは、登録されたサービスのランタイム実行を定義し得る一組のプロパティのアップロードを受け入れることもできる。この一組のプロパティは、開発中に、API定義ファイルとともにアップロードすることができる。これらのプロパティは、エンドツーエンド暗号化、使用/ロギング要件、ユーザ認証、オンデマンドサービスインスタンス化、高可用性のための複数のサービスデプロイメントインスタンス、レート/使用制限、およびその他のランタイム特徴等の、ランタイム特徴を定義することができる。APIレジストリは、開発中、デプロイ中、およびランタイム中に、コンテナ環境とやり取りすることによってこれらのプロパティが満たされることを保証できる。開発中、呼び出し側サービスのために自動的に生成されたクライアントライブラリは、暗号化コード、使用ロギングコード、および/またはユーザ認証サービスとのやり取り等の、これらのプロパティの実行に必要となり得るコードを含むことができる。登録されたサービスがデプロイされているとき、APIレジストリは、コンテナプラットフォームに対し、サービスおよび/または追加のロードバランシングモジュールの複数のインスタンスをインスタンス化することによってランタイム中のサービスの高い信頼性を保証するよう指示することができる。ランタイム中にサービスがコールされると、APIレジストリは、オンデマンドインスタンス化のためにサービスをインスタンス化させ、使用を抑えるために行うことができるAPIコールの数を制限し、その他のランタイム関数を実行することができる。
図1は、いくつかの実施形態に係る、コンテナプラットフォームにおけるサービスのための開発およびランタイム環境のソフトウェア構造および論理構成を示す。この環境は、コンテナプラットフォーム上にデプロイされるサービスおよびマイクロサービスを開発するために使用し得るIDE102を含み得る。IDEは、新たなサービスの記述およびテストのためにサービス開発者が使用できる基本ツールすべてを統合し提供するソフトウェアスイートである。IDE102は、開発者がソースコード記述プロセスの記述、ナビゲート、統合、および視覚化を行うことを可能にする、グラフィカルユーザインターフェイス(GUI)、コード補完機能、およびナビゲート/ブラウズインターフェイスとともに、ソースコードエディタ106を含み得る。IDE102はまた、可変インターフェイス、即時可変インターフェイス、表現評価インターフェイス、メモリコンテンツインターフェイス、ブレークポイント可視化および機能、ならびにその他のデバッグ関数を含む、デバッガ110を含み得る。IDE102はまた、マシンコードをコンパイルしコンパイルしたマシンコードまたは解釈されたバイトコードを実行するためのコンパイラおよび/またはインタプリタ108を含み得る。コンパイラ/インタプリタ108は、開発者が別のビルド自動化構成のためのメイクファイル(makefiles)を使用/生成することを可能に
するビルドツールを含み得る。IDE102のいくつかの実施形態は、コードライブラリ112を含み得る。コードライブラリは、一般的なコード関数、オブジェクト、インターフェイス、および/または、開発中のサービスにリンクさせることができ複数の開発で再使用できるその他の構造を含む。
するビルドツールを含み得る。IDE102のいくつかの実施形態は、コードライブラリ112を含み得る。コードライブラリは、一般的なコード関数、オブジェクト、インターフェイス、および/または、開発中のサービスにリンクさせることができ複数の開発で再使用できるその他の構造を含む。
サービスは、IDE102内で、開発することができ、デプロイの準備が整うまで徹底的にテストすることができる。サービスはその後、プロダクション/デプロイメント環境104にデプロイすることができる。プロダクション/デプロイメント環境104は、専用ハードウェア、仮想マシン、およびコンテナ化されたプラットフォームを含む、多数の異なるハードウェアおよび/またはソフトウェア構造を含み得る。本開示よりも前において、サービス114がプロダクション/デプロイメント環境104にデプロイされたとき、サービス114は、IDE102で使用されるツールの多くに対するランタイムアクセスを行うことができない。サービス114がプロダクション/デプロイメント環境104で実行するのに必要ないずれの機能も、コードライブラリ112からパッケージングしサービス114とともにプロダクション/デプロイメント環境104にデプロイする必要があった。加えて、一般的にサービス114は、デバッガ110の機能またはソースコードエディタ106からのソースコードのコピーのうちのいずれも伴うことなくデプロイされる。実際、サービス114は、ランタイム動作に必要な機能すべてとともにプロダクション/デプロイメント環境104にデプロイされるが、開発中にだけ使用された情報は取り除かれる。
図2は、本明細書に記載の実施形態を実行するために特別に設計された専用コンピュータハードウェアシステムを示す。一例として、サービス114は、サービスとしてのインフラストラクチャ(Infrastructure as a Service)(IaaS)クラウドコンピューテ
ィング環境202にデプロイすることができる。これは、ネットワーク上に仮想化または共有コンピューティングリソースを提供するクラウドコンピューティングの一形態である。IaaSクラウドコンピューティング環境202はまた、サービスとしてのソフトウェア(Software as a Service)(SaaS)および/またはサービスとしてのプラットフ
ォーム(Platform as a Service)(PaaS)アーキテクチャとして構成されたその他
のクラウドコンピューティング環境を含み得る、または当該環境に結合し得る。この環境において、クラウドプロバイダは、従来オンプレミスデータセンターに存在していたハードウェアおよび/またはソフトウェアコンポーネントのインフラストラクチャをホストすることができる。このハードウェアは、サーバ、ストレージ、ネットワーキングハードウェア、ディスクアレイ、ソフトウェアライブラリ、および、ハイパーバイザレイヤのような仮想化ユーティリティを含み得る。IaaS環境202は、Oracle(登録商標)またはその他一般に利用できるクラウドプラットフォームのような商用ソースによって提供されることができる。IaaS環境202はまた、ハードウェアおよびソフトウェアのプライベートインフラストラクチャを用いてプライベートクラウドとしてデプロイすることもできる。
ィング環境202にデプロイすることができる。これは、ネットワーク上に仮想化または共有コンピューティングリソースを提供するクラウドコンピューティングの一形態である。IaaSクラウドコンピューティング環境202はまた、サービスとしてのソフトウェア(Software as a Service)(SaaS)および/またはサービスとしてのプラットフ
ォーム(Platform as a Service)(PaaS)アーキテクチャとして構成されたその他
のクラウドコンピューティング環境を含み得る、または当該環境に結合し得る。この環境において、クラウドプロバイダは、従来オンプレミスデータセンターに存在していたハードウェアおよび/またはソフトウェアコンポーネントのインフラストラクチャをホストすることができる。このハードウェアは、サーバ、ストレージ、ネットワーキングハードウェア、ディスクアレイ、ソフトウェアライブラリ、および、ハイパーバイザレイヤのような仮想化ユーティリティを含み得る。IaaS環境202は、Oracle(登録商標)またはその他一般に利用できるクラウドプラットフォームのような商用ソースによって提供されることができる。IaaS環境202はまた、ハードウェアおよびソフトウェアのプライベートインフラストラクチャを用いてプライベートクラウドとしてデプロイすることもできる。
クラウド環境のタイプとは関係なく、サービス114は、複数種類のハードウェア/ソフトウェアシステムにデプロイすることができる。たとえば、サービス114は、専用ハードウェア206にデプロイすることができる。専用ハードウェア206は、サービス114に特別に割り当てられたサーバ、ディスク、オペレーティングシステム、ソフトウェアパッケージなどのようなハードウェアリソースを含み得る。たとえば、特定のサーバが、サーバ114との間で流れるトラフィックを処理するように割り当てられていてもよい。
別の例において、サービス114は、1つ以上の仮想マシン208として動作させるハードウェア/ソフトウェアにデプロイすることができる。仮想マシンは、専用コンピュータハードウェア206の機能を提供するコンピュータシステムをエミュレートしたものである。しかしながら、特定の関数専用にする代わりに、物理ハードウェアを複数の異なる仮想マシンが共有してもよい。各仮想マシンは、完全なオペレーティングシステムを含む、実行する必要があるすべての機能を提供することができる。これにより、異なるオペレ
ーティングシステムを有する複数の仮想マシンが、同一の物理ハードウェア上で実行することができ、複数のサービスが1つのハードウェアを共有することができる。
ーティングシステムを有する複数の仮想マシンが、同一の物理ハードウェア上で実行することができ、複数のサービスが1つのハードウェアを共有することができる。
別の例において、サービス114はコンテナプラットフォーム210にデプロイすることができる。コンテナプラットフォームは、仮想マシン208と、複数の重要な点において異なっている。第1に、以下図3で詳述するように、コンテナプラットフォーム210は、個々のサービスをコンテナにパッケージングする。各コンテナは、ホストオペレーティングシステムカーネルを共有するとともに、バイナリ、ライブラリ、およびその他の読取専用コンポーネントを共有する。これにより、コンテナを極めて軽くすることができ、わずか数メガバイトのサイズであることも多い。加えて、軽量コンテナは、仮想マシンのブートアップに数分を要するのに対して起動にわずか数秒しかかからず、非常に効率的である。また、コンテナは、オペレーティングシステム、および、コンテナプラットフォーム210内の一組のコンテナセットに対してともに管理できるその他のライブラリを共有することにより、管理オーバーヘッドを減じる。コンテナは同じオペレーティングシステムを共有するものの、オペレーティングシステムは分離のために仮想メモリサポートを提供するので、分離されたプラットフォームを提供する。コンテナ技術は、Docker(登録商標)コンテナ、Linux(登録商標) Libcontainer(登録商標)、オープンコンテナイニシアティブ(Open Container Initiative)(OCI)、Kubernetes(登録商標)、Coe
OS、Apache(登録商標) Mesosを、それ以外のものともに含み得る。これらのコンテナは、本明細書では簡単に「コンテナプラットフォーム210」と呼ぶ場合があるコンテナオーケストレーションプラットフォームにデプロイすることができる。コンテナプラットフォームは、デプロイされたソフトウェアコンテナの自動化された構成、調整、および管理を維持する。コンテナプラットフォーム210は、サービスディスカバリ、ロードバランシング、ヘルスチェック、マルチデプロイメントなどを提供することができる。コンテナプラットフォーム210は、ノードおよびポッドで構成されたコンテナを実行する、Kubernetesのような一般に利用できるコンテナプラットフォームによって実現し得る。
OS、Apache(登録商標) Mesosを、それ以外のものともに含み得る。これらのコンテナは、本明細書では簡単に「コンテナプラットフォーム210」と呼ぶ場合があるコンテナオーケストレーションプラットフォームにデプロイすることができる。コンテナプラットフォームは、デプロイされたソフトウェアコンテナの自動化された構成、調整、および管理を維持する。コンテナプラットフォーム210は、サービスディスカバリ、ロードバランシング、ヘルスチェック、マルチデプロイメントなどを提供することができる。コンテナプラットフォーム210は、ノードおよびポッドで構成されたコンテナを実行する、Kubernetesのような一般に利用できるコンテナプラットフォームによって実現し得る。
サービス114をデプロイするプラットフォーム206、208、210とは関係なく、プラットフォーム206、208、210は各々、サービス114をコールするためのパブリックアクセスを提供するサービスエンドポイント212、214、216を提供できる。一般的に、これらのエンドポイントには、HTTPコールを通してアクセスでき、これらのエンドポイントは、IPアドレスおよびポート番号に対応付けられる。正しいIPアドレスおよびポート番号に接続することにより、その他のサービスは、公的に利用できるようにされたときにプラットフォーム206、208、210のうちのいずれかにデプロイされるサービスをコールすることができる。サービス114等の各サービスは、サービスをコールするための自身のプロプライエタリフォーマットとデータ要件とを含み得る。同様に、各サービスは、フォーマットおよびデータタイプがそのサービス114に固有である結果を返すことができる。サービス固有の要件に加えて、特定のデプロイメントプラットフォーム206、208、210はまた、サービスと適切にやり取りするために準拠する必要がある、プログラミング言語、パッケージフォーマット(JSON、XMLなど)その他のような、サービス114とやり取りするための追加要件を含み得る。
上述の例は、サービス114を上記プラットフォーム206、208、210のうちのいずれかにデプロイすることを可能にするが、本明細書に記載の実施形態は、上記コンテナプラットフォーム210のために特別に設計される。よって、「コンテナプラットフォーム」にデプロイされると具体的に記載された実施形態は、仮想マシンプラットフォームに、サーバもしくは専用ハードウェアプラットフォーム上に、または一般的にIaaS環境にデプロイされると具体的に記載された実施形態と区別することができる。
図3は、本明細書に記載の実施形態のうちのいくつかが使用するコンテナプラットフォ
ーム210に固有であってもよいデータ組織を示す。一般的に、コンテナプラットフォームへのサービスのいかなるデプロイメントもポッド304、306にデプロイされる。ポッドは、1つ以上のアプリケーションコンテナ(たとえばDockerまたはrkt)からなるグ
ループを表す抽象概念である。ポッドはまた、当該ポッド内のすべてのコンテナが共通して利用できるいくつかの共有リソースを含み得る。たとえば、ポッド304はコンテナ310とコンテナ312とを含む。ポッド304はまた、共有リソース308を含む。このリソースは、ストレージボリューム、またはコンテナが如何にしてポッド304内で実行されるかまたは接続されるかに関するその他の情報を含み得る。ポッド304は、比較的密接に結合された異なるサービスコンテナ310、312を含むアプリケーション専用論理ホストをモデル化することができる。たとえば、コンテナ310内のサービス326は、リソース308を利用することができ、コンテナ312内のサービス320をコールすることができる。サービス320もサービス322をコールすることができ、サービス322もサービス324をコールすることができ、これらのサービスは各々コンテナ312にデプロイされている。サービス324の出力はネットワークIPアドレスおよびポート318に与えることができ、これはポッド304が共有する別の共通リソースである。このように、サービス320、322、324、326すべてが共有リソース308と協働することにより、他のコンテナで実行されるサービスがIPアドレスおよびポート番号318によってアクセスすることができる、1つのサービスを提供する。このサービスは、コンテナプラットフォームまたはIaaS環境の一部ではない、ワークステーション、ラップトップコンピュータ、スマートフォンまたはその他のコンピューティングデバイスのような、コンテナプラットフォームの外部のコンピュータシステムが、IPアドレスポート318を介してアクセスすることもできる。
ーム210に固有であってもよいデータ組織を示す。一般的に、コンテナプラットフォームへのサービスのいかなるデプロイメントもポッド304、306にデプロイされる。ポッドは、1つ以上のアプリケーションコンテナ(たとえばDockerまたはrkt)からなるグ
ループを表す抽象概念である。ポッドはまた、当該ポッド内のすべてのコンテナが共通して利用できるいくつかの共有リソースを含み得る。たとえば、ポッド304はコンテナ310とコンテナ312とを含む。ポッド304はまた、共有リソース308を含む。このリソースは、ストレージボリューム、またはコンテナが如何にしてポッド304内で実行されるかまたは接続されるかに関するその他の情報を含み得る。ポッド304は、比較的密接に結合された異なるサービスコンテナ310、312を含むアプリケーション専用論理ホストをモデル化することができる。たとえば、コンテナ310内のサービス326は、リソース308を利用することができ、コンテナ312内のサービス320をコールすることができる。サービス320もサービス322をコールすることができ、サービス322もサービス324をコールすることができ、これらのサービスは各々コンテナ312にデプロイされている。サービス324の出力はネットワークIPアドレスおよびポート318に与えることができ、これはポッド304が共有する別の共通リソースである。このように、サービス320、322、324、326すべてが共有リソース308と協働することにより、他のコンテナで実行されるサービスがIPアドレスおよびポート番号318によってアクセスすることができる、1つのサービスを提供する。このサービスは、コンテナプラットフォームまたはIaaS環境の一部ではない、ワークステーション、ラップトップコンピュータ、スマートフォンまたはその他のコンピューティングデバイスのような、コンテナプラットフォームの外部のコンピュータシステムが、IPアドレスポート318を介してアクセスすることもできる。
最も単純なデプロイメントの場合、各コンテナは1つのサービスを含むことができ、各ポッドはサービスをカプセル化する1つのコンテナを含むことができる。たとえば、ポッド306は1つのサービス328のみを有する1つのコンテナ314のみを含む。この1つのサービスは、ポッド306のIPアドレスおよびポート番号316を通してアクセスできる。典型的に、サービスがコンテナプラットフォームにデプロイされるとき、コンテナおよびポッドがインスタンス化されてこのサービスを保持する。複数の異なるポッドをコンテナノード302にデプロイすることができる。一般的に、ポッドはノード内で実行される。ノードはコンテナプラットフォーム内のワーカーマシン(仮想または物理いずれか)を表す。各ノードは、各ノード内のスケジューリングポッドを自動的に扱う「マスタ」によって管理される。各ノードは、マスタとノードとの間の通信を担い、かつ当該ノードによって表されるマシン上のコンテナ内でポッドを管理するためのプロセスを実行することができる。各ノードはまた、レジストリからコンテナ画像を引き出すこと、コンテナを解凍すること、およびサービスを実行することを担うコンテナランタイムを含み得る。
図4は、いくつかの実施形態に係る、IDE102およびプロダクション/デプロイメント環境104にデプロイすることができるAPIレジストリ404を示す。上述のように、サービス114がIDE102からプロダクション/デプロイメント環境104にデプロイされるとき、IDE102内で独占的に利用できる情報へのランタイムアクセスをサービス114が失うという、技術的課題がある。APIレジストリ404に対し、サービス114は、プロダクション/デプロイメント環境104にデプロイされこの環境でランタイム中に動作している間、アクセスすることができる。開発関数がランタイム関数から分離されるという過去の技術的課題は、開発中にサービスをAPIレジストリ404に登録しAPI定義および/またはAPIプロパティをAPIレジストリ404に与えることにより、APIレジストリ404によって克服される。APIを定義する情報は、IDE102内の開発中の新たなサービス、および、プロダクション/デプロイメント環境104に既にデプロイされているサービスが、使用できる。この登録プロセスの完了後、サービス114はクライアントライブラリを用いて動作することができ、クライアントライ
ブラリは、ランタイム中にAPIレジストリ404にアクセスすることにより、API関数が、対応するサービスの現在のIPアドレスおよびポート番号に正しくバインドされていることを保証する。APIレジストリ404は、これらの技術的課題を解決するために特別に設計された新たなデータ構造および処理ユニットを表す。
ブラリは、ランタイム中にAPIレジストリ404にアクセスすることにより、API関数が、対応するサービスの現在のIPアドレスおよびポート番号に正しくバインドされていることを保証する。APIレジストリ404は、これらの技術的課題を解決するために特別に設計された新たなデータ構造および処理ユニットを表す。
当該技術に存在していたもう1つの技術的課題は、サービスプロパティがプロダクション/デプロイメント環境104にデプロイされるときの、サービスプロパティの実現であった。たとえば、サービスを高可用性を伴ってデプロイしようとする場合、開発者は、コンテナプラットフォーム内でサービスの複数のインスタンスを特別にインスタンス化したコンテナデプロイメントファイルと、バランスが取れたトラフィックとを、サービスが常に利用できるように構築する必要がある。サービス開発者は必ずしもこの専門知識を有していた訳ではなく、それらのサービスのデプロイメントを大抵は管理できた訳でもない。上述のように、APIレジストリ404により、サービスは、APIレジストリ404が自動的に実現できる高可用性のようなプロパティを単純に選択することができる。この技術的解決策が可能な理由は、APIレジストリ404がIDE102とプロダクション/デプロイメント環境104との間の隙間の架け橋となるからである。
図5は、いくつかの実施形態に係る、実行時にコンテナプラットフォーム210とともに使用されるAPIレジストリ404のデプロイメントを示す。APIレジストリ404が提供する、既存の技術に対する技術的解決策および改善のうちの1つは、サービスコールのための安定したエンドポイントの維持、ならびにサービスコールへのアクセスの簡略化およびサービスコールへのアクセスのための自動コード生成である。本開示よりも前において、サービス間のコールは、たとえばIPアドレスおよびポート番号に対するHTTPコールを用いるポイントツーポイント接続であった。サービスがアップデート、リプレイス、リロケート、およびコンテナプラットフォーム210に再デプロイされるときに、IPアドレスおよびポート番号が頻繁に変わる可能性がある。この場合、アップデートされたサービスをコールしたすべてのサービスが、そのサービスをコールした実際のコードのIPアドレスおよびポート番号をアップデートする必要があった。APIレジストリ404は、この技術的課題を、サービスのIPアドレスおよびポート番号と、APIレジストリを介して利用できるようにされるAPI関数との間の動的バインディングを提供することによって解決する。APIレジストリ404が自動的に生成するクライアントライブラリは、APIレジストリ404にアクセスすることにより特定のサービスの現在のIPアドレスおよびポート番号を取り出すおよび/または検証する関数を含み得る。したがって、第2のサービスに接続する第1のサービスは、クライアントライブラリを一度生成するだけで、第2のサービスへの、存続期間にわたって安定した接続を提供する。
APIレジストリ404が解決する別の技術的課題は、クライアントライブラリの自動生成である。本開示よりも前において、第2のサービスにアクセスする第1のサービスは、第2のサービスにアクセスするためのカスタムコードを開発者が記述することを必要としていた。このコードは時間の経過に伴って変化する可能性があるので、どちらもアップデートを必要とする第1のサービスと第2のサービスとの間に非互換性が生じることになる。APIレジストリ404は、この技術的課題を、サービスをコールするためにクライアントライブラリを自動的に生成するのに使用されるAPI定義ファイルをアップロードすることによって解決する。したがって、サービスは、その他いずれかのサービスにおけるコーリングコードが如何にして動作すべきかを具体的に指定することができ、これが互換性を保証する。これらのクライアントライブラリはまた、サービスをコールするためのコードを大幅に簡略化しカプセル化する。以下で述べるように、IPアドレスおよびポート番号を使用する複雑なHTTPコールは、呼び出し側サービスに固有の言語(たとえばJava(登録商標)、C#など)の単純なメンバ関数に置き換えることができる。これにより、呼び出し側サービスは、APIレジストリ404からAPI関数を選択すること
ができ、関数で実現するコードは、クライアントライブラリとして呼び出し側サービスダウンロードすることができる。
ができ、関数で実現するコードは、クライアントライブラリとして呼び出し側サービスダウンロードすることができる。
図6Aは、いくつかの実施形態に係る、APIレジストリ404をデプロイする方法のフローチャートを示す。この方法は、APIレジストリサービスをコンテナ環境にデプロイすることを含み得る(601)。APIレジストリは、コンテナ環境においてコンテナ内で動作するサービスとして実現することができる。よって、APIレジストリは、実行時にアクセスされることができるよう、コンテナ環境内にサービスがデプロイされた後で能動的に実行することができる。APIレジストリは、上記既存のIDEにリンクさせることもできる。この方法はさらに、コンテナプラットフォーム内の利用できるサービスのためのポートを発見することを含み得る(603)。サービスがコンテナプラットフォームにデプロイされると、APIレジストリは、コンテナプラットフォームにデプロイされたサービス各々を逐次的にトラバースするディスカバリプロセスを開始することができる。サービスごとに、APIレジストリはIPアドレスおよびポート番号を検出して記録することができる。このプロセスによって発見されたIPアドレスおよびポート番号の一覧表は、APIレジストリに対応付けられたテーブル等のデータ構造に格納することができる。また、各IPアドレスおよびポート番号は、そのサービスの名称とともに、または、コンテナプラットフォーム上のサービスを一意に識別するその他の識別子とともに、格納することができる。図6Aのフローチャートに示されるこれらの初期ステップは、APIレジストリがコンテナプラットフォームのランタイム環境内で動作を開始するため、かつ、IDE内で開発中のサービスがAPIレジストリを利用できるようにするための、出発点を提供する。
図6Bは、いくつかの実施形態に係る、図6Aのフローチャートを用いてAPIレジストリをデプロイするときのコンテナプラットフォーム210のソフトウェア構造を示す。先に述べたように、APIレジストリ404はコンテナプラットフォーム210内のコンテナ620にデプロイすることができる。先に図3で説明したように、コンテナ620は、あるノードにおいて1つ以上のポッド内で動作することができる。APIレジストリ404を、コンテナプラットフォーム210内の他のコンテナのうちのいずれかが非公式に利用できるようにすることができる。いくつかの実施形態において、APIレジストリ404を、コンテナプラットフォーム210の一部ではない他のデバイスが公的に利用できるようにすることもできる。コンテナ化されたサービスとして、APIレジストリ404は他のサービスが利用できるIPアドレスおよびポート番号を有することができる。しかしながら、APIレジストリ404のIPアドレスおよびポート番号は、クライアントライブラリで自動的に生成されたコードのみによって使用されるので、いくつかの実施形態はAPIレジストリ404のIPアドレスおよびポート番号を公開する必要はない。その代わりに、IDE自身のクライアントライブラリが、他のサービスの開発、デプロイ、および実行中にコンタクトできるよう、APIレジストリ404のIPアドレスおよびポート番号の最新一覧表を管理することができる。
APIレジストリ404は、コンテナ620にデプロイされた後に、ディスカバリプロセスを実行することができる。ディスカバリプロセスは、コンテナプラットフォームにおけるノードのディレクトリ一覧表を用いることにより、IPアドレスおよびポート番号で、サービスを実現するポッドを特定することができる。そうすると、APIレジストリ404は、利用できる各サービスの番号または名称等の固有識別子にアクセスし、識別子を各IPアドレスおよびポート番号とともにコンテナプラットフォーム210に格納することができる。このディスカバリプロセスを周期的に実行することにより、コンテナプラットフォーム210に追加された新たなサービスを検出することができるとともに、コンテナプラットフォーム210から削除された既存のサービスを特定することができる。以下で述べるように、このディスカバリプロセスを用いることにより、既存のサービスについ
てIPアドレスおよびポート番号がいつ変化したかを検出することもできる。たとえば、APIレジストリ404は、エンドポイント602、604、606、608を有するサービスを発見することができる。下記プロセスにおいて、APIレジストリ404は、これらのエンドポイント602、604、606、608各々を、APIレジストリ404に登録されたAPI関数にバインドすることができる。この最初の発見後のある時点で、エンドポイント602のIPアドレスおよび/またはポート番号が、エンドポイント602に対応付けられたサービスがリプレイス、アップデート、またはリバイズされたときに、変更される場合がある。APIレジストリ404は、このエンドポイント602に対する変更を検出し、APIレジストリ404が提供する既存のAPI関数へのバインディングをアップデートすることができる。
てIPアドレスおよびポート番号がいつ変化したかを検出することもできる。たとえば、APIレジストリ404は、エンドポイント602、604、606、608を有するサービスを発見することができる。下記プロセスにおいて、APIレジストリ404は、これらのエンドポイント602、604、606、608各々を、APIレジストリ404に登録されたAPI関数にバインドすることができる。この最初の発見後のある時点で、エンドポイント602のIPアドレスおよび/またはポート番号が、エンドポイント602に対応付けられたサービスがリプレイス、アップデート、またはリバイズされたときに、変更される場合がある。APIレジストリ404は、このエンドポイント602に対する変更を検出し、APIレジストリ404が提供する既存のAPI関数へのバインディングをアップデートすることができる。
同様に、APIレジストリ404は、ディスカバリプロセスを用いることにより、いつエンドポイントが利用できなくなったかを検出し、その後、サービスに対応付けられたAPI関数を削除することができる。いくつかの実施形態において、サービスはAPIレジストリ404に登録されているものの、対応するAPI関数が現在有効なエンドポイントにバインドされていないとき、APIレジストリ404は、対応するAPI関数をコールしているいずれかのサービスにモックレスポンス(mock response)を与えることができ
る。たとえば、エンドポイント604に対応するサービスについてAPIが登録されているものの、エンドポイント604は現在利用できない場合、APIレジストリ404は、エンドポイント604に対するコールをインターセプトしそれに応じてデフォルトまたはダミーデータを与えることができる。これにより、エンドポイント604に対応付けられているサービスをコールするサービスは、機能を維持する、および/またはこの特定のサービスに対する接続を「切断する」ことなく設計プロセスを続けることができる。モック/テストデータシナリオについては以下でより詳細に説明する。
る。たとえば、エンドポイント604に対応するサービスについてAPIが登録されているものの、エンドポイント604は現在利用できない場合、APIレジストリ404は、エンドポイント604に対するコールをインターセプトしそれに応じてデフォルトまたはダミーデータを与えることができる。これにより、エンドポイント604に対応付けられているサービスをコールするサービスは、機能を維持する、および/またはこの特定のサービスに対する接続を「切断する」ことなく設計プロセスを続けることができる。モック/テストデータシナリオについては以下でより詳細に説明する。
図7Aは、いくつかの実施形態に係る、APIレジストリ404にサービスを登録する方法のフローチャートを示す。この方法は、API定義のアップロードを受けることを含み得る(701)。API定義は、データパケット、ファイル、または情報リポジトリに対するリンクの形態で提供し得る。API定義は、サービスに対応付けられたエンドポイントにバインドすべきAPI関数を特定し定義するために使用できる任意の情報を含み得る。たとえば、API定義のいくつかの実施形態は、以下のデータを、すなわち、サービス名またはその他の固有識別子、サービスエンドポイントおよびコールに対応する関数名、対応する記述およびデータタイプでサービスにコールするのに必要なデータ入力、結果データフォーマットおよびデータタイプ、現在のIPアドレスおよび/またはポート番号、エンドポイントに対応付けられることになるAPI関数の機能を記述する文書、モック/テストシナリオ中に返すべきデフォルトまたはダミーデータ値、ならびに、APIレジストリ404が、エンドポイントが受けたHTTP要求を、クラスデータオブジェクトのAPI関数コールを使用するクライアントライブラリに変換するために使用し得るその他任意の情報を、含み得る。
この方法はまた、アップロードされたAPI定義に基づいて対応するAPI関数を作成することを含み得る(703)。これらのAPI関数はAPI定義に基づいて自動的に生成することができる。サービスの各エンドポイントは複数の異なるAPI関数に対応付けることができる。たとえば、RESTfulインターフェイスを実現するエンドポイントは、同一のIPアドレスおよびポート番号のPOST、GET、PUT、およびDELETE関数に対するHTTPコールを受けることができる。これは結果としてたとえば異なるAPI関数に対するものになり得る。たとえば、このインターフェイスがユーザのリストを表す場合、これは、GetUser( )、AddUser( )、RemoveUser( )、およびUpdateUser( )のような、少なくとも4つの異なるAPI関数に対応し得る。加えて、各API関数は、UpdateUser(id)、UpdateUser(name)、UpdateUser(firstname, lastname)などのような、
複数の異なるパラメータリストを含み得る。これらのAPI関数を生成し、生成されたAPI関数をAPIレジストリを介して他のサービスが利用できるようにすることができる。以下でより詳細に説明するように、これらの関数をAPIレジストリを介してコールするためにサービスは必要ではないことに注意する必要がある。代わりに、これらの関数は、APIレジストリにおいてブラウズするのに利用できるようにされ、選択されると、APIレジストリは、呼び出し側サービスにおいてこれらの関数を実現するクライアントライブラリを生成することができる。
複数の異なるパラメータリストを含み得る。これらのAPI関数を生成し、生成されたAPI関数をAPIレジストリを介して他のサービスが利用できるようにすることができる。以下でより詳細に説明するように、これらの関数をAPIレジストリを介してコールするためにサービスは必要ではないことに注意する必要がある。代わりに、これらの関数は、APIレジストリにおいてブラウズするのに利用できるようにされ、選択されると、APIレジストリは、呼び出し側サービスにおいてこれらの関数を実現するクライアントライブラリを生成することができる。
この方法はさらに、APIレジストリにおいて、API関数と、対応するサービスのエンドポイントとの間のバインディングを作成することを含み得る(705)。上記ディスカバリプロセスおよびステップ701の登録プロセスに基づいて、APIレジストリは、コンテナプラットフォームにおけるサービスのエンドポイントと、APIレジストリが作成したAPI関数との間の動的バインディングを作成することができる。利用できるエンドポイントおよびサービスを発見したときに形成される上記データ構造に、APIレジストリは、各エンドポイントの対応する関数または一組の関数を格納することができる。上述のように、このバインディングは、サービスがいつアップデート、移動、リプレイス、またはコンテナプラットフォームに追加されるかがディスカバリプロセスによって判断されたときに、常にアップデートすることができる。これにより、呼び出し側サービスにおいて作成されたクライアントライブラリは、先ずAPIレジストリを調べることにより、サービスの現在のIPアドレスおよびポート番号を検証するまたは受けることができる。
図7Bは、いくつかの実施形態に係る、APIレジストリ404にAPIを登録するためのステップのハードウェア/ソフトウェア図を示す。上述のように、APIレジストリ404をインスタンス化しコンテナプラットフォーム210におけるコンテナ620内で実行することができる。コンテナプラットフォーム210はプロダクション/デプロイメント環境を表しているが、APIレジストリ404はそれでもなお、サービスを開発するために使用されるIDE102からアクセスすることができる。よって、IDE102は、API定義ファイル702をAPIレジストリ404にアップロードするメカニズムを提供することができる。具体的には、IDE102のユーザインターフェイスは、開発者がAPI定義ファイル702のフィールドを定義するおよび/またはフィールドにポピュレートすることを可能にするウィンドウまたはインターフェイスを含み得る。上述のこの情報は、関数名、パラメータリスト、データタイプ、フィールド長、オブジェクトクラス定義、IPアドレスおよびポート番号、サービス名またはその他の固有識別子などを、含み得る。この情報は、APIレジストリ404にアップロードすることができ、動的バインディングによって、エンドポイント602の特定のIPアドレスおよびポート番号にリンクさせることができる。最後に、APIレジストリ404は、APIレジストリ404を介して利用できるようにすることができる1つ以上のAPI関数704を生成することができる。
サービスがAPIレジストリ404に登録され1つ以上のAPI関数が生成された後に、APIレジストリは、開発者がサービスを設計する際にこれらの関数を利用できるようにすることができる。図8は、いくつかの実施形態に係る、APIレジストリ404に登録されたAPIをブラウズし選択するためのグラフィカルインターフェイス802およびコマンドラインインターフェイス804の例を示す。コンテナプラットフォームに対して新たなサービスをプログラミングおよび開発するときに、開発者は、グラフィカルインターフェイス802にアクセスすることにより、それらのサービスで使用できるAPI関数をブラウズし選択することができる。このグラフィカルインターフェイス802は、一例にすぎず、API関数をブラウズし選択するために使用できるグラフィカルインターフェイスのタイプを限定することを意図している訳ではない。
この実施形態において、IDE102は、APIレジストリに登録されているAPIのリストを提供するようグラフィカルインターフェイス802に命じることができる。この実施形態において、APIはエンドポイントに基づいてカテゴライズされる。たとえば、あるサービスに対応する1つのエンドポイントは、ユーザ記録を格納するためのRESTfulインターフェイスを提供し得る(たとえば「UserStorage」)。グラフィカルイン
ターフェイス802は、選択されたエンドポイントを介して利用できるすべてのAPI関数(たとえば「CreateUser」、「DeleteUser」、「UpdateUser」など)を表示することができる。その他の実施形態は、サービスが複数のエンドポイントを提供する場合、サービス全体に基づいて関数をグループ分けすることができる。グラフィカルインターフェイス802は、呼び出し側サービスで使用される1つ以上のAPI関数の選択を受けることができる。APIレジストリは次に、必要なパラメータおよびリターン値を含む、API関数の使用方法を示す文書を提供することができる。当業者は、コマンドラインインターフェイス804がグラフィカルインターフェイス802と同様の情報を提供することができかつ同様の入力を受けることができることを、理解するであろう。
ターフェイス802は、選択されたエンドポイントを介して利用できるすべてのAPI関数(たとえば「CreateUser」、「DeleteUser」、「UpdateUser」など)を表示することができる。その他の実施形態は、サービスが複数のエンドポイントを提供する場合、サービス全体に基づいて関数をグループ分けすることができる。グラフィカルインターフェイス802は、呼び出し側サービスで使用される1つ以上のAPI関数の選択を受けることができる。APIレジストリは次に、必要なパラメータおよびリターン値を含む、API関数の使用方法を示す文書を提供することができる。当業者は、コマンドラインインターフェイス804がグラフィカルインターフェイス802と同様の情報を提供することができかつ同様の入力を受けることができることを、理解するであろう。
図8に示されるインターフェイス802、804は複数の技術的利点を提供する。第1に、これらのインターフェイス802、804は、APIレジストリに登録されているすべてのAPIの最新一覧表を提供する。これは、コンテナプラットフォームで現在利用できるすべてのサービスのリストに相当する。文書を調べること、サービス開発者にコンタクトすること、および/または利用できるサービスのリストの場所を特定するためのその他の非効率的なタスクを実行することが要求されるのではなく、サービス開発者はこの情報をリアルタイムで取り出して表示することができる。加えて、サービスがアップデートされると、API定義ファイルを対応するやり方でアップデートすることができる。これにより、次に図8に示されるディスプレイがアップデートされて各API関数の最新の可用性情報を提供する。
図9は、いくつかの実施形態に係る、APIレジストリに登録されたサービスおよびその対応する関数を使用する方法のフローチャートを示す。この方法は、登録されたAPIの一覧表を提供することを含み得る(901)。所望のサービスが既にわかっている場合はこのステップを省略してもよい。しかしながら、一般的に、サービスは、上述の図8のインターフェイスを用いたブラウズおよびナビゲーションのために表示することができる。この方法はまた、API関数の選択を受けることを含み得る(903)。この選択は、APIレジストリがサービスの開発者から受けることができるものである。たとえば、開発者は、上記CreateUser( )関数を用いてユーザ記録のデータベースをアップデートする
と決定する場合がある。図10は、APIレジストリが如何にしてCreateUser( )関数の
選択1002をグラフィカルインターフェイス802を介して受けることができるかを示す。他の実施形態は、この選択を、コマンドラインインターフェイスを介してまたはIDEが提供するその他の入力方法を介して受けることができる。
と決定する場合がある。図10は、APIレジストリが如何にしてCreateUser( )関数の
選択1002をグラフィカルインターフェイス802を介して受けることができるかを示す。他の実施形態は、この選択を、コマンドラインインターフェイスを介してまたはIDEが提供するその他の入力方法を介して受けることができる。
再び図9を参照して、APIレジストリは、API関数の選択を受けると、呼び出し側サービスのための1つ以上のクライアントライブラリを生成することができる(905)。クライアントライブラリを生成することにより、呼び出し側サービスに、API関数に動的にバインドされたサービスエンドポイントを提供することができる。具体的には、IDEは、コンテナプラットフォームにおけるサービスエンドポイントと直接インターフェイスするのに必要な機能をカプセル化する一組のクラスオブジェクトをIDEに生成することができる。いくつかの実施形態において、クライアントライブラリは、サービスとの通信に必要なコードを実施するメンバ関数をコールするためにインスタンス化または使用することができるオブジェクトクラスを含み得る。これらのクライアントライブラリの例については以下でより詳細に説明する。
この方法はさらに、テストデータを提供することを含み得る(907)。サービスは、APIレジストリに登録されるとき、完全である必要はない。代わりに、サービスは、呼び出し側サービスに対する機能的レスポンスを提供する準備がまだ整っていないことをAPIレジストリに対して示すことができる。いくつかの実施形態において、APIレジストリにアップロードされたAPI定義ファイルは、サービスが機能的になる前に返す必要がある情報のタイプの明細を含み得る。呼び出し側サービスがAPI関数をコールすると、APIレジストリが生成したクライアントライブラリは、サービスエンドポイントではなくAPIレジストリに要求をルーティングすることができる。そうすると、APIレジストリは、ダミー、ヌル、またはデフォルト値を用いてレスポンスを提供することができる。これに代えて、クライアントライブラリ自身の中にあるコードが、呼び出し側サービスに返されるデフォルトデータを生成してもよい。
図9に示される具体的なステップが本発明の各種実施形態に係るAPIレジストリの特定の使用方法を提供することが理解されるはずである。代替実施形態に従いステップの他のシーケンスを実行することもできる。たとえば、本発明の代替実施形態は、概要を述べた上記ステップを異なる順序で実行し得る。加えて、図9に示される個々のステップは、個々のステップに適したさまざまなシーケンスで実行し得る複数のサブステップを含み得る。さらに、特定のアプリケーションに応じてその他のステップを追加または削除する場合もある。当業者は、多数の変形、修正、および代替形を認識するであろう。
図11は、いくつかの実施形態に係る、APIレジストリがあるサービスのために自動的に生成したクライアントライブラリの一例を示す。このクライアントライブラリ1102は、ユーザ記録を格納するサービスに対応し得る。このクライアントライブラリ1102ならびに対応するクラスおよびサービスは、例示のために提供されているにすぎず、限定を意図している訳ではない。先に述べたように、各API関数およびサービスは、APIレジストリにアップロードされたAPI定義ファイルによって如何にしてクライアントライブラリが生成されるべきかを指定することができる。したがって、「User(ユーザ)」サービスに関して以下で述べる原理は、その他のサービスにも適用し得る。
Userサービスを表すために、APIレジストリはUserのクラスを生成することができる。呼び出し側サービスは、APIレジストリによるクライアントライブラリの生成を要求するとき、呼び出し側サービスが使用しているプログラミング言語を指定することができる。たとえば、呼び出し側サービスがJavaでIDEに記述されている場合、APIレジストリはJavaプログラミング言語でクラスライブラリを生成することができる。これに代えて、呼び出し側サービスがC#で記述されている場合、APIレジストリはC#プログラミング言語でクラスライブラリを生成することができる。Userクラスは、サービスエンドポイントを介して実行することができる異なる動作に対応するメンバ関数を有するように生成することができる。これらのメンバ関数は、スタティックメンバ関数にすることにより、Userクラスのインスタンス化されたインスタンスを必要としないようにすることができる、または、インスタンス化されたUserオブジェクトとともに使用されてもよい。
この例において、Userサービスは、RESTfulインターフェイスを使用することにより、サービスによって格納された個々のユーザ記録を編集することができる。たとえば、APIレジストリは、CreateUser( )関数を生成することにより、Userサービ
スに対するPOSTコールを実現することができる。クラスライブラリが実行できる機能のうちの1つは、サービスに対してデータパケットとして直接送られるAPI関数に対してパラメータとして提供されるデータを、パースし、フィルタリングし、フォーマットすることである。この例において、CreateUser( )関数は、呼び出し側サービスの便宜のた
めにフォーマットされたパラメータを受け入れることができる。たとえば、呼び出し側サ
ービスは、ユーザの名(first name)およびユーザの姓(last name)のストリングを別
々に格納することができる。しかしながら、POSTコマンドは、名と姓との連結ストリングを必要とする場合がある。ユーザーフレンドリーなパラメータセットを受け入れるために、クライアントライブラリ1102は、関数に対するパラメータとして受けたデータを、サービスエンドポイントと互換性のあるフォーマットにフォーマットする一組の動作を実行することができる。これは、ヘッダ情報の生成、特定のデータフィールドのフォーマットの変更、データフィールドの連結、その他のソースからの追加データを要求すること、計算またはデータ変換の実行などを含み得る。これはまた、再フォーマットされたパラメータを、JSON、XMLなどのようなフォーマットにパッケージングすることを含み得る。
スに対するPOSTコールを実現することができる。クラスライブラリが実行できる機能のうちの1つは、サービスに対してデータパケットとして直接送られるAPI関数に対してパラメータとして提供されるデータを、パースし、フィルタリングし、フォーマットすることである。この例において、CreateUser( )関数は、呼び出し側サービスの便宜のた
めにフォーマットされたパラメータを受け入れることができる。たとえば、呼び出し側サ
ービスは、ユーザの名(first name)およびユーザの姓(last name)のストリングを別
々に格納することができる。しかしながら、POSTコマンドは、名と姓との連結ストリングを必要とする場合がある。ユーザーフレンドリーなパラメータセットを受け入れるために、クライアントライブラリ1102は、関数に対するパラメータとして受けたデータを、サービスエンドポイントと互換性のあるフォーマットにフォーマットする一組の動作を実行することができる。これは、ヘッダ情報の生成、特定のデータフィールドのフォーマットの変更、データフィールドの連結、その他のソースからの追加データを要求すること、計算またはデータ変換の実行などを含み得る。これはまた、再フォーマットされたパラメータを、JSON、XMLなどのようなフォーマットにパッケージングすることを含み得る。
パラメータがサービスエンドポイントのためのパッケージに正しくフォーマットされると、クライアントライブラリ1102は、サービスに対するPOSTコールを扱うこともできる。クライアントライブラリが生成されるときに、サービスのIPアドレスおよびポート番号を、サービスに対するHTTP要求で使用されるCreateUser( )関数に挿入する
ことができる。なお、HTTP要求の詳細は、CreateUser( )関数にカプセル化される。
呼び出し側サービスのための開発者が、サービスによって利用できるようにされたPOST関数の使用を所望する場合、コードをライブラリ1102自身に書き込む代わりに、APIレジストリからUserサービスを選択することができる。そうすると、APIレジストリは、Userクラスを含むクライアントライブラリ1102を自動的に生成する。次に、POST関数を使用するために、サービス開発者は、User.CreateUser(“John”, “Smith”, 2112)関数を使用するだけで、ユーザであるJohn Smithをサービスに追加することができる。
ことができる。なお、HTTP要求の詳細は、CreateUser( )関数にカプセル化される。
呼び出し側サービスのための開発者が、サービスによって利用できるようにされたPOST関数の使用を所望する場合、コードをライブラリ1102自身に書き込む代わりに、APIレジストリからUserサービスを選択することができる。そうすると、APIレジストリは、Userクラスを含むクライアントライブラリ1102を自動的に生成する。次に、POST関数を使用するために、サービス開発者は、User.CreateUser(“John”, “Smith”, 2112)関数を使用するだけで、ユーザであるJohn Smithをサービスに追加することができる。
図12は、いくつかの実施形態に係る、サービスエンドポイントとAPI関数との間の動的バインディングを含むクライアントライブラリ1202の実施形態を示す。この例において、APIレジストリがクライアントライブラリ1202を生成するとき、CreateUser( )関数は、サービスのIPアドレスおよびポート番号を動的に取り出すコード120
4を含み得る。呼び出し側サービス114は、呼び出し側サービス114がコンテナプラットフォームのようなプロダクション/デプロイメント環境104で動作しているときに、GetIPPort( )関数を用いることにより実行時に要求をAPIレジストリ404に送ることができる。APIレジストリ404は、API関数とサービスエンドポイントとの間の最新バインディングを維持するために常にアップデートされるその内部テーブルにアクセスすることができる。次に、APIレジストリ404は、現在のIPアドレスおよびポート番号を呼び出し側サービス114に返すことができる。次に、クライアントライブラリ1202は、IPアドレスおよびポート番号を、サービスに接続するHTTP POSTコードに挿入することができる。APIレジストリ404に対しては、コンテナプラットフォームにおける任意の呼び出し側サービスが実行時にアクセスできるので、コールされているサービスのポート番号についてのIPアドレスが変化したとき、これらのサービスのうちのいずれのサービスも、アップデートまたはパッチは不要である。代わりに、APIレジストリ404は、サービスがコールされるたびに最新情報を提供することができる。いくつかの実施形態において、GetIPPort( )関数は、1時間に1度、1日に1度、1週間に1度など、APIレジストリ404をコールするだけで、サービスエンドポイントはプロダクション環境において頻繁に変わるものではないという仮定のもとでサービス114についてコンテナの外部で行われる関数コールの数を最小にすることができる。
4を含み得る。呼び出し側サービス114は、呼び出し側サービス114がコンテナプラットフォームのようなプロダクション/デプロイメント環境104で動作しているときに、GetIPPort( )関数を用いることにより実行時に要求をAPIレジストリ404に送ることができる。APIレジストリ404は、API関数とサービスエンドポイントとの間の最新バインディングを維持するために常にアップデートされるその内部テーブルにアクセスすることができる。次に、APIレジストリ404は、現在のIPアドレスおよびポート番号を呼び出し側サービス114に返すことができる。次に、クライアントライブラリ1202は、IPアドレスおよびポート番号を、サービスに接続するHTTP POSTコードに挿入することができる。APIレジストリ404に対しては、コンテナプラットフォームにおける任意の呼び出し側サービスが実行時にアクセスできるので、コールされているサービスのポート番号についてのIPアドレスが変化したとき、これらのサービスのうちのいずれのサービスも、アップデートまたはパッチは不要である。代わりに、APIレジストリ404は、サービスがコールされるたびに最新情報を提供することができる。いくつかの実施形態において、GetIPPort( )関数は、1時間に1度、1日に1度、1週間に1度など、APIレジストリ404をコールするだけで、サービスエンドポイントはプロダクション環境において頻繁に変わるものではないという仮定のもとでサービス114についてコンテナの外部で行われる関数コールの数を最小にすることができる。
図13は、いくつかの実施形態に係る、サービスコールのための入力データセットを完成させる追加データを配置できるクライアントライブラリ1302の実施形態を示す。クライアントライブラリ1302を用いた簡略化のために、クライアントライブラリ1302はサービス開発者に要求されるパラメータの数を最小にすることができる。サービスコ
ールを行うために必要であろう追加データは、他のソースから取り出すことができ、したがって、パラメータリストから省略してもよい。代わりに、これらの追加パラメータは、クライアントライブラリ1302がこれらの他のソースから直接取り出してもよい。たとえば、新たなユーザの作成は、このユーザのユーザロールを指定することを含み得る。パラメータのうちの1つとしてユーザロールを提供することをサービス開発者に要求する代わりに、クライアントライブラリ1302は、他のいずれかのソースからユーザのロールを自動的に取り出すコード1304を含み得る。この例において、ユーザロールは、データベースから、コンテナプラットフォーム内の別のサービスから、または呼び出し側サービス内のユーザロールを格納する別のクラスから、取り出すことができる。これらの場合のうちのいずれの場合でも、コード1304は、自動的にユーザロールを取り出し、これを、サービスに送られるHTTP POSTコマンドのための入力データの一部としてパッケージングすることができる。
ールを行うために必要であろう追加データは、他のソースから取り出すことができ、したがって、パラメータリストから省略してもよい。代わりに、これらの追加パラメータは、クライアントライブラリ1302がこれらの他のソースから直接取り出してもよい。たとえば、新たなユーザの作成は、このユーザのユーザロールを指定することを含み得る。パラメータのうちの1つとしてユーザロールを提供することをサービス開発者に要求する代わりに、クライアントライブラリ1302は、他のいずれかのソースからユーザのロールを自動的に取り出すコード1304を含み得る。この例において、ユーザロールは、データベースから、コンテナプラットフォーム内の別のサービスから、または呼び出し側サービス内のユーザロールを格納する別のクラスから、取り出すことができる。これらの場合のうちのいずれの場合でも、コード1304は、自動的にユーザロールを取り出し、これを、サービスに送られるHTTP POSTコマンドのための入力データの一部としてパッケージングすることができる。
サービスに対する入力のためにデータを配置しフォーマットすることに加えて、クライアントライブラリ1302は、サービスから受けたデータをパースして返し、エラー条件を処理することができる。この例において、POSTコマンドはデータパケットをResult(結果)変数に返すことができる。しばしば、サービスは、呼び出し側サービスが必要とする情報よりも多くの情報を含むデータパケットを返すことができる。したがって、クライアントライブラリ1302は、Result変数におけるデータフィールドをパースし、データをResult変数から抽出し、ユーザクラスによって予想されるより使い易いフォーマットにフォーマットしパッケージングすることができる。この例において、コード1306は、Result変数からフィールドを抽出して使用することにより、API関数から返される新たなUserオブジェクトを作成することができる。GETコマンドを使用する別の例において、個々のAPI関数は、GETコマンドからのResult変数から異なるフィールドを抽出するUserクラスで生成することができる。たとえば、Userクラスは、GetFirstName(id)関数、GetLastName(id)関数、GetRole(id)関数などを提供することができる。これらの関数は各々、Result変数から異なるフィールドを返す間、非常によく似たコードを含み得る。
結果をパースすることに加えて、クライアントライブラリ1302はまた、サービスの使用に対応付けられたエラー条件を処理するコード1308を生成することができる。この例において、コード1308は、Result変数におけるステータス(status)フィールドをテストすることにより、POSTコマンドが成功したか否かを判断することができる。コマンドが成功していた場合、CreateUser( )関数は新たなUserオブジェクト
を返すことができる。Postコマンドが失敗した場合、関数は、代わりにヌルオブジェクトを返すことおよび/またはサービス対するコールをリトライすることが可能である。
を返すことができる。Postコマンドが失敗した場合、関数は、代わりにヌルオブジェクトを返すことおよび/またはサービス対するコールをリトライすることが可能である。
図14は、いくつかの実施形態に係る、サービスをコールするときにリトライを処理することができるクライアントライブラリ1402を示す。図13の例と同様に、クライアントライブラリ1402は、POST HTTPコールによってポピュレートされたResut変数におけるステータスを使用することにより、このコールが成功したか否かを判断する。その結果が不成功である間、クライアントライブラリ1402は、コールが成功するまでリトライを続けることができる。いくつかの実施形態は、カウンターまたはその他のメカニズムを使用することにより、リトライの数を制限するまたはリトライとリトライとの間に待ち時間を追加することができる。
本明細書に記載の各方法は、専用コンピュータシステムによって実現することができる。これらの方法の各ステップは、当該コンピュータシステムが自動的に実行してもよく、および/またはユーザを必要とする入力/出力が与えられてもよい。たとえば、ユーザが方法の各ステップに対して入力を与えてもよく、これらの入力は各々、このような入力を
要求する、コンピュータシステムが生成した特定の出力に応じて与えられてもよい。各入力は、対応する要求出力に応じて受けられてもよい。さらに、入力は、ユーザから受けられてもよく、別のデータシステムからデータストリームとして受けられてもよく、メモリロケーションから取り出されてもよく、ネットワークを介して取り出されてもよく、ウェブサービスから要求されてもよく、および/またはその他であってもよい。同様に、出力は、ユーザに与えられてもよく、データストリームとして別のコンピュータシステムに与えられてもよく、メモリロケーションに保存されてもよく、ネットワークを介して送られてもよく、ウェブサービスに与えられてもよく、および/またはその他であってもよい。すなわち、本明細書に記載の方法の各ステップは、コンピュータシステムが実行し得るものであり、かつ、ユーザを必要とするもしくは必要としないかもしれないコンピュータシステムに対する、任意の数の入力、当該コンピュータシステムからの出力、および/または当該コンピュータシステムへの/からの要求を必要とし得るものである。ユーザを必要としないステップは、人の介入なしでコンピュータシステムが自動的に実行し得ると言える。したがって、本開示に照らして、本明細書に記載の各方法の各ステップは、ユーザへのおよびユーザからの入力および出力を含むように変更されてもよく、または、プロセッサが何らかの判断を行う場合は人の介入なしでコンピュータシステムが自動的に行ってもよい。さらに、本明細書に記載の各方法のいくつかの実施形態は、有形の非一時的な記憶媒体に格納されて有形のソフトウェアプロダクトを形成する一組の命令として実現されてもよい。
要求する、コンピュータシステムが生成した特定の出力に応じて与えられてもよい。各入力は、対応する要求出力に応じて受けられてもよい。さらに、入力は、ユーザから受けられてもよく、別のデータシステムからデータストリームとして受けられてもよく、メモリロケーションから取り出されてもよく、ネットワークを介して取り出されてもよく、ウェブサービスから要求されてもよく、および/またはその他であってもよい。同様に、出力は、ユーザに与えられてもよく、データストリームとして別のコンピュータシステムに与えられてもよく、メモリロケーションに保存されてもよく、ネットワークを介して送られてもよく、ウェブサービスに与えられてもよく、および/またはその他であってもよい。すなわち、本明細書に記載の方法の各ステップは、コンピュータシステムが実行し得るものであり、かつ、ユーザを必要とするもしくは必要としないかもしれないコンピュータシステムに対する、任意の数の入力、当該コンピュータシステムからの出力、および/または当該コンピュータシステムへの/からの要求を必要とし得るものである。ユーザを必要としないステップは、人の介入なしでコンピュータシステムが自動的に実行し得ると言える。したがって、本開示に照らして、本明細書に記載の各方法の各ステップは、ユーザへのおよびユーザからの入力および出力を含むように変更されてもよく、または、プロセッサが何らかの判断を行う場合は人の介入なしでコンピュータシステムが自動的に行ってもよい。さらに、本明細書に記載の各方法のいくつかの実施形態は、有形の非一時的な記憶媒体に格納されて有形のソフトウェアプロダクトを形成する一組の命令として実現されてもよい。
図15は、上記実施形態のうちのいずれかとのやり取りが可能な分散型システム1500の簡略図を示す。示されている実施形態において、分散型システム1500は1つ以上のクライアントコンピューティングデバイス1502、1504、1506、および1508を含み、これらのクライアントコンピューティングデバイスは、1つ以上のネットワーク1510を介してウェブブラウザ、専用クライアント(たとえばOracle Forms)などのようなクライアントアプリケーションを実行し操作するように構成されている。サーバ1512が、ネットワーク1510を介してリモートクライアントコンピューティングデバイス1502、1504、1506、および1508に対して通信可能に結合されていてもよい。
各種実施形態において、サーバ1512は、このシステムのコンポーネントのうちの1つ以上が提供する1つ以上のサービスまたはソフトウェアアプリケーションを実行するようにされてもよい。いくつかの実施形態において、これらのサービスは、クライアントコンピューティングデバイス1502、1504、1506、および/または1508のユーザに対し、ウェブベースのもしくはクラウドサービスとして、またはサービスとしてのソフトウェア(SaaS)モデルのもとで、提供されてもよい。そうすると、クライアントコンピューティングデバイス1502、1504、1506、および/または1508を操作しているユーザは、1つ以上のクライアントアプリケーションを利用してサーバ1512とやり取りすることにより、これらのコンポーネントが提供するサービスを利用することができる。
図面に示される構成において、システム1500のソフトウェアコンポーネント1518、1520および1522は、サーバ1512上に実装されたものとして示されている。他の実施形態において、システム1500のコンポーネントおよび/またはこれらのコンポーネントが提供するサービスのうちの1つ以上が、クライアントコンピューティングデバイス1502、1504、1506、および/または1508のうちの1つ以上によって実装されてもよい。そうすると、クライアントコンピューティングデバイスを操作しているユーザは、1つ以上のクライアントアプリケーションを利用することにより、これらのコンポーネントが提供するサービスを使用することができる。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはその組み合わせで実装され
てもよい。分散型システム1500とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるはずである。図面に示される実施形態はしたがって、実施形態のシステムを実装するための分散型システムの一例であって、限定を意図したものではない。
てもよい。分散型システム1500とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるはずである。図面に示される実施形態はしたがって、実施形態のシステムを実装するための分散型システムの一例であって、限定を意図したものではない。
クライアントコンピューティングデバイス1502、1504、1506、および/または1508は、Microsoft Windows Mobile(登録商標)等のソフトウェア、および/またはiOS、Windows Phone、Android、BlackBerry 10、Palm OSその他等のさまざまなモバ
イルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、またはその他の通信プロトコルに接続可能な、ポータブルハンドヘルドデバイス(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータお
よび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティングデバイスは、限定されないがたとえばGoogle Chrome OS等のさまざまなGNU/Linux(登録商標)オペレーティングシステムを含む市場で入手
可能な多様なUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。これに代えてまたはこれに加えて、クライアントコンピューティングデバイス1502、1504、1506、および1508は、ネットワーク1510を介して通信可能な、シンクライアントコンピュータ、インターネット接続可能なゲームシステム(たとえばKinect(登録商標)ジェスチャー入力デバイスを有するまたは有しないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイス等の、電子デバイスであってもよい。
イルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、またはその他の通信プロトコルに接続可能な、ポータブルハンドヘルドデバイス(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータお
よび/またはラップトップコンピュータを含む汎用パーソナルコンピュータであってもよい。クライアントコンピューティングデバイスは、限定されないがたとえばGoogle Chrome OS等のさまざまなGNU/Linux(登録商標)オペレーティングシステムを含む市場で入手
可能な多様なUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであってもよい。これに代えてまたはこれに加えて、クライアントコンピューティングデバイス1502、1504、1506、および1508は、ネットワーク1510を介して通信可能な、シンクライアントコンピュータ、インターネット接続可能なゲームシステム(たとえばKinect(登録商標)ジェスチャー入力デバイスを有するまたは有しないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイス等の、電子デバイスであってもよい。
具体例としての分散型システム1500が4つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスをサポートすることができる。センサなどを有するデバイスのようなその他のデバイスがサーバ1512とやり取りしてもよい。
分散型システム1500のネットワーク1510は、限定されないがTCP/IP(transmission control protocol/Internet protocol)、SNA(systems network architecture)、IPX(Internet packet exchange)、AppleTalk(登録商標)などを含む、市場で入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者によく知られた任意のタイプのネットワークであってもよい。一例にすぎないが、ネットワーク1510は、たとえばイーサネット(登録商標)、トークンリングおよび/または同様のものに基づく、ローカルエリアネットワーク(LAN)であってもよい。ネットワーク1510は、広域ネットワークおよびインターネットであってもよい。これは、限定されないが仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえばInstitute of Electrical and Electronics(IEEE)802.11プロト
コルスイート、Bluetooth(登録商標)、および/または任意の他の無線プロトコルのう
ちのいずれかの下で動作するネットワーク)、および/または上記および/またはその他のネットワークの任意の組み合わせを含む、仮想ネットワークを含み得る。
コルスイート、Bluetooth(登録商標)、および/または任意の他の無線プロトコルのう
ちのいずれかの下で動作するネットワーク)、および/または上記および/またはその他のネットワークの任意の組み合わせを含む、仮想ネットワークを含み得る。
サーバ1512は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジ
サーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む)、サーバファーム、サーバクラスタ、または、その他任意の適切な構成および/または組み合わせからなるものであってもよい。各種実施形態において、サーバ1512は、上の開示で説明した1つ以上のサービスまたはソフトウェアアプリケーションを実行するようにされていてもよい。たとえば、サーバ1512は、本開示の実施形態に係る上記処理を実行するためのサーバに対応していてもよい。
サーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む)、サーバファーム、サーバクラスタ、または、その他任意の適切な構成および/または組み合わせからなるものであってもよい。各種実施形態において、サーバ1512は、上の開示で説明した1つ以上のサービスまたはソフトウェアアプリケーションを実行するようにされていてもよい。たとえば、サーバ1512は、本開示の実施形態に係る上記処理を実行するためのサーバに対応していてもよい。
サーバ1512は、上記オペレーティングシステムのうちのいずれかおよび市場で入手可能なサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ1512は、HTTP(hypertext transport protocol)サーバ、FTP(file transfer protocol)サーバ、CGI(common gateway interface)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む、さまざまな付加的なサーバアプリケーションおよび/またはミッドティアアプリケーションのうちのいずれかを実行し得る。具体例としてのデータベースサーバは、Oracle、Microsoft、Sybase、IBM(International Business Machines)などから市販されているものを含むが、これらに限定されない。
いくつかの実装例において、サーバ1512は、クライアントコンピューティングデバイス1502、1504、1506、および1508のユーザから受信したデータフィードおよび/またはイベントアップデートを分析し統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベントアップデートは、限定されないが、1つ以上の第三者情報源および連続データストリームから受信したTwitter(登録商標)フィード、Facebook(登録商標)アップデートまたはリアルタイムアッ
プデートを含み得る。これらはセンサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る。また、サーバ1512は、クライアントコンピューティングデバイス1502、1504、1506、および1508の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
プデートを含み得る。これらはセンサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る。また、サーバ1512は、クライアントコンピューティングデバイス1502、1504、1506、および1508の1つ以上のディスプレイデバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
分散型システム1500は、1つ以上のデータベース1514および1516も含み得る。データベース1514および1516はさまざまな場所に存在し得る。一例として、データベース1514および1516のうちの1つ以上は、サーバ1512に対してローカルな場所にある(および/またはサーバ内にある)非一時的な記憶媒体上にあってもよい。これに代えて、データベース1514および1516は、サーバ1512から遠隔の場所に位置してネットワークベースのまたは専用接続を介してサーバ1512と通信してもよい。一組の実施形態において、データベース1514および1516は、ストレージエリアネットワーク(SAN)内にあってもよい。同様に、サーバ1512に帰する機能を実行するために必要な任意のファイルを、適宜、サーバ1512にローカルにおよび/またはサーバ1512から遠隔の場所に格納してもよい。一組の実施形態において、データベース1514および1516は、SQLフォーマットのコマンドに応答してデータを格納し、アップデートし、取り出すようにされた、Oracleが提供するデータベース等のリレーショナルデータベースを含み得る。
図16は、本開示の実施形態に係る、実施形態のシステムの1つ以上のコンポーネントがサービスをクラウドサービスとして提供し得るシステム環境1600の1つ以上のコンポーネントの簡略化されたブロック図である。示されている実施形態において、システム環境1600は、クラウドサービスを提供するクラウドインフラストラクチャシステム1602とやり取りするためにユーザが使用し得る1つ以上のクライアントコンピューティ
ングデバイス1604、1606、および1608を含む。クライアントコンピューティングデバイスは、クライアントコンピューティングデバイスのユーザがクラウドインフラストラクチャシステム1602とやり取りすることによってクラウドインフラストラクチャシステム1602が提供するサービスを使用するために用いることができる、ウェブブラウザ、専用クライアントアプリケーション(たとえばOracle Forms)、またはその他何らかのアプリケーション等のクライアントアプリケーションを操作するように構成されてもよい。
ングデバイス1604、1606、および1608を含む。クライアントコンピューティングデバイスは、クライアントコンピューティングデバイスのユーザがクラウドインフラストラクチャシステム1602とやり取りすることによってクラウドインフラストラクチャシステム1602が提供するサービスを使用するために用いることができる、ウェブブラウザ、専用クライアントアプリケーション(たとえばOracle Forms)、またはその他何らかのアプリケーション等のクライアントアプリケーションを操作するように構成されてもよい。
図面に示されているクラウドインフラストラクチャシステム1602は示されているもの以外のコンポーネントを有し得ることが理解されるはずである。さらに、図面に示されている実施形態は、本発明の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一例にすぎない。他のいくつかの実施形態において、クラウドインフラストラクチャシステム1602は、図示されているものよりも多いまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成または配置を有していてもよい。
クライアントコンピューティングデバイス1604、1606、および1608は、1502、1504、1506、および1508について先に述べたものと同様のデバイスであってもよい。
具体例としてのシステム環境1600は3つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスをサポートすることができる。センサなどを有するデバイスのようなその他のデバイスがクラウドインフラストラクチャシステム1602とやり取りしてもよい。
ネットワーク1610は、クライアント1604、1606、および1608とクラウドインフラストラクチャシステム1602との間におけるデータの通信および交換を容易にすることができる。各ネットワークは、ネットワーク1510について先に述べたものを含む市場で入手可能なさまざまなプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当業者によく知られた任意のタイプのネットワークであってもよい。
クラウドインフラストラクチャシステム1602は、1つ以上のコンピュータ、および/またはサーバ1512について先に述べたものを含み得るサーバを含み得る。
特定の実施形態において、クラウドインフラストラクチャシステムが提供するサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホストされているオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理された技術サポートサービスなどのような、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用できるようにされる多数のサービスを含み得る。クラウドインフラストラクチャシステムが提供するサービスは、そのユーザのニーズに合わせて動的にスケーリングすることができる。クラウドインフラストラクチャシステムが提供するサービスを具体的にインスタンス化したものを本明細書では「サービスインスタンス」と呼ぶ。一般的に、クラウドサービスプロバイダのシステムからの、インターネットのような通信ネットワークを介してユーザが利用できるようにされる任意のサービスを、「クラウドサービス」と呼ぶ。典型的に、パブリッククラウド環境において、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストすることができ、ユーザは、インターネットのような通信ネットワークを介して、オンデマンドでこのアプリケーションをオーダーし使用することができる。
いくつかの例において、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってまたは当該技術において周知の他のやり方でユーザに提供される、ストレージ、ホストされているデータベース、ホストされているウェブサーバ、ソフトウェアアプリケーション、またはその他のサービスに対する保護されたコンピュータネットワークアクセスを含み得る。たとえば、サービスは、インターネットを介した、クラウド上の遠隔ストレージに対するパスワードで保護されたアクセスを含むことができる。別の例として、サービスは、ネットワーク化された開発者の私的使用のための、ウェブサービスベースのホストされているリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされている電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
特定の実施形態において、クラウドインフラストラクチャシステム1602は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、信頼性が高く、可用性が高く、かつ安全なやり方で顧客に与えられる、アプリケーション、ミドルウェア、およびデータベースサービス提供物一式を含み得る。そのようなクラウドインフラストラクチャシステムの一例は、本願の譲受人が提供するOracle Public Cloudである。
各種実施形態において、クラウドインフラストラクチャシステム1602は、クラウドインフラストラクチャシステム1602が提供するサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するようにされていてもよい。クラウドインフラストラクチャシステム1602は、異なるデプロイメントモデルを介してクラウドサービスを提供することができる。たとえば、(例としてOracle所有の)クラウドサービスを販売する組織がクラウドインフラストラクチャシステム1602を所有しており一般の人々または異なる産業企業がサービスを利用できるようにされるパブリッククラウドモデルの下で、サービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム1602が1つの組織のためにのみ運営されこの組織内の1つ以上のエンティティのためにサービスを提供し得るプライベートクラウドモデルの下で、サービスが提供されてもよい。また、クラウドインフラストラクチャシステム1602およびクラウドインフラストラクチャシステム1602が提供するサービスを関連するコミュニティー内のいくつかの組織が共有するコミュニティークラウドモデルの下で、クラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で、クラウドサービスが提供されてもよい。
いくつかの実施形態において、クラウドインフラストラクチャシステム1602が提供するサービスは、サービスとしてのソフトウェア(SaaS)カテゴリ、サービスとしてのプラットフォーム(PaaS)カテゴリ、サービスとしてのインフラストラクチャ(IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリの下で提供される、1つ以上のサービスを含み得る。顧客は、クラウドインフラストラクチャシステム1602が提供する1つ以上のサービスを、サブスクリプションオーダーを通じてオーダーすることができる。そうすると、クラウドインフラストラクチャシステム1602は、この顧客のサブスクリプションオーダーのサービスを提供するために処理を実行する。
いくつかの実施形態において、クラウドインフラストラクチャシステム1602が提供するサービスは、限定されないが、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得る。いくつかの例において、アプリケーションサービスは、クラウドインフラストラクチャシステムがSaaSプラットフォームを介して提供することができる。SaaSプラットフォームは、SaaSカテゴリに含ま
れるクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合開発およびデプロイメントプラットフォーム上でオンデマンドアプリケーション一式を構築し配信する機能を提供することができる。SaaSプラットフォームは、SaaSサービスを提供するための基礎となるソフトウェアおよびインフラストラクチャを管理し制御することができる。SaaSプラットフォームが提供するサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することが可能である。顧客は、顧客が別々のライセンスおよびサポートを購入しなくても、アプリケーションサービスを得ることが可能である。さまざまな異なるSaaSサービスを提供することができる。例は、限定されないが、大組織向けの販売実績管理、企業統合、およびビジネスフレキシビリティのためのソリューションを提供するサービスを含む。
れるクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合開発およびデプロイメントプラットフォーム上でオンデマンドアプリケーション一式を構築し配信する機能を提供することができる。SaaSプラットフォームは、SaaSサービスを提供するための基礎となるソフトウェアおよびインフラストラクチャを管理し制御することができる。SaaSプラットフォームが提供するサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することが可能である。顧客は、顧客が別々のライセンスおよびサポートを購入しなくても、アプリケーションサービスを得ることが可能である。さまざまな異なるSaaSサービスを提供することができる。例は、限定されないが、大組織向けの販売実績管理、企業統合、およびビジネスフレキシビリティのためのソリューションを提供するサービスを含む。
いくつかの実施形態において、プラットフォームサービスは、クラウドインフラストラクチャシステムがPaaSプラットフォームを介して提供することができる。PaaSプラットフォームは、PaaSカテゴリに含まれるクラウドサービスを提供するように構成し得る。プラットフォームサービスの例は、限定されないが、共有されている共通アーキテクチャ上の既存のアプリケーションを組織(Oracle等)が統合することを可能にするサービスと、当該プラットフォームが提供する共有サービスを推進する新たなアプリケーションを構築する機能とを含み得る。PaaSプラットフォームは、PaaSサービスを提供するための基礎となるソフトウェアおよびインフラストラクチャを管理し制御することができる。顧客は、顧客が別々のライセンスおよびサポートを購入しなくても、クラウドインフラストラクチャシステムが提供するPaaSサービスを得ることが可能である。プラットフォームサービスの例は、限定されないが、Oracle Java Cloud Service(JCS
)、Oracle Database Cloud Service(DBCS)その他を含む。
)、Oracle Database Cloud Service(DBCS)その他を含む。
PaaSプラットフォームが提供するサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムがサポートするプログラミング言語およびツールを採用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態において、クラウドインフラストラクチャシステムが提供するプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえばOracle Fusion Middlewareサービス)、およびJavaクラウドサービスを含み得る。一実施形態において、データベースクラウドサービスは、組織がデータベースリソースをプールしデータベースクラウドの形態でサービスとしてのデータベース(Database as a Service)
を顧客に提供することを可能にする共有サービスデプロイメントモデルをサポートすることができる。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発しデプロイするためのプラットフォームを提供してもよく、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいて顧客がJavaアプリケーションをデプロイするためのプラットフォームを提供してもよい。
を顧客に提供することを可能にする共有サービスデプロイメントモデルをサポートすることができる。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発しデプロイするためのプラットフォームを提供してもよく、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいて顧客がJavaアプリケーションをデプロイするためのプラットフォームを提供してもよい。
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおいてIaaSプラットフォームが提供してもよい。インフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームが提供するサービスを利用する顧客のためのストレージ、ネットワーク、および他の基本的なコンピューティングリソース等の、基礎となるコンピューティングリソースの管理および制御を容易にする。
特定の実施形態において、クラウドインフラストラクチャシステム1602はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために用いられるリソースを提供するためのインフラストラクチャリソース1630を含み得る。一実施形態において、インフラストラクチャリソース1630は、PaaSプラットフォー
ムおよびSaaSプラットフォームが提供するサービスを実行するためのサーバ、ストレージ、およびネットワーキングリソース等のハードウェアの、予め統合し最適化した組み合わせを含み得る。
ムおよびSaaSプラットフォームが提供するサービスを実行するためのサーバ、ストレージ、およびネットワーキングリソース等のハードウェアの、予め統合し最適化した組み合わせを含み得る。
いくつかの実施形態において、クラウドインフラストラクチャシステム1602におけるリソースは、複数のユーザによって共有され要求ごとに動的に再割り当てされてもよい。加えて、リソースは、異なるタイムゾーンのユーザに割り当てられてもよい。たとえば、クラウドインフラストラクチャシステム1602は、第1のタイムゾーンの第1組のユーザが指定された時間数だけクラウドインフラストラクチャシステムのリソースを利用することを可能にし、それから、異なるタイムゾーンにいる別の1組のユーザに対して同じリソースを再割り当てすることにより、リソースの利用を最大化することができる。
特定の実施形態において、クラウドインフラストラクチャシステム1602の異なるコンポーネントまたはモジュールによって共有され、クラウドインフラストラクチャシステム1602が提供するサービスによって共有される、複数の内部共有サービス1632を提供することができる。これらの内部共有サービスは、限定されないが、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャーサービス、ウィルススキャンおよびホワイトリストサービス、高可用性、バックアップおよびリカバリサービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得る。
特定の実施形態において、クラウドインフラストラクチャシステム1602は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaS、PaaS、およびIaaSサービス)の包括的管理を提供し得る。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム1602が受けた顧客のサブスクリプションをプロビジョニング、管理、および追跡する機能を含み得る。
一実施形態において、図面に示されるように、クラウド管理機能は、オーダー管理モジュール1620、オーダーオーケストレーションモジュール1622、オーダープロビジョニングモジュール1624、オーダー管理およびモニタリングモジュール1626、ならびにアイデンティティ管理モジュール1628等の、1つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他任意の適切な構成および/または組み合わせであってもよい、1つ以上のコンピュータおよび/またはサーバを含み得る、または、これらを用いて提供し得る。
具体例としての動作1634において、クライアントデバイス1604、1606または1608等のクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム1602が提供する1つ以上のサービスを要求すること、および、クラウドインフラストラクチャシステム1602が提示する1つ以上のサービスのサブスクリプションをオーダーすることにより、クラウドインフラストラクチャシステム1602とやり取りしてもよい。特定の実施形態において、顧客は、クラウドユーザインターフェイス(UI)、クラウドUI 1612、クラウドUI 1614および/またはクラウドUI 1616にアクセスしこれらのUIを介してサブスクリプションオーダーを行ってもよい。顧客がオーダーを行ったことに応じてクラウドインフラストラクチャシステム1602が受けるオーダー情報は、顧客を特定する情報と、クラウドインフラストラクチャシステム1602が提供する、顧客がサブスクライブする予定の1つ以上のサービスとを含み得る。
顧客がオーダーを行った後に、オーダー情報は、クラウドUI 1612、1614および/または1616を介して受信される。
動作1636において、オーダーはオーダーデータベース1618に格納される。オーダーデータベース1618は、クラウドインフラストラクチャシステム1602によって運営され他のシステム要素とともに運営されるいくつかのデータベースのうちの1つであってもよい。
動作1638において、オーダー情報はオーダー管理モジュール1620に転送されてもよい。いくつかの例において、オーダー管理モジュール1620は、オーダーを確認し確認後にオーダーを記入する等の、オーダーに関連する課金および会計機能を行うように構成されてもよい。
動作1640において、オーダーに関する情報は、オーダーオーケストレーションモジュール1622に伝えられる。オーダーオーケストレーションモジュール1622は、オーダー情報を利用することにより、顧客によって行われたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするように構成されてもよい。いくつかの例において、オーダーオーケストレーションモジュール1622は、リソースのプロビジョニングをオーケストレーションすることにより、オーダープロビジョニングモジュール1624のサービスを使用するサブスクライブされたサービスを、サポートしてもよい。
特定の実施形態において、オーダーオーケストレーションモジュール1622は、各オーダーに関連付けられたビジネスプロセスの管理を可能にし、ビジネスロジックを適用することにより、オーダーがプロビジョニングに進むべきか否かを判断する。動作1642において、新規サブスクリプションのオーダーを受けると、オーダーオーケストレーションモジュール1622は、サブスクリプションオーダーを遂行するのに必要なリソースを割り当てて構成することを求める要求を、オーダープロビジョニングモジュール1624に送る。オーダープロビジョニングモジュール1624は、顧客がオーダーしたサービスのためのリソースの割当を可能にする。オーダープロビジョニングモジュール1624は、クラウドインフラストラクチャシステム1602が提供するクラウドサービスと、要求されたサービスを提供するためのリソースのプロビジョニングに使用される物理実装層との間の抽象化レベルを提供する。このようにして、オーダーオーケストレーションモジュール1622を、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または、予めプロビジョニングされており要求後に割り当て/アサインされるか否か等の、実装の詳細から切り離すことができる。
動作1644において、サービスおよびリソースがプロビジョニングされると、提供されるサービスの通知が、クラウドインフラストラクチャシステム1602のオーダープロビジョニングモジュール1624によってクライアントデバイス1604、1606および/または1608の顧客に送信されてもよい。
動作1646において、顧客のサブスクリプションオーダーは、オーダー管理およびモニタリングモジュール1626によって管理および追跡されてもよい。いくつかの例において、オーダー管理およびモニタリングモジュール1626は、ストレージ使用量、転送データ量、ユーザ数、ならびにシステムアップタイムおよびシステムダウンタイムの量等の、サブスクリプションオーダーにおけるサービスの使用統計を収集するように構成されてもよい。
特定の実施形態において、クラウドインフラストラクチャシステム1602はアイデンティティ管理モジュール1628を含み得る。アイデンティティ管理モジュール1628は、クラウドインフラストラクチャシステム1602におけるアクセス管理および認可サ
ービス等のアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態において、アイデンティティ管理モジュール1628は、クラウドインフラストラクチャシステム1602が提供するサービスの利用を所望する顧客に関する情報を管理してもよい。そのような情報は、このような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に関してこれらの顧客が実行を認可されるアクションを記述する情報とを含み得る。アイデンティティ管理モジュール1628は、各顧客に関し、かつ、誰が如何にしてこの記述情報にアクセスし修正することができるかに関する記述情報の管理も含み得る。
ービス等のアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態において、アイデンティティ管理モジュール1628は、クラウドインフラストラクチャシステム1602が提供するサービスの利用を所望する顧客に関する情報を管理してもよい。そのような情報は、このような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に関してこれらの顧客が実行を認可されるアクションを記述する情報とを含み得る。アイデンティティ管理モジュール1628は、各顧客に関し、かつ、誰が如何にしてこの記述情報にアクセスし修正することができるかに関する記述情報の管理も含み得る。
図17は、本発明の各種実施形態を実現し得る具体例としてのコンピュータシステム1700を示す。システム1700を用いることにより、上記コンピュータシステムのうちのいずれかを実現することができる。図面に示されるように、コンピュータシステム1700は、バスサブシステム1702を介して複数の周辺サブシステムと通信する処理ユニット1704を含む。これらの周辺サブシステムは、処理加速ユニット1706と、入出力サブシステム1708と、記憶サブシステム1718と、通信サブシステム1724とを含み得る。記憶サブシステム1718は、有形のコンピュータ読取可能記憶媒体1722とシステムメモリ1710とを含み得る。
バスサブシステム1702は、コンピュータシステム1700の各種コンポーネントおよびサブシステムを目的に合わせて互いに通信させるためのメカニズムを提供する。バスサブシステム1702は1つのバスとして概略的に示されているが、バスサブシステムの代替実施形態は複数のバスを利用し得る。バスサブシステム1702は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、および、I
EEE P1386.1規格に準拠して製造されたMezzanineバスとして実装することが
できるPeripheral Component Interconnect(PCI)バスを含み得る。
EEE P1386.1規格に準拠して製造されたMezzanineバスとして実装することが
できるPeripheral Component Interconnect(PCI)バスを含み得る。
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現することができる処理ユニット1704は、コンピュータシステム1700の動作を制御する。1つ以上のプロセッサが処理ユニット1704に含まれていてもよい。これらのプロセッサはシングルコアまたはマルチコアプロセッサを含み得る。特定の実施形態において、処理ユニット1704は、1つ以上の独立した処理ユニット1732および/または1734として、各処理ユニットに含まれるシングルまたはマルチコアプロセッサとともに実現されてもよい。他の実施形態において、処理ユニット1704はまた、2つのデュアルコアプロセッサを1つのチップに統合することによって形成されるクアッドコア処理ユニットとして実現されてもよい。
各種実施形態において、処理ユニット1704は、プログラムコードに応じてさまざまなプログラムを実行することができ、かつ、同時に実行している複数のプログラムまたはプロセスを管理することができる。ある所定の時点で、実行すべきプログラムコードのうちの一部またはすべてが、プロセッサ1704および/または記憶サブシステム1718にあってもよい。適切なプログラミングを通して、プロセッサ1704は上記各種機能を提供することができる。コンピュータシステム1700はさらに、デジタル信号プロセッサ(DSP)、専用プロセッサ、および/またはその他同様のものを含むことができる、処理加速ユニット1706を含み得る。
入出力サブシステム1708は、ユーザインターフェイス入力デバイスと、ユーザインターフェイス出力デバイスとを含み得る。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボール等のポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付きの音声入力デバイス、マイク、およびその他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、たとえば、ジェスチャーおよび発話コマンドを使用するナチュラルユーザインターフェイスを通してユーザが入力デバイスを制御し入力デバイスとやり取りすることを可能にする、Microsoft Xbox(登録商標)360ゲームコントローラ等のMicrosoft Kinect(登録商標)モーションセンサのような、モーション検知および/またはジェスチャー認識デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、ユーザの目の活動(たとえば写真撮影中および/またはメニュー選択中の「まばたき」)を検出し目のジェスチャーを入力デバイス(たとえばGoogle Glass(登録商標))への入力
として変換する、Google Glass(登録商標)まばたき検出器等のアイジェスチャー認識デバイスを含み得る。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえばSiri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識検知デバイスを含み得る。
として変換する、Google Glass(登録商標)まばたき検出器等のアイジェスチャー認識デバイスを含み得る。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえばSiri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識検知デバイスを含み得る。
ユーザインターフェイス入力デバイスはまた、限定されないが、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカ等のオーディオ/ビジュアルデバイス、デジタルカメラ、デジタルカムコーダー、ポータブルメディアプレイヤー、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダー3Dスキャナ、3Dプリンタ、レーザ測距装置、および視線追跡デバイスを含み得る。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン断層撮影装置、医療用超音波検査装置等の医療用撮像入力デバイスを含み得る。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などのような音声入力装置を含み得る。
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、表示灯、または音声出力装置等の非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを用いるもの等のフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般的に、「出力デバイス」という用語を使用する場合は、コンピュータシステム1700からユーザまたは他のコンピュータに情報を出力するための可能なすべてのタイプのデバイスおよびメカニズムを含むことを意図している。たとえば、ユーザインターフェイス出力デバイスは、限定されないが、モニタ、プリンタ、スピーカ、ヘッドホン、カーナビゲーションシステム、プロッタ、音声出力デバイス、およびモデム等の、テキスト、図形、およびオーディオ/ビデオ情報を視覚的に伝えるさまざまなディスプレイデバイスを含み得る。
コンピュータシステム1700は、現在はシステムメモリ1710内にあるものとして示されているソフトウェア要素を含むストレージサブシステム1718を含み得る。システムメモリ1710は、処理ユニット1704上にローディング可能であり処理ユニット上で実行可能なプログラム命令と、これらのプログラムの実行中に生成されたデータとを格納することができる。
コンピュータシステム1700の構成および種類に応じて、システムメモリ1710は、揮発性(たとえばランダムアクセスメモリ(RAM))であってもよく、および/または不揮発性(たとえば読出専用メモリ(ROM)、フラッシュメモリなど)であってもよ
い。典型的に、RAMは、処理ユニット1704が直ちにアクセス可能でありおよび/または現在操作し実行している、データおよび/またはプログラムモジュールを含む。いくつかの実装例において、システムメモリ1710は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)等の複数の異なる種類のメモリを含み得る。いくつかの実装例において、たとえば起動中のコンピュータシステム1700内の要素間の情報の転送を支援する基本ルーチンを含む基本入出力システム(BIOS)は、典型的にはROMに格納することができる。例として、限定されないが、システムメモリ1710はまた、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1712と、プログラムデータ1714と、オペレーティングシステム1716とを示している。例として、オペレーティングシステム1716は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、市
場で入手可能な多様なUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステム(限定されないが多様なGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含む)、および/またはiOS、Windows(登録商標)Phone、Android(登録商標) OS、BlackBerry(登録商標) 10 OS、およびPalm(登録商標) OSオペレーティングシステム等のモバイルオペレーティングシステムを含み得る。
い。典型的に、RAMは、処理ユニット1704が直ちにアクセス可能でありおよび/または現在操作し実行している、データおよび/またはプログラムモジュールを含む。いくつかの実装例において、システムメモリ1710は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)等の複数の異なる種類のメモリを含み得る。いくつかの実装例において、たとえば起動中のコンピュータシステム1700内の要素間の情報の転送を支援する基本ルーチンを含む基本入出力システム(BIOS)は、典型的にはROMに格納することができる。例として、限定されないが、システムメモリ1710はまた、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1712と、プログラムデータ1714と、オペレーティングシステム1716とを示している。例として、オペレーティングシステム1716は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、市
場で入手可能な多様なUNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステム(限定されないが多様なGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含む)、および/またはiOS、Windows(登録商標)Phone、Android(登録商標) OS、BlackBerry(登録商標) 10 OS、およびPalm(登録商標) OSオペレーティングシステム等のモバイルオペレーティングシステムを含み得る。
ストレージサブシステム1718はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能記憶媒体を提供することができる。プロセッサによって実行されると上記機能を実行するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1718に格納することができる。これらのソフトウェアモジュールまたは命令は、処理ユニット1704によって実行されてもよい。ストレージサブシステムy1718はまた、本発明に従い使用されるデータを格納するためのリポジトリを提供することができる。
ストレージサブシステム1718はまた、コンピュータ読取可能記憶媒体1722にさらに接続することが可能なコンピュータ読取可能記憶媒体リーダー1720を含み得る。システムメモリ1710とともに、また、任意でシステムメモリ1710と組み合わされて、コンピュータ読取可能記憶媒体1722は、コンピュータ読取可能情報を一時的におよび/またはより恒久的に含む、格納する、送信する、および取り出すための、リモート、ローカル、固定、および/またはリムーバブル記憶装置プラス記憶媒体を包括的に表すことができる。
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体1722はまた、限定されないが、情報の記憶および/または送信のための任意の方法または技術で実現される、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体等の、記憶媒体および通信媒体を含む、当該技術において周知のまたは使用されている適切な任意の媒体を含み得る。これは、RAM、ROM、電子的に消去可能プログラム可能なROM(EEPROM)、フラッシュメモリまたはその他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)、もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気記憶装置、または、他の有形のコンピュータ読取可能媒体等の、有形のコンピュータ読取可能記憶媒体を含み得る。これはまた、所望の情報を送信するために使用することができコンピューティングシステム1700がアクセスすることができる、データ信号、データ送信、またはその他任意の媒体等の、非有形コンピュータ読取可能媒体を含み得る。
例として、コンピュータ読取可能記憶媒体1722は、非リムーバブル不揮発性磁気媒体からの読取およびこの媒体への書込を行うハードディスクドライブ、リムーバブル不揮
発性磁気ディスクからの読取およびこのディスクへの書込を行う磁気ディスクドライブ、ならびに、CD ROM、DVD、Blu-Ray(登録商標)ディスク、またはその他の光学
媒体等のリムーバブル不揮発性光ディスクからの読取およびこのディスクへの書込を行う光ディスクドライブを含み得る。コンピュータ読取可能記憶媒体1722は、限定されないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得る。コンピュータ読取可能記憶媒体1722はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどのような、不揮発性メモリベースのソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM等の揮発性メモリベースのSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、ならびにDRAMおよびフラッシュメモリベースのSSDの組み合わせを用いるハイブリッドSSDを、含み得る。ディスクドライブおよびこれらに対応付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、およびコンピュータシステム1700のためのその他のデータの不揮発性ストレージを提供することができる。
発性磁気ディスクからの読取およびこのディスクへの書込を行う磁気ディスクドライブ、ならびに、CD ROM、DVD、Blu-Ray(登録商標)ディスク、またはその他の光学
媒体等のリムーバブル不揮発性光ディスクからの読取およびこのディスクへの書込を行う光ディスクドライブを含み得る。コンピュータ読取可能記憶媒体1722は、限定されないが、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得る。コンピュータ読取可能記憶媒体1722はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどのような、不揮発性メモリベースのソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM等の揮発性メモリベースのSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、ならびにDRAMおよびフラッシュメモリベースのSSDの組み合わせを用いるハイブリッドSSDを、含み得る。ディスクドライブおよびこれらに対応付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、およびコンピュータシステム1700のためのその他のデータの不揮発性ストレージを提供することができる。
通信サブシステム1724は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1724は、他のシステムからデータを受信し、コンピュータシステム1700から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム1724は、コンピュータシステム1700がインターネットを介して1つ以上のデバイスに接続することを可能にする。いくつかの実施形態において、通信サブシステム1724は、(たとえば携帯電話技術、3G、4GもしくはEDGE(enhanced data rates for global evolution)等の高度データネットワーク技術、WiFi(登録商標)(IEEE 802.11系規格、または他の移動通信技術、またはそれらの任意の組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)トランシーバーコンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/またはその他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム1724は、無線インターフェイスに加えてまたはその代わりに、有線ネットワークコネクティビティ(たとえばイーサネット(登録商標))を提供することができる。
いくつかの実施形態において、通信サブシステム1724は、コンピュータシステム1700を使用し得る1人以上のユーザの代わりに、構造化および/または非構造化データフィード1726、イベントストリーム1728、イベントアップデート1730などの形態の入力通信を受けることもできる。
例として、通信サブシステム1724は、Twitter(登録商標)フィード、Facebook(
登録商標)アップデート、Rich Site Summary(RSS)フィード等のウェブフィード、
および/または1つ以上の第3者情報源からのリアルタイムアップデート等の、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1726をリアルタイムで受信するように構成されてもよい。
登録商標)アップデート、Rich Site Summary(RSS)フィード等のウェブフィード、
および/または1つ以上の第3者情報源からのリアルタイムアップデート等の、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード1726をリアルタイムで受信するように構成されてもよい。
加えて、通信サブシステム1724は、明確な終わりがない本質的に連続しているまたは無限である可能性があるリアルタイムイベントのイベントストリーム1728および/またはイベントアップデート1730を含み得る、連続データストリームの形態のデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含み得る。
通信サブシステム1724はまた、構造化および/または非構造化データフィード1726、イベントストリーム1728、イベントアップデート1730などを、コンピュータシステム1700に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
コンピュータシステム1700は、ハンドヘルドポータブルデバイス(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他任意のデータ処理システムを含む、さまざまなタイプのうちの1つであってもよい。
コンピュータおよびネットワークには常に変化しているという性質があるので、図面に示されるコンピュータシステム1700の説明は、具体的な一例を意図しているにすぎない。図面に示されるシステムよりも多くのまたは少ないコンポーネントを有するその他多数の構成が可能である。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせで実現されてもよい。さらに、ネットワーク入出力デバイスのようなその他のコンピューティングデバイスに対する接続を用いてもよい。本明細書で提供される開示および教示に基づいて、当業者は、各種実施形態を実現するためのその他のやり方および/または方法を理解するであろう。
上述の記載では、説明のために、本発明の各種実施形態の十分な理解が得られるよう、数多くの具体的な詳細を述べている。しかしながら、当業者には、本発明の実施形態はこれらの具体的な詳細のうちの一部がなくても実施し得ることが明らかであろう。その他の例では、周知の構造およびデバイスはブロック図の形態で示されている。
上述の記載は、具体例としての実施形態を提供しているだけであって、本開示の範囲、利用可能性、または構成を限定することを意図しているのではない。むしろ、具体例としての実施形態の上述の記載は、具体例としての実施形態を実現することを可能にする説明を当業者に提供するであろう。以下の請求項に記載の本発明の精神および範囲から逸脱することなく、要素の機能および構成に各種変更を加え得ることが理解されるはずである。
上述の記載において、具体的な詳細は、実施形態の十分な理解を得るために提供されている。しかしながら、当業者は、実施形態はこれらの具体的な詳細がなくても実現し得ることを理解するであろう。たとえば、回路、システム、ネットワーク、プロセス、およびその他のコンポーネントは、実施形態を不必要な詳細で不明瞭にすることがないよう、ブロック図の形態のコンポーネントとして示されている場合がある。その他の例において、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために不必要な詳細なしで示されている場合がある。
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして記載されている場合があることが注目される。フローチャートは動作を逐次プロセスとして説明している場合があるが、動作のうちの多くは並列または同時に実行することができる。加えて、動作の順序は構成し直してもよい。プロセスは、その動作が完了すると終了するが、図面に含まれていない追加のステップを有する可能性がある。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、その終了は、この関数が呼び出し側関数またはメイン関数に戻ることに相当し得る。
「コンピュータ読取可能媒体」という用語は、携帯型または固定記憶装置、光記憶装置、無線チャネル、ならびに、命令および/またはデータを格納する、含む、または保持することが可能なその他の各種媒体を含むが、これらに限定される訳ではない。コードセグメントまたはマシン実行可能命令は、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造、もしくはプログラムステートメントの任意の組み合わせを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを送ることおよび/または受けることにより、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して、送る、転送する、または送信することができる。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはその任意の組み合わせによって実現することができる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現するとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、マシン読取可能媒体に格納されていてもよい。プロセッサ(複数のプロセッサ)が必要なタスクを実行してもよい。
上述の明細書では、本発明の局面を、その具体的な実施形態を参照しながら説明しているが、本発明がこれらの実施形態に限定される訳ではないことを当業者は認識するであろう。上記発明の各種特徴および局面は、個別に使用されてもよく、またはともに使用されてもよい。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に記載の環境およびアプリケーションを超える、任意の数の環境およびアプリケーションで利用することができる。したがって、本明細書および図面は、限定的なものではなく例示的なものであるとみなされねばならない。
加えて、説明のために、方法は特定の順序で記載されている。代替実施形態においてこれらの方法は記載されている順序と異なる順序で実行され得ることが理解されるはずである。上記方法は、ハードウェアコンポーネントによって実行されてもよく、またはマシン実行可能命令のシーケンスで実施されてもよいことも、理解されるはずである。マシン実行可能命令は、当該命令でプログラミングされた汎用もしくは専用プロセッサまたは論理回路のようなマシンに当該方法を実行させるために使用することができる。これらのマシン実行可能命令は、CD-ROMもしくはその他のタイプの光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光カード、フラッシュメモリ、または、電子命令を格納するのに適したその他のタイプのマシン読取可能媒体等の、1つ以上のマシン読取可能媒体に、格納されてもよい。これに代えて、当該方法はハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
Claims (20)
- コンテナ環境内の登録されたサービスエンドポイントに対するアプリケーションプログラミングインターフェイス(API)関数を与える方法であって、前記方法は、
APIレジストリにおいてAPI定義を受けるステップを含み、前記API定義は、
コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、
1つ以上のAPI関数とを含み、前記方法はさらに、
前記APIレジストリが、前記1つ以上のAPI関数と前記サービスのエンドポイントとの間のバインディングを作成するステップと、
前記APIレジストリが、前記第1のサービスの使用を求める要求を第2のサービスから受けるステップと、
前記APIレジストリが、前記1つ以上のAPI関数を前記第2のサービスに与えるステップとを含む、方法。 - 前記1つ以上のAPI関数を含む前記第2のサービスのためのクライアントライブラリを生成するステップをさらに含む、請求項1に記載の方法。
- 前記クライアントライブラリは、前記API関数を実現するメンバ関数とともにオブジェクトクラスを含む、請求項2に記載の方法。
- 前記クライアントライブラリは、前記第1のサービスのエンドポイントに対するダイレクトコールを含む、請求項2に記載の方法。
- 前記クライアントライブラリは、前記1つ以上のAPI関数のうちの1つが前記第2のサービスによってコールされたときに前記第1のサービスのエンドポイントを実行時にアップデートするコードを含む、請求項2に記載の方法。
- 前記クライアントライブラリは、前記1つ以上のAPI関数の1つ以上のパラメータとして受けたデータを、前記第1のサービスのエンドポイントに対するHTTPコールに再フォーマットする、請求項2に記載の方法。
- 前記クライアントライブラリは、前記第1のサービスのエンドポイントの前記HTTPコールに加えるための追加情報を第3のサービスに要求する、請求項6に記載の方法。
- 前記クライアントライブラリは、前記第1のサービスに対する失敗コールをリトライするコードを含む、請求項2に記載の方法。
- 前記クライアントライブラリは、結果値を前記第1のサービスの結果セットから抽出し前記結果値を前記1つ以上のAPI関数に対するリターン値としてパッケージングするコードを含む、請求項2に記載の方法。
- 1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を含む非一時的なコンピュータ読取可能媒体であって、前記動作は、
APIレジストリにおいてAPI定義を受けることを含み、前記API定義は、
コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、
1つ以上のAPI関数とを含み、前記動作はさらに、
前記APIレジストリが、前記1つ以上のAPI関数と前記サービスのエンドポイントとの間のバインディングを作成することと、
前記APIレジストリが、前記第1のサービスの使用を求める要求を第2のサービスから受けることと、
前記APIレジストリが、前記1つ以上のAPI関数を前記第2のサービスに与えることとを含む、非一時的なコンピュータ読取可能媒体。 - 前記第1のサービスのエンドポイントは、
IPアドレスと、
ポート番号とを含む、請求項10に記載の非一時的なコンピュータ読取可能媒体。 - 前記コンテナ環境は、コンテナにカプセル化された複数のサービスを含む、請求項10に記載の非一時的なコンピュータ読取可能媒体。
- 前記APIレジストリは、前記コンテナ環境内のコンテナにカプセル化されたサービスとしてデプロイされる、請求項10に記載の非一時的なコンピュータ読取可能媒体。
- 前記APIレジストリは、
統合開発環境(IDE)において開発中のサービスと、
前記コンテナ環境において既にデプロイされているサービスとが、利用できる、請求項10に記載の非一時的なコンピュータ読取可能媒体。 - 前記動作はさらに、前記APIレジストリが、前記コンテナ環境にデプロイされているコンテナ化されたサービスの任意の利用できるエンドポイントを識別することを含む、請求項10に記載の非一時的なコンピュータ読取可能媒体。
- 1つ以上のプロセッサと、
1つ以上のメモリデバイスとを備えるシステムであって、前記1つ以上のメモリデバイスは、前記1つ以上のプロセッサによって実行されると前記1つ以上のプロセッサに動作を実行させる命令を含み、前記動作は、
APIレジストリにおいてAPI定義を受けることを含み、前記API定義は、
コンテナ環境にデプロイされたコンテナにカプセル化された第1のサービスのエンドポイントと、
1つ以上のAPI関数とを含み、前記動作はさらに、
前記APIレジストリが、前記1つ以上のAPI関数と前記サービスのエンドポイントとの間のバインディングを作成することと、
前記APIレジストリが、前記第1のサービスの使用を求める要求を第2のサービスから受けることと、
前記APIレジストリが、前記1つ以上のAPI関数を前記第2のサービスに与えることとを含む、システム。 - 前記動作はさらに、前記APIレジストリに登録されたすべてのサービスに対するAPI関数のリストをユーザインターフェイスに表示させることを含む、請求項16に記載のシステム。
- 前記第1のサービスの使用を求める前記第2のサービスからの要求は、前記ユーザインターフェイスに表示された前記1つ以上のAPI関数のうちの1つの選択を受けることによって受ける、請求項17に記載のシステム。
- 前記ユーザインターフェイスはコマンドラインインターフェイスを含む、請求項17に記載のシステム。
- 前記ユーザインターフェイスはグラフィカルユーザインターフェイスを含む、請求項17に記載のシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762566351P | 2017-09-30 | 2017-09-30 | |
US62/566,351 | 2017-09-30 | ||
JP2020518519A JP7196164B2 (ja) | 2017-09-30 | 2018-09-28 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
PCT/US2018/053612 WO2019068024A1 (en) | 2017-09-30 | 2018-09-28 | CONNECTING INTO AN API REGISTER END POINTS OF DORSAL SERVICES WITH API FUNCTIONS |
JP2022199646A JP7481421B2 (ja) | 2017-09-30 | 2022-12-14 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022199646A Division JP7481421B2 (ja) | 2017-09-30 | 2022-12-14 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024105342A true JP2024105342A (ja) | 2024-08-06 |
Family
ID=63963482
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020518500A Active JP7203096B2 (ja) | 2017-09-30 | 2018-09-28 | デプロイされたコンテナプラットフォームにおけるインスタンスのリアルタイムデバッグ |
JP2020518526A Active JP7246381B2 (ja) | 2017-09-30 | 2018-09-28 | 環境要件に基づくコンテナのデプロイメント |
JP2020518487A Active JP7182618B2 (ja) | 2017-09-30 | 2018-09-28 | マイクロサービスの構成および管理を可能にするapiリポジトリ |
JP2020518519A Active JP7196164B2 (ja) | 2017-09-30 | 2018-09-28 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
JP2020518513A Active JP7493450B2 (ja) | 2017-09-30 | 2018-09-28 | コンテナのグループの動的マイグレーション |
JP2022185721A Active JP7562619B2 (ja) | 2017-09-30 | 2022-11-21 | マイクロサービスの構成および管理を可能にするapiリポジトリ |
JP2022199646A Active JP7481421B2 (ja) | 2017-09-30 | 2022-12-14 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
JP2023115382A Pending JP2023139086A (ja) | 2017-09-30 | 2023-07-13 | コンテナのグループの動的マイグレーション |
JP2024070583A Pending JP2024105342A (ja) | 2017-09-30 | 2024-04-24 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
Family Applications Before (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020518500A Active JP7203096B2 (ja) | 2017-09-30 | 2018-09-28 | デプロイされたコンテナプラットフォームにおけるインスタンスのリアルタイムデバッグ |
JP2020518526A Active JP7246381B2 (ja) | 2017-09-30 | 2018-09-28 | 環境要件に基づくコンテナのデプロイメント |
JP2020518487A Active JP7182618B2 (ja) | 2017-09-30 | 2018-09-28 | マイクロサービスの構成および管理を可能にするapiリポジトリ |
JP2020518519A Active JP7196164B2 (ja) | 2017-09-30 | 2018-09-28 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
JP2020518513A Active JP7493450B2 (ja) | 2017-09-30 | 2018-09-28 | コンテナのグループの動的マイグレーション |
JP2022185721A Active JP7562619B2 (ja) | 2017-09-30 | 2022-11-21 | マイクロサービスの構成および管理を可能にするapiリポジトリ |
JP2022199646A Active JP7481421B2 (ja) | 2017-09-30 | 2022-12-14 | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
JP2023115382A Pending JP2023139086A (ja) | 2017-09-30 | 2023-07-13 | コンテナのグループの動的マイグレーション |
Country Status (5)
Country | Link |
---|---|
US (8) | US10599500B2 (ja) |
EP (5) | EP3688595A1 (ja) |
JP (9) | JP7203096B2 (ja) |
CN (7) | CN111263933A (ja) |
WO (5) | WO2019068037A1 (ja) |
Families Citing this family (200)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US10320679B2 (en) | 2014-09-30 | 2019-06-11 | Nicira, Inc. | Inline load balancing |
US9755898B2 (en) | 2014-09-30 | 2017-09-05 | Nicira, Inc. | Elastically managing a service node group |
US11296930B2 (en) | 2014-09-30 | 2022-04-05 | Nicira, Inc. | Tunnel-enabled elastic service model |
US10609091B2 (en) | 2015-04-03 | 2020-03-31 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
US11824863B2 (en) * | 2016-11-03 | 2023-11-21 | Nicira, Inc. | Performing services on a host |
US10447811B2 (en) * | 2017-07-18 | 2019-10-15 | Citrix Systems, Inc. | Cloud to on-premises debug service routing |
LT3767495T (lt) | 2017-08-28 | 2023-05-25 | Bright Data Ltd. | Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius |
US11947489B2 (en) | 2017-09-05 | 2024-04-02 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
JP7203096B2 (ja) | 2017-09-30 | 2023-01-12 | オラクル・インターナショナル・コーポレイション | デプロイされたコンテナプラットフォームにおけるインスタンスのリアルタイムデバッグ |
US10805181B2 (en) | 2017-10-29 | 2020-10-13 | Nicira, Inc. | Service operation chaining |
US12130878B1 (en) | 2017-11-27 | 2024-10-29 | Fortinet, Inc. | Deduplication of monitored communications data in a cloud environment |
US11792284B1 (en) * | 2017-11-27 | 2023-10-17 | Lacework, Inc. | Using data transformations for monitoring a cloud compute environment |
US11582168B2 (en) | 2018-01-11 | 2023-02-14 | Robin Systems, Inc. | Fenced clone applications |
US11748203B2 (en) * | 2018-01-11 | 2023-09-05 | Robin Systems, Inc. | Multi-role application orchestration in a distributed storage system |
US11392363B2 (en) | 2018-01-11 | 2022-07-19 | Robin Systems, Inc. | Implementing application entrypoints with containers of a bundled application |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11128530B2 (en) * | 2018-03-29 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Container cluster management |
US10942788B2 (en) | 2018-06-15 | 2021-03-09 | Vmware, Inc. | Policy constraint framework for an sddc |
US10812337B2 (en) | 2018-06-15 | 2020-10-20 | Vmware, Inc. | Hierarchical API for a SDDC |
US11023328B2 (en) | 2018-07-30 | 2021-06-01 | Robin Systems, Inc. | Redo log for append only storage scheme |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US10805154B2 (en) * | 2018-10-16 | 2020-10-13 | Hartford Fire Insurance Company | Secure configuration management system |
US10747556B2 (en) * | 2018-10-18 | 2020-08-18 | Sap Se | Serverless function as a service (FAAS) |
US11036439B2 (en) | 2018-10-22 | 2021-06-15 | Robin Systems, Inc. | Automated management of bundled applications |
US10846078B2 (en) * | 2018-11-06 | 2020-11-24 | Sap Se | Synchronization of master data across multiple cloud-based systems |
US11457080B1 (en) * | 2018-11-23 | 2022-09-27 | Amazon Technologies, Inc. | Service mesh management |
US20200167215A1 (en) * | 2018-11-28 | 2020-05-28 | Centurylink Intellectual Property Llc | Method and System for Implementing an Application Programming Interface Automation Platform |
US11243813B2 (en) * | 2018-11-28 | 2022-02-08 | International Business Machines Corporation | Process as a network service hub |
US10715388B2 (en) * | 2018-12-10 | 2020-07-14 | Sap Se | Using a container orchestration service for dynamic routing |
US11212366B2 (en) | 2018-12-11 | 2021-12-28 | Sap Se | Kubernetes as a distributed operating system for multitenancy/multiuser |
US11381476B2 (en) * | 2018-12-11 | 2022-07-05 | Sap Se | Standardized format for containerized applications |
US10700949B1 (en) * | 2018-12-13 | 2020-06-30 | Sap Se | Stacking of tentant-aware services |
CN109743367B (zh) * | 2018-12-24 | 2021-08-17 | 青岛海信智能商用系统股份有限公司 | 服务处理方法、装置、电子设备及可读存储介质 |
US10962946B2 (en) * | 2018-12-31 | 2021-03-30 | Johnson Controls Technology Company | Building automation system with microservice architecture to support multi-node on-premise bas server |
US11018956B2 (en) * | 2019-01-18 | 2021-05-25 | Fidelity Information Services, Llc | Systems and methods for rapid booting and deploying of an enterprise system in a cloud environment |
US11038926B2 (en) * | 2019-01-23 | 2021-06-15 | Vmware, Inc. | System and method for embedding infrastructure security services into management nodes |
US10860364B2 (en) * | 2019-01-23 | 2020-12-08 | Vmware, Inc. | Containerized management services with high availability |
US11036538B2 (en) | 2019-02-22 | 2021-06-15 | Vmware, Inc. | Providing services with service VM mobility |
EP4220441A1 (en) | 2019-02-25 | 2023-08-02 | Bright Data Ltd. | System and method for url fetching retry mechanism |
US11019157B2 (en) * | 2019-03-06 | 2021-05-25 | At&T Intellectual Property I, L.P. | Connectionless service and other services for devices using microservices in 5G or other next generation communication systems |
US10942855B2 (en) * | 2019-03-18 | 2021-03-09 | Microsoft Technology Licensing, Llc | Contextual loading based on dynamic context |
US11086725B2 (en) | 2019-03-25 | 2021-08-10 | Robin Systems, Inc. | Orchestration of heterogeneous multi-role applications |
WO2020202135A2 (en) | 2019-04-02 | 2020-10-08 | Luminati Networks Ltd. | System and method for managing non-direct url fetching service |
CN110018962A (zh) * | 2019-04-11 | 2019-07-16 | 重庆猪八戒知识产权服务有限公司 | 基于分布式服务框架和注册中心的服务调试方法及系统 |
US11256434B2 (en) | 2019-04-17 | 2022-02-22 | Robin Systems, Inc. | Data de-duplication |
US11416285B1 (en) * | 2019-04-30 | 2022-08-16 | Splunk Inc. | Efficient and secure scalable-two-stage data collection |
DE102019112485A1 (de) * | 2019-05-13 | 2020-11-19 | Eberhard-Karls-Universität Tübingen | Verfahren zum selektiven Ausführen eines Containers |
US10911558B1 (en) * | 2019-05-15 | 2021-02-02 | Pivotal Software, Inc. | On-demand network segmentation |
WO2020234792A1 (en) * | 2019-05-21 | 2020-11-26 | Politecnico Di Milano | An fpga-as-a-service system for accelerated serverless computing |
CN110162405A (zh) * | 2019-05-31 | 2019-08-23 | 福建南威软件有限公司 | 一种自动服务发现与负载均衡的方法及系统 |
CN110266679B (zh) * | 2019-06-14 | 2023-02-28 | 腾讯科技(成都)有限公司 | 容器网络隔离方法及装置 |
US11681278B2 (en) * | 2019-06-19 | 2023-06-20 | Honeywell International Inc. | High availability for container based control execution |
TW202101322A (zh) * | 2019-06-19 | 2021-01-01 | 和碩聯合科技股份有限公司 | 管理軟體服務的方法及伺服器 |
US11507880B2 (en) * | 2019-06-25 | 2022-11-22 | Kyndryl, Inc. | Automatic and continuous monitoring and remediation of API integrations |
CN112187841B (zh) * | 2019-07-02 | 2022-07-08 | 北京百度网讯科技有限公司 | 基于SaaS平台的服务托管方法、装置、电子设备及存储介质 |
US12019613B2 (en) * | 2019-07-18 | 2024-06-25 | EMC IP Holding Company LLC | Data integrity and consensuses with blockchain |
US11422785B2 (en) * | 2019-07-23 | 2022-08-23 | Paypal, Inc. | Container orchestration framework |
US11411733B1 (en) * | 2019-08-08 | 2022-08-09 | Citibank, N.A. | Systems and methods for identity and access control |
US11226847B2 (en) | 2019-08-29 | 2022-01-18 | Robin Systems, Inc. | Implementing an application manifest in a node-specific manner using an intent-based orchestrator |
US11520650B2 (en) | 2019-09-05 | 2022-12-06 | Robin Systems, Inc. | Performing root cause analysis in a multi-role application |
US11249851B2 (en) | 2019-09-05 | 2022-02-15 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US11556321B2 (en) | 2019-09-06 | 2023-01-17 | International Business Machines Corporation | Deploying microservices across a service infrastructure |
US10972548B2 (en) * | 2019-09-09 | 2021-04-06 | International Business Machines Corporation | Distributed system deployment |
US10965752B1 (en) | 2019-09-13 | 2021-03-30 | Google Llc | Live migration of clusters in containerized environments |
US11714638B2 (en) * | 2019-09-18 | 2023-08-01 | International Business Machines Corporation | Availability level-based service management |
US11176245B2 (en) | 2019-09-30 | 2021-11-16 | International Business Machines Corporation | Protecting workloads in Kubernetes |
US11113158B2 (en) | 2019-10-04 | 2021-09-07 | Robin Systems, Inc. | Rolling back kubernetes applications |
US11347684B2 (en) | 2019-10-04 | 2022-05-31 | Robin Systems, Inc. | Rolling back KUBERNETES applications including custom resources |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11157304B2 (en) * | 2019-11-01 | 2021-10-26 | Dell Products L.P. | System for peering container clusters running on different container orchestration systems |
CN112783642B (zh) * | 2019-11-11 | 2024-09-13 | 阿里巴巴集团控股有限公司 | 容器内逻辑配置方法、设备以及计算机可读介质 |
US11347491B2 (en) * | 2019-11-15 | 2022-05-31 | Mastercard International Incorporated | Containerized application deployment |
WO2021095943A1 (ko) * | 2019-11-15 | 2021-05-20 | 대구대학교 산학협력단 | 서비스 프로파일을 고려한 컨테이너의 배치 방법 |
US12131197B2 (en) * | 2019-11-25 | 2024-10-29 | Kyndryl, Inc. | Container load balancing and availability |
US11403188B2 (en) | 2019-12-04 | 2022-08-02 | Robin Systems, Inc. | Operation-level consistency points and rollback |
EP3836051A1 (en) * | 2019-12-13 | 2021-06-16 | Basf Se | Industrial plant optimization |
EP4078363B1 (en) * | 2019-12-19 | 2024-05-01 | Koninklijke Philips N.V. | Dynamic personalized platform generation based on on-the-fly requirements |
CN111193783B (zh) * | 2019-12-19 | 2022-08-26 | 新浪网技术(中国)有限公司 | 一种服务访问的处理方法及装置 |
US11397630B2 (en) | 2020-01-02 | 2022-07-26 | Kyndryl, Inc. | Fault detection and correction of API endpoints in container orchestration platforms |
US11216155B2 (en) * | 2020-01-06 | 2022-01-04 | Fmr Llc | Systems and methods for data processing |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11301285B1 (en) * | 2020-01-30 | 2022-04-12 | Parallels International Gmbh | Methods and systems for seamless virtual machine changing for software applications |
CN111615066B (zh) * | 2020-02-07 | 2021-07-16 | 中国海洋大学 | 一种基于广播的分布式微服务注册及调用方法 |
CN111367659B (zh) * | 2020-02-24 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种Kubernetes中节点的资源管理方法、设备以及介质 |
US11210205B2 (en) * | 2020-02-28 | 2021-12-28 | Sap Se | Application debugging |
US11409555B2 (en) * | 2020-03-12 | 2022-08-09 | At&T Intellectual Property I, L.P. | Application deployment in multi-cloud environment |
US11762742B2 (en) | 2020-03-31 | 2023-09-19 | Honeywell International Inc. | Process control system with different hardware architecture controller backup |
EP4078901A4 (en) | 2020-04-01 | 2023-10-11 | VMWare, Inc. | AUTOMATIC DEPLOYMENT OF NETWORK ELEMENTS FOR HETEROGENEOUS COMPUTING ELEMENTS |
US11528219B2 (en) | 2020-04-06 | 2022-12-13 | Vmware, Inc. | Using applied-to field to identify connection-tracking records for different interfaces |
CN111541746B (zh) * | 2020-04-09 | 2022-04-15 | 哈尔滨工业大学 | 面向用户需求变化的多版本并存的微服务自适应方法 |
US11853330B1 (en) * | 2020-04-30 | 2023-12-26 | Splunk Inc. | Data structure navigator |
US11144362B1 (en) * | 2020-05-05 | 2021-10-12 | International Business Machines Corporation | Container scheduling in a container orchestration system |
US11108638B1 (en) | 2020-06-08 | 2021-08-31 | Robin Systems, Inc. | Health monitoring of automatically deployed and managed network pipelines |
US11528186B2 (en) | 2020-06-16 | 2022-12-13 | Robin Systems, Inc. | Automated initialization of bare metal servers |
US11336588B2 (en) | 2020-06-26 | 2022-05-17 | Red Hat, Inc. | Metadata driven static determination of controller availability |
US11645193B2 (en) * | 2020-07-07 | 2023-05-09 | International Business Machines Corporation | Heterogeneous services for enabling collaborative logic design and debug in aspect oriented hardware designing |
US11501026B2 (en) * | 2020-07-13 | 2022-11-15 | Avaya Management L.P. | Method to encrypt the data at rest for data residing on Kubernetes persistent volumes |
US10901704B1 (en) * | 2020-07-19 | 2021-01-26 | Xmodn Security, Llc | Computer-aided design, simulation, and code generation for cryptography |
CN111858370B (zh) * | 2020-07-28 | 2023-12-26 | 浪潮云信息技术股份公司 | DevOps的实现方法、装置、计算机可读介质 |
US11803408B2 (en) | 2020-07-29 | 2023-10-31 | Vmware, Inc. | Distributed network plugin agents for container networking |
US11863352B2 (en) | 2020-07-30 | 2024-01-02 | Vmware, Inc. | Hierarchical networking for nested container clusters |
US11153227B1 (en) | 2020-08-05 | 2021-10-19 | International Business Machines Corporation | Managing communication between microservices |
US11805076B2 (en) | 2020-08-21 | 2023-10-31 | Kyndryl, Inc. | Microservice placement in hybrid multi-cloud using graph matching |
US12050946B2 (en) | 2020-09-21 | 2024-07-30 | International Business Machines Corporation | Just in time assembly of transactions |
CN111857977B (zh) * | 2020-09-21 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 弹性伸缩方法、装置、服务器和存储介质 |
CN112256384B (zh) * | 2020-09-22 | 2023-10-24 | 杭州指令集智能科技有限公司 | 基于容器技术的服务集合处理方法、装置和计算机设备 |
US11740980B2 (en) | 2020-09-22 | 2023-08-29 | Robin Systems, Inc. | Managing snapshot metadata following backup |
US11989084B2 (en) | 2020-09-23 | 2024-05-21 | Honeywell International Inc. | Self-healing process control system |
CN112130880B (zh) * | 2020-09-27 | 2022-12-02 | 深圳平安医疗健康科技服务有限公司 | 微服务的发布方法、装置、计算机设备及存储介质 |
CN112035220A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 开发机操作任务的处理方法、装置、设备以及存储介质 |
EP3979081B1 (de) | 2020-09-30 | 2023-06-07 | Siemens Aktiengesellschaft | Verfahren zum testen einer microservice-anwendung |
US11743188B2 (en) | 2020-10-01 | 2023-08-29 | Robin Systems, Inc. | Check-in monitoring for workflows |
US11347622B1 (en) | 2020-10-06 | 2022-05-31 | Splunk Inc. | Generating metrics values for teams of microservices of a microservices-based architecture |
US11321217B1 (en) * | 2020-10-06 | 2022-05-03 | Splunk Inc. | Generating metrics values at component levels of a monolithic application and of a microservice of a microservices-based architecture |
US11456914B2 (en) | 2020-10-07 | 2022-09-27 | Robin Systems, Inc. | Implementing affinity and anti-affinity with KUBERNETES |
US11271895B1 (en) | 2020-10-07 | 2022-03-08 | Robin Systems, Inc. | Implementing advanced networking capabilities using helm charts |
US11475078B2 (en) | 2020-10-19 | 2022-10-18 | Clearwater Analytics, Llc | Endpoint identifier for application programming interfaces and web services |
CN112269738B (zh) * | 2020-10-26 | 2023-04-07 | 杭州光通天下网络科技有限公司 | Ctf靶场调试方法、装置、电子设备及介质 |
CN112349165A (zh) * | 2020-10-29 | 2021-02-09 | 国网甘肃省电力公司 | 基于调控云的电网调度员仿真培训方法、装置及系统 |
CN112328359B (zh) * | 2020-10-30 | 2022-06-17 | 烽火通信科技股份有限公司 | 避免容器集群启动拥塞的调度方法和容器集群管理平台 |
US11874938B2 (en) | 2020-11-03 | 2024-01-16 | Honeywell International Inc. | Admittance mechanism |
US11750451B2 (en) | 2020-11-04 | 2023-09-05 | Robin Systems, Inc. | Batch manager for complex workflows |
EP4002098A1 (de) * | 2020-11-18 | 2022-05-25 | Deutsche Telekom AG | Verfahren zur bereitstellung der funktionalität von mehreren mikrodiensten und/oder der funktionalität von mehreren software-containern mittels einer cloud-infrastruktur, system, verwendungssystem, computerprogramm und computerlesbares medium |
CN112486495A (zh) * | 2020-11-23 | 2021-03-12 | 珠海格力电器股份有限公司 | 一种工业视觉算法部署方法、系统及存储介质 |
KR102439056B1 (ko) * | 2020-11-24 | 2022-09-01 | 주식회사 솔박스 | 노드 레이블링 방법 및 장치 |
CN112328297B (zh) * | 2020-11-30 | 2021-04-20 | 北京技德系统技术有限公司 | 一种在Linux上兼容运行的Android系统的升级方法与装置 |
KR102466231B1 (ko) * | 2020-12-09 | 2022-11-10 | 대구대학교 산학협력단 | 오케스트레이터 환경에서의 프로세스 마이그레이션을 위한 컨테이너 관리 장치 및 관리 방법 |
US11556361B2 (en) | 2020-12-09 | 2023-01-17 | Robin Systems, Inc. | Monitoring and managing of complex multi-role applications |
KR102480731B1 (ko) * | 2020-12-09 | 2022-12-22 | 대구대학교 산학협력단 | 클라우드 컴퓨팅의 다중 노드 환경을 위한 배치 스케줄링 장치 및 배치 스케줄링 방법 |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
CN112579199A (zh) * | 2020-12-15 | 2021-03-30 | 北京动力机械研究所 | 基于开放式数据平台的处理方法及装置 |
US11611625B2 (en) * | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US20220188089A1 (en) * | 2020-12-15 | 2022-06-16 | Baker Hughes Holdings Llc | Framework for industrial analytics |
JP2022095016A (ja) * | 2020-12-16 | 2022-06-28 | 株式会社日立製作所 | 演算装置、共通リソース生成方法 |
CN112511560B (zh) * | 2020-12-21 | 2021-10-22 | 北京云思畅想科技有限公司 | 一种基于服务网格的混合云环境下数据安全保障方法 |
CN112698970B (zh) * | 2020-12-31 | 2024-07-12 | 北京千方科技股份有限公司 | 用于微服务架构的服务调用方法、装置及计算机存储介质 |
US11223522B1 (en) * | 2021-01-15 | 2022-01-11 | Dell Products L.P. | Context-based intelligent re-initiation of microservices |
US11567740B2 (en) * | 2021-02-11 | 2023-01-31 | Oracle International Corporation | Techniques for building and optimizing contact service centers |
CN112631739A (zh) * | 2021-03-09 | 2021-04-09 | 北京世纪好未来教育科技有限公司 | 容器控制方法及装置、介质、计算机设备 |
WO2022203937A1 (en) | 2021-03-25 | 2022-09-29 | Cisco Technology, Inc. | Providing persistent external internet protocol address for extra-cluster services |
US11671401B2 (en) | 2021-03-25 | 2023-06-06 | Cisco Technology, Inc. | Providing persistent external internet protocol address for extra-cluster services |
US20220309164A1 (en) * | 2021-03-29 | 2022-09-29 | International Business Machines Corporation | Secure placement of processing elements |
US11456931B1 (en) | 2021-04-06 | 2022-09-27 | Amdocs Development Limited | System, method and computer program for orchestrating loosely coupled services |
CN113067890B (zh) * | 2021-04-07 | 2022-08-19 | 武汉光庭信息技术股份有限公司 | 一种适用于智能座舱的动态注册服务方法及智能座舱 |
CN112802457A (zh) * | 2021-04-14 | 2021-05-14 | 北京世纪好未来教育科技有限公司 | 语音识别的方法、装置、设备和存储介质 |
US11768713B2 (en) | 2021-04-19 | 2023-09-26 | Microsoft Technology Licensing, Llc | Dynamic relocation of pods to optimize inter-pod networking |
US11645055B2 (en) * | 2021-04-29 | 2023-05-09 | Sap Se | Custom integration flow step for integration service |
US20220360504A1 (en) * | 2021-05-05 | 2022-11-10 | International Business Machines Corporation | Adapting microservices to multi-platform deployments |
US11797282B2 (en) * | 2021-05-06 | 2023-10-24 | Red Hat, Inc. | Optimizing services deployment in a cloud computing environment |
US12106082B2 (en) | 2021-05-20 | 2024-10-01 | International Business Machines Corporation | Generative experiments for application deployment in 5G networks |
US11606254B2 (en) | 2021-06-11 | 2023-03-14 | Vmware, Inc. | Automatic configuring of VLAN and overlay logical switches for container secondary interfaces |
US11418550B1 (en) * | 2021-07-12 | 2022-08-16 | Sap Se | Service-mesh session prioritization |
CN113821299A (zh) * | 2021-07-23 | 2021-12-21 | 邢利力 | 一种多版本控制的微服务开发部署系统 |
US20230031434A1 (en) * | 2021-07-28 | 2023-02-02 | Hewlett-Packard Development Company, L.P. | Exclusion registry |
IT202100021161A1 (it) * | 2021-08-04 | 2023-02-04 | Marco Simoncini | Sistema di containerizzazione di workstation aziendali con interfacce utente remote a basso costo |
CN113392034B (zh) * | 2021-08-17 | 2021-10-15 | 北京安普诺信息技术有限公司 | Api自发现方法和基于此的测试覆盖率统计方法及装置 |
US11847412B2 (en) * | 2021-09-01 | 2023-12-19 | Capital One Services, Llc | Enforcing data ownership at gateway registration using natural language processing |
US20230073891A1 (en) * | 2021-09-09 | 2023-03-09 | Beijing Bytedance Network Technology Co., Ltd. | Multifunctional application gateway for security and privacy |
US20230086068A1 (en) * | 2021-09-22 | 2023-03-23 | Ridgeline, Inc. | Enabling an action based on a permission identifier for real-time identity resolution in a distributed system |
US12026496B2 (en) | 2021-09-24 | 2024-07-02 | Sap Se | Cloud upgrade for legacy on-premise application |
US11841731B2 (en) | 2021-09-24 | 2023-12-12 | Sap Se | Cloud plugin for legacy on-premise application |
US11922163B2 (en) * | 2021-09-24 | 2024-03-05 | Sap Se | Cloud version management for legacy on-premise application |
US20230104787A1 (en) * | 2021-10-06 | 2023-04-06 | Sap Se | Multi-tenancy interference model for scaling in container orchestration systems |
CN113672273B (zh) * | 2021-10-21 | 2022-04-15 | 阿里云计算有限公司 | 数据处理方法、系统及设备 |
CN113709707B (zh) * | 2021-10-29 | 2022-03-15 | 中兴通讯股份有限公司 | 服务网格中边车部署的方法、装置、电子设备和存储介质 |
US11893373B2 (en) * | 2021-11-05 | 2024-02-06 | Microsoft Technology Licensing, Llc | Exposure and de-duplication of input parameters for complex Helm chart deployment |
WO2022072953A1 (en) * | 2021-11-17 | 2022-04-07 | Innopeak Technology, Inc. | Automatic app resource adaptation |
CN114090126A (zh) * | 2021-11-23 | 2022-02-25 | 浩云科技股份有限公司 | 一种自定义系统变量方法、装置、终端设备及存储介质 |
US20230171243A1 (en) * | 2021-11-29 | 2023-06-01 | Salesforce.Com, Inc. | Administration of services executing in cloud platform based datacenters for web-based applications |
US11907687B2 (en) * | 2021-12-03 | 2024-02-20 | Sap Se | Re-usable integration component configuration in a microservice based integration service |
CN114205342B (zh) * | 2021-12-10 | 2023-05-16 | 易保网络技术(上海)有限公司 | 服务调试的路由方法、电子设备及介质 |
CN114253854B (zh) * | 2021-12-21 | 2024-05-14 | 四川启睿克科技有限公司 | 基于多类型设备模拟上报数据的自动化测试方法 |
US20220121470A1 (en) * | 2021-12-23 | 2022-04-21 | Intel Corporation | Optimizing deployment and security of microservices |
US11659027B1 (en) * | 2022-01-06 | 2023-05-23 | Vmware, Inc. | Multi-network/domain service discovery in a container orchestration platform |
US11902245B2 (en) | 2022-01-14 | 2024-02-13 | VMware LLC | Per-namespace IP address management method for container networks |
DE102022200460A1 (de) * | 2022-01-17 | 2023-07-20 | Siemens Aktiengesellschaft | Verfahren zur Verteilung von Rechendiensten verteilter Softwareapplikationen auf Rechenknoten eines Rechenknotennetzwerks, Verteileinrichtung und Rechenknotennetzwerk |
US11915063B2 (en) | 2022-04-05 | 2024-02-27 | Red Hat, Inc. | Managing a presentation mode for application programming interface functions |
CN114706596B (zh) * | 2022-04-11 | 2023-12-01 | 中国电信股份有限公司 | 容器部署方法、资源调度方法、装置、介质和电子设备 |
CN114938396B (zh) * | 2022-05-09 | 2024-09-10 | 阿里巴巴(中国)有限公司 | 服务调用请求的路由方法、创建服务的方法及装置 |
DE102022111836A1 (de) | 2022-05-11 | 2023-11-16 | Cariad Se | Verfahren und Kraftfahrzeug-Steuergerät zum Betreiben einer Containervirtualisierung mit Logging-Funktion sowie computerlesbares Speichermedium |
US11711315B1 (en) | 2022-05-24 | 2023-07-25 | Red Hat, Inc. | Dynamic endpoint resources discovery in Kubernetes clusters via stable URI locator for workflow services |
EP4293512A1 (de) * | 2022-06-14 | 2023-12-20 | Siemens Aktiengesellschaft | Verfahren zum bereitstellen einer mehrzahl von anwendungen und kommunikationssystem |
KR20230174137A (ko) * | 2022-06-20 | 2023-12-27 | 삼성전자주식회사 | 컨테이너 기반 다중 클러스터 환경에서 데이터 동기화를 위한 방법 및 장치 |
US20240031229A1 (en) * | 2022-07-20 | 2024-01-25 | Vmware, Inc. | Synchronization of logical network configuration between multi-tenant network manager and local network manager |
CN115048087A (zh) * | 2022-08-15 | 2022-09-13 | 江苏博云科技股份有限公司 | Kubernetes环境下实现在线IDE工具的方法、设备及存储介质 |
US12086579B2 (en) | 2022-08-31 | 2024-09-10 | Red Hat, Inc. | Deriving a container from a package set |
CN117857548A (zh) * | 2022-09-30 | 2024-04-09 | 华为技术有限公司 | 一种通信方法及装置 |
US11848910B1 (en) | 2022-11-11 | 2023-12-19 | Vmware, Inc. | Assigning stateful pods fixed IP addresses depending on unique pod identity |
US20240195787A1 (en) * | 2022-12-08 | 2024-06-13 | International Business Machines Corporation | Modifying security of microservices in a chain based on predicted confidential data flow through the microservices |
WO2024136908A1 (en) * | 2022-12-19 | 2024-06-27 | Rakuten Mobile Usa Llc | Micro frontend framework for redeployment of specific chunks of existing application build |
US11831511B1 (en) | 2023-01-17 | 2023-11-28 | Vmware, Inc. | Enforcing network policies in heterogeneous systems |
US20240311171A1 (en) * | 2023-03-16 | 2024-09-19 | Qualcomm Incorporated | Arbitrary destination callback invocation between a trusted execution environment and a virtual machine |
US12101244B1 (en) | 2023-06-12 | 2024-09-24 | VMware LLC | Layer 7 network security for container workloads |
CN117112074B (zh) * | 2023-06-19 | 2024-03-12 | 领悦数字信息技术有限公司 | 将http应用自动转换成无服务器函数的方法、系统和介质 |
CN117041330B (zh) * | 2023-10-10 | 2023-12-15 | 三峡高科信息技术有限责任公司 | 一种基于强化学习的边缘微服务细粒度部署方法及系统 |
CN117390105B (zh) * | 2023-12-11 | 2024-03-01 | 中核武汉核电运行技术股份有限公司 | 一种工业服务开放平台的服务录入方法及系统 |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472349B1 (en) | 1999-06-01 | 2008-12-30 | Oracle International Corporation | Dynamic services infrastructure for allowing programmatic access to internet and other resources |
US7401131B2 (en) * | 2000-05-22 | 2008-07-15 | Verizon Business Global Llc | Method and system for implementing improved containers in a global ecosystem of interrelated services |
US7159224B2 (en) | 2002-04-09 | 2007-01-02 | Sun Microsystems, Inc. | Method, system, and articles of manufacture for providing a servlet container based web service endpoint |
US7870241B2 (en) | 2002-11-27 | 2011-01-11 | International Business Machines Corporation | Automated power control policies based on application-specific redundancy characteristics |
US7284054B2 (en) | 2003-04-11 | 2007-10-16 | Sun Microsystems, Inc. | Systems, methods, and articles of manufacture for aligning service containers |
US8346929B1 (en) | 2003-08-18 | 2013-01-01 | Oracle America, Inc. | System and method for generating secure Web service architectures using a Web Services security assessment methodology |
US7698398B1 (en) * | 2003-08-18 | 2010-04-13 | Sun Microsystems, Inc. | System and method for generating Web Service architectures using a Web Services structured methodology |
US7822826B1 (en) * | 2003-12-30 | 2010-10-26 | Sap Ag | Deployment of a web service |
US7500225B2 (en) | 2004-02-10 | 2009-03-03 | Microsoft Corporation | SQL server debugging in a distributed database environment |
US8200823B1 (en) * | 2004-03-30 | 2012-06-12 | Oracle America, Inc. | Technique for deployment and management of network system management services |
WO2005106666A1 (en) | 2004-04-29 | 2005-11-10 | International Business Machines Corporation | A system and method for modeling and dynamically deploying services into a distributed networking architecture |
US7877735B2 (en) | 2004-05-25 | 2011-01-25 | Sap Ag | Application cloning |
US7702779B1 (en) | 2004-06-30 | 2010-04-20 | Symantec Operating Corporation | System and method for metering of application services in utility computing environments |
JP2006146434A (ja) * | 2004-11-17 | 2006-06-08 | Hitachi Ltd | 分散アプリケーションテスト方法及び分散アプリケーションテスト装置 |
US7634759B2 (en) | 2004-12-01 | 2009-12-15 | Microsoft Corporation | Distributed debugger environment |
US9009181B2 (en) | 2007-08-23 | 2015-04-14 | International Business Machines Corporation | Accessing objects in a service registry and repository |
US20140201218A1 (en) * | 2008-06-19 | 2014-07-17 | Servicemesh, Inc. | Systems and methods for providing ranked deployment options |
MY164485A (en) | 2009-07-20 | 2017-12-29 | Mimos Berhad | A method and system for an intelligent framework of a service orientated architecture |
US8707171B2 (en) | 2009-08-04 | 2014-04-22 | International Business Machines Corporation | Service registry policy editing user interface |
US9274848B2 (en) | 2009-12-03 | 2016-03-01 | International Business Machines Corporation | Optimizing cloud service delivery within a cloud computing environment |
US8245083B2 (en) | 2009-12-24 | 2012-08-14 | At&T Intellectual Property I, L.P. | Systems, methods, and apparatus to debug a network application |
US9201762B1 (en) | 2010-04-21 | 2015-12-01 | Marvell International Ltd. | Processor implemented systems and methods for reversible debugging using a replicate process system call |
US9459925B2 (en) * | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US8479211B1 (en) | 2010-06-29 | 2013-07-02 | Amazon Technologies, Inc. | Dynamic resource commitment management |
JP2012037935A (ja) | 2010-08-03 | 2012-02-23 | Fujitsu Ltd | 情報処理装置 |
US9483312B2 (en) * | 2010-08-16 | 2016-11-01 | International Business Machines Corporation | Locating service endpoints from a service registry |
US8862933B2 (en) | 2011-02-09 | 2014-10-14 | Cliqr Technologies, Inc. | Apparatus, systems and methods for deployment and management of distributed computing systems and applications |
US10225335B2 (en) * | 2011-02-09 | 2019-03-05 | Cisco Technology, Inc. | Apparatus, systems and methods for container based service deployment |
US8701128B2 (en) | 2011-02-14 | 2014-04-15 | General Electric Company | Method, system and computer program product for a client application programming interface (API) in a service oriented architecture |
CN102681825A (zh) | 2011-03-09 | 2012-09-19 | 北京航空航天大学 | 服务运行容器管理系统和方法 |
US20120271949A1 (en) * | 2011-04-20 | 2012-10-25 | International Business Machines Corporation | Real-time data analysis for resource provisioning among systems in a networked computing environment |
CN102223398B (zh) * | 2011-05-30 | 2013-09-11 | 北京航空航天大学 | 一种部署在云计算环境中部署服务的方法 |
US8924542B1 (en) | 2011-05-31 | 2014-12-30 | Amazon Technologies, Inc. | Methods and apparatus for scalable private services |
US9781205B2 (en) | 2011-09-12 | 2017-10-03 | Microsoft Technology Licensing, Llc | Coordination engine for cloud selection |
GB2502998A (en) | 2012-06-13 | 2013-12-18 | Ibm | Automatic creation of endpoint definition documents for different environments |
GB2504491A (en) * | 2012-07-30 | 2014-02-05 | Ibm | Remote debug service in a cloud environment |
US9563480B2 (en) | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
US8825550B2 (en) * | 2012-08-23 | 2014-09-02 | Amazon Technologies, Inc. | Scaling a virtual machine instance |
US10419524B2 (en) * | 2012-09-07 | 2019-09-17 | Oracle International Corporation | System and method for workflow orchestration for use with a cloud computing environment |
US8938053B2 (en) * | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
AU2014232562B2 (en) | 2013-03-15 | 2019-11-21 | Servicemesh, Inc. | Systems and methods for providing ranked deployment options |
JP2014197340A (ja) | 2013-03-29 | 2014-10-16 | 富士ゼロックス株式会社 | 分散処理システム及びプログラム |
US9904266B2 (en) | 2013-04-25 | 2018-02-27 | General Electric Company | Real-time debugging systems and methods |
US9201759B2 (en) | 2013-07-26 | 2015-12-01 | Sap Se | Debugging applications in the cloud |
SG11201604890WA (en) * | 2014-02-07 | 2016-08-30 | Oracle Int Corp | Cloud service custom execution environment |
US9678731B2 (en) * | 2014-02-26 | 2017-06-13 | Vmware, Inc. | Methods and apparatus to generate a customized application blueprint |
US9984158B2 (en) | 2014-03-18 | 2018-05-29 | Axis Ab | Finding services in a service-oriented architecture (SOA) network |
US9270553B1 (en) * | 2014-03-26 | 2016-02-23 | Amazon Technologies, Inc. | Dynamic service debugging in a virtual environment |
JP6207463B2 (ja) | 2014-05-28 | 2017-10-04 | Kddi株式会社 | Itシステムにおけるサーバの性能の抽象化方法および資源管理方法 |
WO2015197564A1 (en) | 2014-06-23 | 2015-12-30 | Getclouder Ltd. | Cloud hosting systems featuring scaling and load balancing with containers |
US10362059B2 (en) * | 2014-09-24 | 2019-07-23 | Oracle International Corporation | Proxy servers within computer subnetworks |
US9396091B2 (en) * | 2014-09-29 | 2016-07-19 | Sap Se | End-to end, lifecycle aware, API management |
US10129078B2 (en) * | 2014-10-30 | 2018-11-13 | Equinix, Inc. | Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US9672123B2 (en) * | 2014-12-31 | 2017-06-06 | Oracle International Corporation | Deploying services on application server cloud with high availability |
US9462427B2 (en) | 2015-01-14 | 2016-10-04 | Kodiak Networks, Inc. | System and method for elastic scaling using a container-based platform |
US10007584B2 (en) | 2015-01-28 | 2018-06-26 | Red Hat, Inc. | Automated container migration in a platform-as-a-service system |
US9930103B2 (en) * | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9727374B2 (en) | 2015-04-21 | 2017-08-08 | International Business Machines Corporation | Temporary virtual machine migration for improved software application warmup |
US9515993B1 (en) | 2015-05-13 | 2016-12-06 | International Business Machines Corporation | Automated migration planning for moving into a setting of multiple firewalls |
US9632914B2 (en) | 2015-05-21 | 2017-04-25 | International Business Machines Corporation | Error diagnostic in a production environment |
US10042697B2 (en) * | 2015-05-28 | 2018-08-07 | Oracle International Corporation | Automatic anomaly detection and resolution system |
US10503532B2 (en) | 2015-06-26 | 2019-12-10 | Vmware, Inc. | Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter |
JP6374845B2 (ja) * | 2015-08-07 | 2018-08-15 | 株式会社日立製作所 | 計算機システム及びコンテナ管理方法 |
US10656929B2 (en) * | 2015-08-11 | 2020-05-19 | International Business Machines Corporation | Autonomously healing microservice-based applications |
US9965261B2 (en) | 2015-08-18 | 2018-05-08 | International Business Machines Corporation | Dependency-based container deployment |
JP6387330B2 (ja) | 2015-08-21 | 2018-09-05 | 日本電信電話株式会社 | 管理サーバ装置及び管理プログラム |
US10623514B2 (en) | 2015-10-13 | 2020-04-14 | Home Box Office, Inc. | Resource response expansion |
CN106603594B (zh) * | 2015-10-15 | 2019-07-09 | 中国电信股份有限公司 | 一种分布式服务的管理方法和系统 |
US10348808B2 (en) * | 2015-10-30 | 2019-07-09 | International Business Machines Corporation | Hybrid cloud applications |
CN105893010A (zh) | 2015-11-17 | 2016-08-24 | 乐视云计算有限公司 | 用于容器部署的主机调度方法及系统 |
US11182140B2 (en) | 2015-11-25 | 2021-11-23 | Red Hat, Inc. | Active representation of a composite application |
US10261782B2 (en) | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10002247B2 (en) * | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
JP6644882B2 (ja) * | 2016-01-15 | 2020-02-12 | グーグル エルエルシー | アプリケーションコンテナを使用するコードおよび従属データの送達の管理 |
US9733834B1 (en) | 2016-01-28 | 2017-08-15 | Weka.IO Ltd. | Congestion mitigation in a distributed storage system |
US10114732B2 (en) | 2016-01-29 | 2018-10-30 | Ca, Inc. | Debugging in-cloud distributed code in live load environment |
US11388037B2 (en) * | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
EP3423941B1 (en) * | 2016-03-04 | 2023-05-10 | Bladelogic, Inc. | Provisioning of containers for virtualized applications |
US10574584B1 (en) | 2016-03-22 | 2020-02-25 | Amazon Technologies, Inc. | Controlling network device capacity |
KR102092722B1 (ko) * | 2016-03-23 | 2020-04-23 | 포그혼 시스템스 인코포레이티드 | 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법 |
JP6680028B2 (ja) * | 2016-03-24 | 2020-04-15 | 日本電気株式会社 | 監視システム、監視方法および監視プログラム |
US9942354B1 (en) | 2016-03-29 | 2018-04-10 | Amazon Technologies, Inc. | Managing service message rates in a computing service environment |
US10594838B2 (en) * | 2016-04-29 | 2020-03-17 | Intuit Inc. | Configuration data as code |
US10496987B2 (en) | 2016-09-13 | 2019-12-03 | Verizon Patent And Licensing Inc. | Containerization of network services |
US10498625B1 (en) * | 2016-10-14 | 2019-12-03 | Amazon Technologies, Inc. | Distributed testing service |
US10942839B2 (en) | 2016-10-28 | 2021-03-09 | Ingram Micro Inc. | System and method for debugging applications on a developer workstation |
US10489215B1 (en) * | 2016-11-02 | 2019-11-26 | Nutanix, Inc. | Long-range distributed resource planning using workload modeling in hyperconverged computing clusters |
US20180165177A1 (en) | 2016-12-08 | 2018-06-14 | Nutanix, Inc. | Debugging distributed web service requests |
CN106776212B (zh) * | 2016-12-09 | 2020-02-25 | 中电科华云信息技术有限公司 | 容器集群部署多进程应用的监管系统及方法 |
US10574736B2 (en) | 2017-01-09 | 2020-02-25 | International Business Machines Corporation | Local microservice development for remote deployment |
US10601871B2 (en) | 2017-01-18 | 2020-03-24 | International Business Machines Corporation | Reconfiguration of security requirements for deployed components of applications |
WO2018177506A1 (en) * | 2017-03-28 | 2018-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for allocating radio resources in a radio access network |
US10356214B2 (en) * | 2017-03-29 | 2019-07-16 | Ca, Inc. | Composing monolithic applications based on multi-container applications |
US11038947B2 (en) | 2017-04-21 | 2021-06-15 | Microsoft Technology Licensing, Llc | Automated constraint-based deployment of microservices to cloud-based server sets |
US10225140B2 (en) * | 2017-04-26 | 2019-03-05 | Oracle International Corporation | Portable instance provisioning framework for cloud services |
US11343352B1 (en) | 2017-06-21 | 2022-05-24 | Amazon Technologies, Inc. | Customer-facing service for service coordination |
JP7203096B2 (ja) | 2017-09-30 | 2023-01-12 | オラクル・インターナショナル・コーポレイション | デプロイされたコンテナプラットフォームにおけるインスタンスのリアルタイムデバッグ |
US10521246B1 (en) | 2018-06-13 | 2019-12-31 | International Business Machines Corporation | Application programming interface endpoint analysis and modification |
-
2018
- 2018-09-28 JP JP2020518500A patent/JP7203096B2/ja active Active
- 2018-09-28 EP EP18793725.5A patent/EP3688595A1/en active Pending
- 2018-09-28 WO PCT/US2018/053628 patent/WO2019068037A1/en active Application Filing
- 2018-09-28 WO PCT/US2018/053626 patent/WO2019068036A1/en active Application Filing
- 2018-09-28 EP EP18793087.0A patent/EP3688594B1/en active Active
- 2018-09-28 JP JP2020518526A patent/JP7246381B2/ja active Active
- 2018-09-28 CN CN201880069160.8A patent/CN111263933A/zh active Pending
- 2018-09-28 JP JP2020518487A patent/JP7182618B2/ja active Active
- 2018-09-28 CN CN202111208805.1A patent/CN114035975A/zh active Pending
- 2018-09-28 WO PCT/US2018/053618 patent/WO2019068029A1/en active Application Filing
- 2018-09-28 US US16/147,334 patent/US10599500B2/en active Active
- 2018-09-28 EP EP18795839.2A patent/EP3688579A1/en not_active Ceased
- 2018-09-28 WO PCT/US2018/053612 patent/WO2019068024A1/en active Application Filing
- 2018-09-28 JP JP2020518519A patent/JP7196164B2/ja active Active
- 2018-09-28 EP EP18792687.8A patent/EP3688592B1/en active Active
- 2018-09-28 CN CN201880069171.6A patent/CN111279319A/zh active Pending
- 2018-09-28 CN CN201880069219.3A patent/CN111279320B/zh active Active
- 2018-09-28 US US16/147,343 patent/US10824489B2/en active Active
- 2018-09-28 EP EP18792690.2A patent/EP3688593B1/en active Active
- 2018-09-28 JP JP2020518513A patent/JP7493450B2/ja active Active
- 2018-09-28 CN CN201880069226.3A patent/CN111279321B/zh active Active
- 2018-09-28 US US16/147,351 patent/US10838788B2/en active Active
- 2018-09-28 CN CN202111007894.3A patent/CN113641460A/zh active Pending
- 2018-09-28 US US16/147,305 patent/US10599499B2/en active Active
- 2018-09-28 CN CN201880069178.8A patent/CN111279309A/zh active Pending
- 2018-09-28 WO PCT/US2018/053620 patent/WO2019068031A1/en active Application Filing
- 2018-09-28 US US16/147,332 patent/US20190102157A1/en active Pending
-
2020
- 2020-03-23 US US16/826,629 patent/US11132241B2/en active Active
- 2020-03-23 US US16/827,090 patent/US11681573B2/en active Active
-
2021
- 2021-09-27 US US17/485,689 patent/US11755393B2/en active Active
-
2022
- 2022-11-21 JP JP2022185721A patent/JP7562619B2/ja active Active
- 2022-12-14 JP JP2022199646A patent/JP7481421B2/ja active Active
-
2023
- 2023-07-13 JP JP2023115382A patent/JP2023139086A/ja active Pending
-
2024
- 2024-04-24 JP JP2024070583A patent/JP2024105342A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7481421B2 (ja) | Apiレジストリにおけるバックエンドサービスエンドポイントからapi関数へのバインディング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240517 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240517 |