API 게이트웨이와 ESB의 차이점은 무엇입니까? [닫은]


20

내가 일하는 회사는 웹 서비스의 통제, 계량 및 보안을위한 미들웨어 솔루션을 평가하고 있습니다. 현재는이 목적으로 ESB (Enterprise Service Bus)를 사용하고 있지만, 일부 관리 담당자는 API Management Middleware를 배포하기로 결정했습니다.

API 관리 (일명 API Gateway) 솔루션에 대해 조금 연구했지만 실제 ESB와의 차이점을 찾을 수 없었습니다. Mule, WSO2, Oracle 등의 백서를 평가했지만 두 제품에서 제공하는 기능은 거의 동일한 것 같습니다. 문제는 ESB가 할 수없는 API 관리 기능과 그 반대의 문제입니다. API Gateway의 ESB를 교체하여 IT 인프라에 어떤 가치를 추가 할 수 있습니까?


4
소프트웨어 엔지니어링 토론에서 "API 게이트웨이와 ESB의 차이점은 무엇입니까?"라는 주제가 어떻게 다른가요?
Francisco d' Anconia

답변:


21

개념이 혼란스러워지는 이유는 공급 업체가 개념을 패키지로 판매하기 때문입니다. 그러나 그것들은 분명히 별개의 개념입니다.

API 게이트웨이는 공개적으로 노출 된 웹 서비스에 대한 액세스를 관리, 모니터링 및 보호하기위한 중앙 액세스 지점을 제공합니다. 또한 단일 호스트에서 온 것처럼 서로 다른 엔드 포인트에서 서비스를 통합 할 수 있습니다. 예를 들어 단일 "스위트"서비스의 일부인 10 개의 서로 다른 서비스 엔드 포인트가 있다고 가정 해 보겠습니다. 서비스 소비자에게 한 서비스에는 service1.yourcompany.com을, 다른 서비스에는 service2.yourcompany.com 등을 사용하도록 알리지 않고 대신 api.yourcompany.com/service1 또는 api.yourcompany.com을 가리킬 수 있습니다. / service2 및 게이트웨이는 요청을 적절한 엔드 포인트로 경로 재 지정합니다.

ESB는 응용 프로그램과 서비스가 서로 연결되지 않은 방식으로 서로 통신 할 수 있도록하는 내부 "버스"입니다. 모든 응용 프로그램은 버스에 연결될 수 있으며 다른 응용 프로그램에서 게시 할 때 관심있는 메시지를 수신 할 수 있습니다. 또한 다른 응용 프로그램이 수신하고 응답 할 수있는 자체 메시지를 게시 할 수도 있습니다. 응용 프로그램은 서로 직접 연결할 책임이 없으며 메시지를 버스에 게시하고 모든 관련 당사자가 듣고 반응합니다.

논리적으로 API Gateway는 ESB를 대체하는 것이 아니라 서비스 지향 아키텍처를 개선 한 것입니다.


1
ESB 사용에 대한 주장은 동일하다고 생각합니다. ESB는 중앙 액세스 포인트이며 서로 다른 엔드 포인트에서 서비스의로드 밸런싱, 모니터링, 미터링 및 보안을 수행 할 수 있습니다. 개별 서비스의 URL 대신 ESB의 URL을 소비자에게 전달할 수도 있습니다. 지금까지 새로운 것은 없습니다.
dliber

ESB is internal API Gateway는 외부 사용을위한 것입니다. ESB 대신 내부적으로 API Gateway를 사용하려는 경우 막을 방법이 없습니다.
Michael Brown

그것이 바로 요점입니다. ESB 및 API 플랫폼의 기능이 겹칩니다. 외부 액세스 용 ESB 또는 내부 액세스 용 API 플랫폼을 배포 할 수 있습니다. 기능이 동일하면 다른 기능 대신 다른 기능을 사용하면 어떤 이점이 있습니까? 무엇이 다른 점이있어 다른 하나 대신 (또는 둘 다) 사용하여 비즈니스에 진정한 가치를 제공 할 수 있습니까?
dliber

ESB는 대량의 트래픽을 위해 설계되었습니다. 일반적으로 독점적이거나 인터넷에 친화적이지 않은 프로토콜이 있습니다. API 게이트웨이는 인터넷 프로토콜 (SOAP, JSON, XML, HL7)간에 변환하고 요청을 ESB에 배치하도록 설계되었습니다. 기본적으로 내부 서비스 간의 통신을 위해 게이트웨이를 사용할 수 있으므로 반드시 최적의 상태로 만드는 것은 아닙니다.
Michael Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.