본문 바로가기
정보공유

[정보] API Management Reference Architecture

by 날고싶은커피향 2018. 4. 10.

API Management Reference Architecture  관련 정보 입니다.

많은 참고 하시기 바랍니다.

 

API Management Reference Architecture from Seong-Bok Lee

 

 1. API Management Reference Architecture 개요 2016.04 HP Enterprise Service Lee, Seong-Bok
 2.  내용 • Open API • OpenAPI Management • OpenAPI Reference Architecture • API Management Solutions
 3.  Open API
 4.  Open API 개요 • Application Programming Interface • 소프트웨어가 서로 의사소통을 하는 규약 • 일반적 의미로는 운영체제, 어플리케이션, 라이브러리 등 다양한 수준의 인터페이스를 총칭 • 플랫폼의 기능을 외부에서 쓸 수 있도록 개방한 API를 Open API라고 함
5.  Open API 제공 방법 Web Services • 웹 프로토콜로 제공 • 소량의 데이터 전송 처리 중심 1 In Services • 완성된 형태로 구현이 가능 • 웹/앱에 간단한 코드로 서비스 연계 가능 2 SDK • 소켓과 같은 특수 프로토콜 구현 • 개발의 편의성 3
 6.  Open API 핵심기술 1) 프로토콜관점 1) 통신 • HTTP • Streaming (실시간 대량 데이터 전송 시) 2) 데이터포맷 • XML • JSON (XML보다 가볍고 빠른 처리 가능) 3) 프로토콜 • REST • XML-RPC • SOAP 웹서버에서 처리 가능
7.  [참고] Open API 통신 방법 프로토콜 관점의 주요 통신 방법 REST(Representational State Transfer) • 월드 와이드 웹 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식 • 도메인 지향 데이터를 http위에서 soap이나 쿠키를 통한 세션 트랙킹 같은 부가적인 전송 레이어없이 전송하기 위한 아주 간단한 인터페이스 • 엄격한 의미의 REST는 네트워크 아키텍처 원리의 모음으로 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법에 대한 개괄 • 리모트 프로시저 콜을 이용하는 대신에 간단한 xml과 http 인터페이스를 이용하여 커다란 소프트웨어 시스템 설계 가능 XML-RPC • RPC프로토콜의 일종 • 코딩 형식은 xml을 선택하고 전송방식은 http를 사용 • Xml-RPC의 경우는 클라이언트/서버 방식으로 동작하여 서버가 반드시 필요 SOAP(Simple Object Access Protocol) • HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜 • SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반. • SOAP에는 몇 가지 형태의 메시지 패턴이 있지만 보통의 경우 원격 프로시저 호출 패턴으로 네트워크 노드에서 다른 쪽 노 드쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답 • XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계
8.  Open API 핵심기술 2) API 비즈니스관점 1) 인증 • API 호출 시 허가된 사용자인지 확인 • API Key 발급, OAuth인증 2) 트래픽 제어 • API 허용량 만큼 쓰도록 • 서버스케일링 3) 통계 • 사용량통계  과금처리 • 어뷰징 감지 API Gateway 서버 (웹서버겸용)
9.  Open API 핵심기술 3) API 개발사관리관점 1) 개발자등록 • 기본정보 • 애플리케이션정보 2) API 키 발급 • API 별 발급 • 요청API 및 사용량 3) 통계 • API 사용량 관리 • 제휴신청 4) 개발지원 • 개발 가이드 • 커뮤니티, Q&A API 포털
10.  Open API 핵심 컴포넌트 API 포털 서버 • 제휴사 정보관리 • 키 발급 • API 사용관리 인증서버 • OAuth인증 • HMAC 인증 통계서버 • API 이용로그데이터추출 • 통계데이터생성 API 대시보드 캐시서버 • 빠른 서비스 속도를 위한 캐싱 • 소셜 네트워크에서 서비스가 퍼지는 경우 트 래픽이 급증 가능 게이트웨이 서버(웹서버를 포함함) • 다양한 API를 묶어 하나로 제공 • API 트래픽 제어 - 각 API에 대한 트래픽 모니터링 • API 보안 - 3rdparty에 API 서버 은닉 - 이용자 식별을 위해 인증처리 • API 사용 로깅 - 서비스별 API 사용현황 집계 - 향후 서버 증설 시점 예측
11.  API Management
 12.  API Management? • Forrester – API Management • Gartner – Application Service Governance • 누구는 API Platform 어쨌든 기본적으로는 API Gateway + Developer Portal을 의미 • REST같은 인터페이스를 사용 해서 외부(의 어플리케이션)에 API를 제공하는 기능 영역 • API를 관리하는 하위 시스템들 또는 기능들 로 구성된 영역 • 개발자가 필요한 API와 관련 상세 내용을 찾아보고 테스트할 수 있는 웹사이트
