MLchartDataset catalogue

Patent · US10511651B2 · B2 · US

Infinite micro-services architecture

(11) Publication number
US10511651B2
(21) Application number
15/496,101
(22) Filing date
2017-04-25
(30) Priority date
2017-04-25
(43) Publication date
2019-12-17
(45) Date of grant
2019-12-17
(51) IPC
H04L 29/06; H04L 29/12; H04L 29/08
(52) CPC
  • H04L Transmission of digital information, e.g. telegraphic communication: 67/02, 61/106
(73) Assignee
General Electric Co
(72) Inventors
Akshay Sahu
(54) Title
Infinite micro-services architecture
(57) Abstract

A plurality of micro-services is automatically registered with a central data storage device. During registration, a mapping is determined between intermediate identifiers that identify selected micro-services and physical addresses of one or more servers that execute the selected micro-services. At least one of the physical addresses are dynamically updated based upon operational changes to the one or more servers or based upon a registration of an additional server.

Full text
View on Google Patents

Claims (6)

  1. A method, comprising: automatically registering a plurality of micro-services with a central data storage device, the registering including determining a mapping between intermediate identifiers that identify selected micro-services and physical addresses of one or more servers that execute the selected micro-services, wherein each intermediate identifier of the intermediate identifiers is one or more of a name or a name space and is not an address; executing a first micro-service using computer code including a first instruction, the first micro-service programmatically calling a second micro-service in the computer code with the first instruction including an intermediate identifier, the intermediate identifier being of the form of an x.y pair wherein x represents a name and y represents a type of authentication, the intermediate identifier being a first x.y pair or a second x.y pair, wherein the first x.y pair and the second x. y pair are fixed and do not change, the first micro-service using the second micro-service and calling the second micro-service via the intermediate identifier that identifies the second micro-service; wherein the first x.y pair maps to a first prioritized table and the second x.y pair maps to a second prioritized table; wherein the first prioritized table comprises a first plurality of first URLs arranged in a ranked priority order, each of the first URLs being a server address of a different server; wherein the second prioritized table comprises a second plurality of second URLs arranged in a ranked priority order, each of the second URLs being a server address of a different server; wherein when a server associated with a URL becomes disabled a first message is sent to the central data storage device, and responsively the URL of the disabled server is reduced in priority or removed from one or more of the first prioritized table or the second prioritized table, and the ranked priority order of one or more of the first prioritized table or the second prioritized table is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein when a new server with a new URL that executes the new micro-service comes on line a second message is sent to the central data storage device, and responsively the new URL of the new server is added to one or more of the first prioritized table or the second prioritized table and the ranked priority order is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the second micro-service is executed from the computer code by mapping the first x.y to the first prioritized table when the first x.y is being used, or by mapping the second x.y pair to the second prioritized table when the second x.y pair is being used, and subsequently utilizing the highest priority URL obtained from the first prioritized table or from the second prioritized table.
  2. The method of claim 1, wherein a customer device executes the first micro-service.
  3. The method of claim 1, wherein the registering further includes mapping each of the intermediate identifiers to one or more of: a HTTP method, an input consumption by a selected micro-service, an output production by a selected micro-service, and a version number.
  4. A system, comprising: a central data storage device; a plurality of servers executing a plurality of micro-services, wherein each of the servers executes a selected one of the plurality of micro-services, the plurality of servers being coupled to the central data storage device; wherein each of the plurality of micro-services registers with the central data storage device by determining a mapping between intermediate identifiers that identify selected ones of the micro-services and physical addresses of the servers, wherein each intermediate identifier of the intermediate identifiers is one or more of a name or a name space and is not an address; wherein a first micro-service is executed using computer code including a first instruction, the first micro-service programmatically calling a second micro-service in the computer code with the first instruction with an intermediate identifier, the intermediate identifier being of the form of an x.y pair wherein x represents a name and y represents a type of authentication, the intermediate identifier being a first x.y pair or a second x.y pair, wherein the first x.y pair and the second x. y pair are fixed and do not change, the first micro-service using the second micro-service and calling the second micro-service via the intermediate identifier that identifies the second micro-service; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the first prioritized table comprises a first plurality of first URLs arranged in a ranked priority order, each of the URLs being a server address of a different server; wherein the second prioritized table comprises a second plurality of second URLs arranged in a ranked priority order, each of the second URLs being a server address of a different server; wherein when a server associated with a URL becomes disabled a first message is sent to the central data storage device, and responsively the URL of the disabled server is reduced in priority or removed from one or more of the first prioritized table or the second prioritized table, and the ranked priority order of one or more of the first prioritized table or the second prioritized table is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein when a new server with a new URL that executes the new micro-service comes on line a second message is sent to the central data storage device, and responsively the new URL of the new server is added to one or more of the first prioritized table or the second prioritized table and the ranked priority order is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the second micro-service is executed from the computer code by mapping the first x.y to the first prioritized table when the first x.y is being used, or by mapping the second x.y pair to the second prioritized table when the second x.y pair is being used, and subsequently utilizing the highest priority URL obtained from the first prioritized table or from the second prioritized table.
  5. The system of claim 4, wherein a customer device requests execution of the first micro-service.
  6. The system of claim 4, wherein the mapping further maps each of the intermediate identifiers to one or more of: a HTTP method, an input consumption by a selected micro-service, an output production by a selected micro-service, and a version number.