13.  Business Model for API - 이해관계자들 API Provider: 비즈니스 서비스와 데이터를 갖고 있는 핵심 이해관계자 API Publisher: • API 관리 솔루션을 이용하는 비즈니스 서비스와 데이터를 통해 업무용 API를 발행하는 기술적 협력사 • 충분한 IT 인프라와 인력을 가진 조직으로 in-house나 상업용 호스팅 서비스에 API 관리 솔루션을 설치하고 설정. API Store: API 사용자를 위한 기술적, 업무적 정보를 제공하는 사설 또는 공공의 API 게시 장소 (programmableweb가 공공 API store의 사례) API Consumer: API를 사용해서 어플리케이션을 개발하는 API 개발자(모바일 앱 개발자, 웹 앱 개발자부터 엔터프라이즈 개발자까지) App Store: 모바일/스마트 기기의 앱 자체, 모바일 사용자들이 다운로드/구매하는 앱을 위한 공개된 시장 WEB Apps: 최종 사용자에게 다양한 업무상의 기능을 제공하기 위해 개발된 웹 기반의 어플리케이션 Application Consumers: 업무처리를 위해
14.  API Management의 개념도 • API Usage Analytics • Latency Analytics • Performance Metrics • Exception Metrics • Application API Key Management • Consuming Application Management • API Documentation • API Subscription Management • API Discovery and Catalog • API Life Cycle Management Internal, Partner, 3rd party 개발자, API 소유자 API개발자
15.  API Management Platform의 역할 Exposing, securing, governing, monitoring APIs; deploying an API store for internal or external use. • configured as an API gateway delivering traffic shaping, API key validation, URL mapping, security credential mediation, and service level tracking. • capture business activity, usage activity, policy decision events, policy violations, policy exceptions, and governance key performance indicators. IT and Business users may analyze high-volume activity and use governance dashboards to view key performance indicators, policy exceptions, and compliance. • store API meta-data defining interface, API service level tiers, back-end service dependencies, developer documentation, and API subscriptions. • analyzes business activity over time and triggers notifications, automatic systems management actions, application performance tuning, corrective workflows, and human tasks. • manages identity and policy-driven entitlements, determines context-based entitlement assertions, delivers role based access control decisions, generates access keys and tokens, provisions applications, facilitates single sign-on, maps credentials, federates identity repositories and identity
 16.  API Management Platforms이 갖추어야 할 기능  API Security (SSL, PKI, threat protection, schema validation, encryption, signatures, etc)  API Identity (AuthN & AuthZ, API key, OAuth, SAML, LDAP, proprietary IAM, multifactor, token translation & management)  API Orchestration (adaptation of multiple services, workflow operations, branching policies, etc.)  Traffic Mediation (SOAP to REST mediation, data format transformation, legacy application integration)  Traffic Shaping(Rate limitation, Caching etc)  Deployment Flexibility (on-premise, cloud, managed service, SaaS, hybrid)  Uniform interface/proxy to multiple backend messaging protocols (JMS, RMI etc)  Developer and App OnBoarding (Client ID/App Key generation, Interactive API console)  API Lifecycle governance (Versioning)  Analytics & Traffic Monitoring  API metering, Billing and Monetization  Data Protection(Data encryption, Data masking etc for PCI/PII compliance)  Mobile Optimization (Pagination, Compression, JSON etc)  Operational Integration (System Monitoring, Clustering, Scalability, Migration)  Mobile Integration (support for push notifications, geolocation, streaming protocols)  Cloud Integration (SSO to SaaS providers, IaaS integration, SaaS data connectors, hybrid cloud support)  API Discovery (Catalog, Search and Provisioning)  Community Management (Blogs, Forums, Social features etc) http://www.infoq.com/research/api-management?utm_source=infoqresearch&utm_campaign=rr-content
 17.  [참고] Oauth(Open Authentication) Open API를 이용할 때 사용되는 표준화된 인증방법. 매쉬업 서비스로 만들어진 애플리케이션(Application) 또는 웹서비스가 다른 어플리케이션 또는 서비스의 사용자 정보에 접근할 때 사용되는 인증 방법 SAML(Security Assertion Markup Language) OASIS(Organization for the Advancement of Structured Information Standards)에서 제정한 XML 기반의 보안 표준 언어. 플랫폼 거래 파트너들이 인증 정보, 권한 부여 정보 그리고 프로파일 정보를 안전하게 교환할 수 있도록 설계된 표준으로, 기업 내부 또는 기업 간의 SSO(Single sign-on)를 제공하고 기업 보안 인프라 구조에 종속되지 않는 장점 LDAP(Lightweight Directory Access Protocol), 디렉터리 데이터베이스에 접속하기 위한 통신 규약으로 디렉터리 정보의 등록, 갱신, 삭제 및 검색 등을 실행. 통신망을 이용한 이용자 메일 주소나 이용자의 정보를 검색하는 데 주로 사용 IAM(Identity and Access Management) ID와 패스워드를 종합적으로 관리해 주는 역할 기반의 사용자 계정 관리 솔루션. ID 도용이나 분실로 인한 보안 사고에 대비하여 보안 관리자에게는 사용자 역할에 따른 계정 관리를, 사용자에게는 자신의 패스워드에 대한 자체 관리 기능을 제공한다. 또한 시스템과 각종 자원에 대해 고객ㆍ기업 내 사용자ㆍ관리자 등의 접근을 제어할 수 있어, 한 번의 ID와 패스워드 입력으로 다양한 시스템에 접속할 수 있도록 싱글 사인온(SSO)이나 ID에 따라 사용 권한을 차등적으로 부여하는 엑스트라넷 접근 관리(EAM)를 확장 또는 보완한 것, Multifactor Authentication (다중 인증) 아래 세 가지 요소 중 두 가지 이상을 조합하여 인증하는 방식. 일명 ‘2차인증’ 1) 사용자가 알고 있는 것(예: 아이디, 패스워드), 2) 사용자가 가지고 있는 것(예: 공인인증서, OTP, 모바일 디바이스 및 웹 토큰) , 3) 사용자 고유의 요소(예: 생체인식 및 행동 메트릭 솔루션)
 18.  [참고] JMS(Java Message Service) 네트워크에서 컴퓨터간 메시징이라는 일반 통신을 지원하는 선 마이크로시스템즈사의 응용 프로그램 인터페이스(API). 표준 메시징 프로토콜과 자바 프로그램 지원을 받아 특별 메시징 서비스를 제공하고, 자바 메시지를 주고 받는 자바 애플리케이션을 개발하는데 사용한다. 또한, 기업 메시징 시스템 액세스를 위한 API로서, 컴퓨터간 데이터 교환, 이벤트 안내, 서비스 요구 사항 등과 같은 정보를 포함하는 메시지를 비동기적으로 주고 받는 비즈니스 애플리케이션을 작성하고 다른 시스템이나 다른 언어로 쓰여진 프로그램을 일원화하는데 주로 사용되며, 자바 객체를 포함한 메시지와 XML 페이지를 포함한 메시지를 지원한다. RMI (Remote Method Invocation) 분산 시스템에서 상대의 자바 객체를 호출할 수 있는 프로토콜. 자바 객체가 네트워크상 어느 곳에 있던 간에 서로 통신할 수 있게 해주는 기능으로, 네트워크로 연결된 다른 컴퓨터에 존재하는 메소드를 마치 내 컴퓨터에 있는 듯이 호출해서 사용하게 된다. 원격 절차 호출(RPC)의 자바 버전으로, 프로그래머가 소켓 통신에 대한 고려 없이 원격 메소드 호출(RMI) 관련 등급만으로 프로그램을 작성하면 자바 하부에서 네트워크에 관련된 처리를 담당해 준다. 공동 객체 요구 매개자 구조(CORBA)의 객체 모델을 도입하고, 이를 단순화해 객체의 이동이나 분산된 객체의 접속을 가능하게 해주는 자바 객체만을 위해 설계된 것이다. 따라서 다른 언어로 작성된 컴포넌트를 사용하지 않는다. SOAP(Simple Object Access Protocol) 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다. SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다. SOAP에는 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call: RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 된다. SOAP는 XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)와 상호 중립성(interaction neutrality)의 개념을 가져왔다. SOAP은 XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있다. 「헤더」는 선택사항으로 반복이나 보안 및 트랜젝 션을 정보로 하는 메타 정보를 가지고 있다. 「바디」부분은 주요한 정보인 정보를 가지고 있다.
19.  API Reference Architecture
 20.  API Reference Architecture Provider Systems Consumer Management Developer Portal License Key Management API Meta-Data Repository Life Cycle Management Billing Analytics Gateway Translation License Key Authentication Throttling Access Control Applications Identity Management Financials APIManagement Consumer Applications Web APIs Developer The consumers of the APIs The API Management itself The provider systems that the API Management interfaces with.
 21.  API Reference Architecture의 구성요소 REST같은 인터페이스를 사용해서 외부(의 어플리케이션)에 API를 제 공.  Translation :  내부 어플리케이션 인터페이스를 web API로 사용될 수 있는 형태로 변환(보통 SOAP/XML과 REST/JSON간의 변환)  데이터 필드나 필터 변환을 쉽게 함으로써 내부 인터페이스에서 제 공하는 기능을 외부 사용자들이 사용할 수 있게 함  Licence Key Authentication : 최초 등록 후 부여된 라이선스 키로 API호출  호출 때마다 키 검증  Throttling : 라이선스에 따라 호출할 수 있는 API 양을 제한  Access Control : Identity 관리 시스 템과 연동하여 외부 어플리케이션이 제공하는 identity 정보를 가지고 내부 API에 접근하는 것을 통제 Gateway API를 관리하는 하위 시스템들로 구 성되며 공급사의 담당자들이 사용  Licence Key Management : 라이선스 키와 관련 정책들을 관리. 사용자 라이선스와 라이선스 유형을 관리.  API Meta-Data Repository : API 관련 모든 데이터 관리(인터페이 스, 데이터 스키마, 관련 정책 등)  Life Cycle Management : API의 생성, 공개(publication), 버전 관리(versioning), 폐지 등의 전 라이 프사이클 관리  Billing : 과금을 위해 API 사용량 모니터링  보통 공급사의 재무시스템과 연결됨  Analytics : API 사용에 관한 정보를 제공 Management Portal 개발자가 필요한 API와 관련 상세 내 용을 찾아볼 수 있는 웹사이트 • 개발자가 자신의 어플리케이션에 삽입할 수 있는 라이선스 키 획득 • “How to” information to get a developer quickly up to speed in integrating the API with their applications. • API를 테스트해 볼 수 있는 방법 • 댓글이나 포럼과 같은 기능(Social aspects) • programmable web.같은 외부 사 이트에 API 상세내역을 발표