Description

Field of the Invention

The subject matter disclosed herein generally relates micro-services and, more specifically, to accessing and executing these micro-services.

Brief Description of the Related Art

Computing systems utilize micro-services to, among other things, process and display information to users. In aspects, a micro-service is a component (e.g., a component written in software) that performs a single unit of work. The unit of work may be defined as the accomplishment of a work function. For example, micro-services can be used within a web page to display price, display suppliers, or display product ratings, to mention a few examples. Other example of micro-services include micro-services for validation of code (e.g., determine if there are viruses in the code), micro-services that provide user authentication, and micro-services that provide for classification of data.

Micro-services can be executed as layers, by calling (or executing) other micro-services. Micro-services, however, are not independently aware of the physical addresses of the dependent micro-services. In-order for one micro-service to call another micro-service, the calling micro-service requires knowledge of the physical address of the called micro-services. In other words, the addresses were static and the code of the calling micro-service was embedded with the physical address of the called micro-service.

This type of architecture created various problems. If the physical addresses of the called micro-service changed, then calling micro-service would need to be reconfigured and re-deployed.

Citations (21)

  • US8230050B1
  • US9524167B1
  • US20100299437A1
  • US20120185506A1
  • US20170329588A1
  • US20160182473A1
  • US20180152534A1
  • US20170244593A1
  • US20170235950A1
  • US20180034924A1
  • US20180041515A1
  • US20180113790A1
  • US20180113707A1
  • US20180115635A1
  • US20180121221A1
  • US20180307524A1
  • US20180146068A1
  • US20180160153A1
  • US10013550B1
  • US20180270125A1
  • US20180331905A1