22.  API Management Architecture 구성요소별 기능 영역 구성요소 기능 Gateway Translation Traffic Mediation (SOAP to REST mediation, data format transformation, legacy application 통 합) Uniform interface/proxy to multiple backend messaging protocols (JMS, RMI etc) Mobile Optimization (Pagination, Compression, JSON etc) License Key Authentication API Identity (AuthN & AuthZ, API key, OAuth, SAML, LDAP, proprietary IAM, multifactor, 토큰 변환/관리) API Security (SSL, PKI, threat protection, schema validation, encryption, signatures, etc) Throttling API Orchestration (다중 서비스 채택, workflow operations, branching policies, etc.) Traffic Shaping(Rate limitation, Caching etc) Access Control Deployment Flexibility (on-premise, cloud, managed service, SaaS, hybrid) Mobile Integration (support for push notifications, geolocation, streaming protocols) Cloud Integration (SSO to SaaS providers, IaaS integration, SaaS data connectors, hybrid cloud 지원) Management License Key Management Developer and App OnBoarding (Client ID/App Key generation, Interactive API console) API Meta-data Repository Data Protection(Data encryption, Data masking etc for PCI/PII compliance) Life Cycle Management API Lifecycle governance (Versioning) Billing API metering, Billing and Monetization Analytics Analytics & Traffic Monitoring
 23.  API Management Suite
 24.  REST API Reference Architecture SOAP/REST and Legacy Web ServicesService Bus API Gatewa y API Portal API Clients Developers 4 2 Protocols HTTP, SOAP, REST, XML JMS FTP RES T JWT OAM, SM Basic Auth, X.509 1 Service Bus Directly accessed by internal clients, provides: • Routing, mediation, versioning - abstracts backend services from internal clients • Heavy duty payload transformations • Protocol translation for legacy apps 2 API Gateway Exposes API’s to the external world, provides: • API Key generation/validation • Access enforcement • OAUTH Server • Rate Limiting / Client Throttling • Response caching • API virtualization in the DMZ • Security token & protocol mediation • Firewalling, method/parameter whitelisting • API aggregation & mash-up • API usage measurement & reporting 3 Repository Provides: • API catalog • API dependency analysis • API lifecycle management 4 API Portal External developer portal, sits on top of API repository & API gateway - provides: • Self service registration, onboarding • “API marketplace” • API documentation, forums, blogs, support • API Key delivery • API testing tools • Visualization of runtime usage metrics / monitoring • Billing Security WS-Security, Basic Auth, Digest, X509, UNT, SAML, Kerberos Sign & Encrypt Repository3 1
 25.  API 관리의 대표적인 모델
26.  API 관리의 응용 Web API의 구현 클라우드 기반의 API 관리
27.  API 관리의 응용 기업 내/외부에서의 API 사용
28.  API Management 솔루션 연혁 2013년 CA에 합병 2013년 5월 Intel에 합병 2013년 Axway에 합병
29.  © Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Thank you

반응형