Record as JSON
{
  "publication_number": "US10511651B2",
  "country": "US",
  "kind": "B2",
  "title": "Infinite micro-services architecture",
  "abstract": "A plurality of micro-services is automatically registered with a central data storage device. During registration, a mapping is determined between intermediate identifiers that identify selected micro-services and physical addresses of one or more servers that execute the selected micro-services. At least one of the physical addresses are dynamically updated based upon operational changes to the one or more servers or based upon a registration of an additional server.",
  "claims": [
    "1. A method, comprising: automatically registering a plurality of micro-services with a central data storage device, the registering including determining a mapping between intermediate identifiers that identify selected micro-services and physical addresses of one or more servers that execute the selected micro-services, wherein each intermediate identifier of the intermediate identifiers is one or more of a name or a name space and is not an address; executing a first micro-service using computer code including a first instruction, the first micro-service programmatically calling a second micro-service in the computer code with the first instruction including an intermediate identifier, the intermediate identifier being of the form of an x.y pair wherein x represents a name and y represents a type of authentication, the intermediate identifier being a first x.y pair or a second x.y pair, wherein the first x.y pair and the second x. y pair are fixed and do not change, the first micro-service using the second micro-service and calling the second micro-service via the intermediate identifier that identifies the second micro-service; wherein the first x.y pair maps to a first prioritized table and the second x.y pair maps to a second prioritized table; wherein the first prioritized table comprises a first plurality of first URLs arranged in a ranked priority order, each of the first URLs being a server address of a different server; wherein the second prioritized table comprises a second plurality of second URLs arranged in a ranked priority order, each of the second URLs being a server address of a different server; wherein when a server associated with a URL becomes disabled a first message is sent to the central data storage device, and responsively the URL of the disabled server is reduced in priority or removed from one or more of the first prioritized table or the second prioritized table, and the ranked priority order of one or more of the first prioritized table or the second prioritized table is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein when a new server with a new URL that executes the new micro-service comes on line a second message is sent to the central data storage device, and responsively the new URL of the new server is added to one or more of the first prioritized table or the second prioritized table and the ranked priority order is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the second micro-service is executed from the computer code by mapping the first x.y to the first prioritized table when the first x.y is being used, or by mapping the second x.y pair to the second prioritized table when the second x.y pair is being used, and subsequently utilizing the highest priority URL obtained from the first prioritized table or from the second prioritized table.",
    "2. The method of claim 1, wherein a customer device executes the first micro-service.",
    "3. The method of claim 1, wherein the registering further includes mapping each of the intermediate identifiers to one or more of: a HTTP method, an input consumption by a selected micro-service, an output production by a selected micro-service, and a version number.",
    "4. A system, comprising: a central data storage device; a plurality of servers executing a plurality of micro-services, wherein each of the servers executes a selected one of the plurality of micro-services, the plurality of servers being coupled to the central data storage device; wherein each of the plurality of micro-services registers with the central data storage device by determining a mapping between intermediate identifiers that identify selected ones of the micro-services and physical addresses of the servers, wherein each intermediate identifier of the intermediate identifiers is one or more of a name or a name space and is not an address; wherein a first micro-service is executed using computer code including a first instruction, the first micro-service programmatically calling a second micro-service in the computer code with the first instruction with an intermediate identifier, the intermediate identifier being of the form of an x.y pair wherein x represents a name and y represents a type of authentication, the intermediate identifier being a first x.y pair or a second x.y pair, wherein the first x.y pair and the second x. y pair are fixed and do not change, the first micro-service using the second micro-service and calling the second micro-service via the intermediate identifier that identifies the second micro-service; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the first prioritized table comprises a first plurality of first URLs arranged in a ranked priority order, each of the URLs being a server address of a different server; wherein the second prioritized table comprises a second plurality of second URLs arranged in a ranked priority order, each of the second URLs being a server address of a different server; wherein when a server associated with a URL becomes disabled a first message is sent to the central data storage device, and responsively the URL of the disabled server is reduced in priority or removed from one or more of the first prioritized table or the second prioritized table, and the ranked priority order of one or more of the first prioritized table or the second prioritized table is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein when a new server with a new URL that executes the new micro-service comes on line a second message is sent to the central data storage device, and responsively the new URL of the new server is added to one or more of the first prioritized table or the second prioritized table and the ranked priority order is readjusted and wherein the computer code and the intermediate identifier in the first instruction remain unchanged; wherein the computer code is executed including the first instruction and a determination is made as to whether the first x.y pair is being used or the second x.y pair is being used; wherein the second micro-service is executed from the computer code by mapping the first x.y to the first prioritized table when the first x.y is being used, or by mapping the second x.y pair to the second prioritized table when the second x.y pair is being used, and subsequently utilizing the highest priority URL obtained from the first prioritized table or from the second prioritized table.",
    "5. The system of claim 4, wherein a customer device requests execution of the first micro-service.",
    "6. The system of claim 4, wherein the mapping further maps each of the intermediate identifiers to one or more of: a HTTP method, an input consumption by a selected micro-service, an output production by a selected micro-service, and a version number."
  ],
  "description_excerpt": "Field of the Invention\n\nThe subject matter disclosed herein generally relates micro-services and, more specifically, to accessing and executing these micro-services.\n\nBrief Description of the Related Art\n\nComputing systems utilize micro-services to, among other things, process and display information to users. In aspects, a micro-service is a component (e.g., a component written in software) that performs a single unit of work. The unit of work may be defined as the accomplishment of a work function. For example, micro-services can be used within a web page to display price, display suppliers, or display product ratings, to mention a few examples. Other example of micro-services include micro-services for validation of code (e.g., determine if there are viruses in the code), micro-services that provide user authentication, and micro-services that provide for classification of data.\n\nMicro-services can be executed as layers, by calling (or executing) other micro-services. Micro-services, however, are not independently aware of the physical addresses of the dependent micro-services. In-order for one micro-service to call another micro-service, the calling micro-service requires knowledge of the physical address of the called micro-services. In other words, the addresses were static and the code of the calling micro-service was embedded with the physical address of the called micro-service.\n\nThis type of architecture created various problems. If the physical addresses of the called micro-service changed, then calling micro-service would need to be reconfigured and re-deployed.",
  "cpc": [
    "H04L 67/02",
    "H04L 61/106"
  ],
  "ipc": [
    "H04L 29/06",
    "H04L 29/12",
    "H04L 29/08"
  ],
  "assignees": [
    "General Electric Co"
  ],
  "inventors": [
    "Akshay Sahu"
  ],
  "filing_date": "2017-04-25",
  "publication_date": "2019-12-17",
  "grant_date": "2019-12-17",
  "priority_date": "2017-04-25",
  "application_number": "US-201715496101-A",
  "family_id": "63854769",
  "cited_by_count": 7,
  "citations": [
    "US8230050B1",
    "US9524167B1",
    "US20100299437A1",
    "US20120185506A1",
    "US20170329588A1",
    "US20160182473A1",
    "US20180152534A1",
    "US20170244593A1",
    "US20170235950A1",
    "US20180034924A1",
    "US20180041515A1",
    "US20180113790A1",
    "US20180113707A1",
    "US20180115635A1",
    "US20180121221A1",
    "US20180307524A1",
    "US20180146068A1",
    "US20180160153A1",
    "US10013550B1",
    "US20180270125A1",
    "US20180331905A1"
  ]
}

Record 2,393 of 8,000 in Patents full text (MLC-0201). Request the full dataset.