api management reference architecture

29
API Management Reference Architecture 개개 2016.04 HP Enterprise Service Lee, Seong-Bok

Upload: seong-bok-lee

Post on 14-Apr-2017

604 views

Category:

Services


8 download

TRANSCRIPT

Page 1: API Management Reference Architecture

API Management Reference Architecture 개요

2016.04HP Enterprise ServiceLee, Seong-Bok

Page 2: API Management Reference Architecture

내용

• Open API• OpenAPI Management• OpenAPI Reference Architecture• API Management Solutions

Page 3: API Management Reference Architecture

Open API

Page 4: API Management Reference Architecture

Open API 개요

• Application Programming Interface• 소프트웨어가 서로 의사소통을 하는 규약

• 일반적 의미로는 운영체제 , 어플리케이션 , 라이브러리 등 다양한 수준의

인터페이스를 총칭

• 플랫폼의 기능을 외부에서 쓸 수 있도록 개방한 API 를 Open API 라고 함

Page 5: API Management Reference Architecture

Open API 제공 방법

Web Services • 웹 프로토콜로 제공• 소량의 데이터 전송 처리 중심

1

In Services• 완성된 형태로 구현이 가능• 웹 / 앱에 간단한 코드로 서비스 연계 가능

2

SDK • 소켓과 같은 특수 프로토콜 구현• 개발의 편의성

3

Page 6: API Management Reference Architecture

Open API 핵심기술1) 프로토콜관점

1) 통신• HTTP• Streaming ( 실시간 대량 데이터 전송

시 )2) 데이터포맷

• XML• JSON (XML 보다 가볍고 빠른 처리 가

능 )3) 프로토콜

• REST • XML-RPC• SOAP

웹서버에서 처리 가능

Page 7: API Management Reference Architecture

[ 참고 ] 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 을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계

Page 8: API Management Reference Architecture

Open API 핵심기술2) API 비즈니스관점

1) 인증• API 호출 시 허가된 사용자인지 확인• API Key 발급 , OAuth 인증

2) 트래픽 제어• API 허용량 만큼 쓰도록• 서버스케일링

3) 통계• 사용량통계 과금처리• 어뷰징 감지

API Gateway 서버( 웹서버겸용 )

Page 9: API Management Reference Architecture

Open API 핵심기술3) API 개발사관리관점

1) 개발자등록• 기본정보• 애플리케이션정보

2) API 키 발급• API 별 발급• 요청 API 및 사용량

3) 통계• API 사용량 관리• 제휴신청

4) 개발지원• 개발 가이드• 커뮤니티 , Q&A

API 포털

Page 10: API Management Reference Architecture

Open API 핵심 컴포넌트API 포털 서버• 제휴사 정보관리• 키 발급• API 사용관리

인증서버• OAuth 인증• HMAC 인증

통계서버• API 이용로그데이터추출• 통계데이터생성 API 대시보드

캐시서버• 빠른 서비스 속도를 위한 캐싱• 소셜 네트워크에서 서비스가 퍼지는 경우

트래픽이 급증 가능

게이트웨이 서버 ( 웹서버를 포함함 )• 다양한 API 를 묶어 하나로 제공• API 트래픽 제어

- 각 API 에 대한 트래픽 모니터링• API 보안

- 3rdparty 에 API 서버 은닉- 이용자 식별을 위해 인증처리

• API 사용 로깅- 서비스별 API 사용현황 집계- 향후 서버 증설 시점 예측

Page 11: API Management Reference Architecture

API Management

Page 12: API Management Reference Architecture

API Management?• Forrester – API Management• Gartner – Application Service Governance• 누구는 API Platform

어쨌든 기본적으로는 API Gateway + Developer Portal 을 의미

• REST 같은 인터페이스를 사용해서 외부 ( 의 어플리케이션 ) 에 API 를 제공하는 기능 영역

• API 를 관리하는 하위 시스템들 또는 기능들로 구성된 영역

• 개발자가 필요한 API 와 관련 상세 내용을 찾아보고 테스트할 수 있는 웹사이트

Page 13: API Management Reference Architecture

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: 업무처리를 위해 WEB apps 이나 Mobile 앱을 사용하는 최종 사용자

Page 14: API Management Reference Architecture

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 개발자

Page 15: API Management Reference Architecture

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 providers.

Page 16: API Management Reference Architecture

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-con-tent

Page 17: API Management Reference Architecture

[ 참고 ]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) 사용자 고유의 요소 ( 예 :  생체인식 및 행동 메트릭 솔루션 )

Page 18: API Management Reference Architecture

[ 참고 ]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 을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있다 . 「헤더」는 선택사항으로 반복이나 보안 및 트랜젝션을 정보로 하는 메타 정보를 가지고 있다 . 「바디」부분은 주요한 정보인 정보를 가지고 있다 .

Page 19: API Management Reference Architecture

API Reference Archi-tecture

Page 20: API Management Reference Architecture

API Reference ArchitecturePr

ovid

er

Sys-

tem

s

Cons

umer

Management Devel-oper PortalLicense Key Man-

agementAPI Meta-Data

RepositoryLife

Cycle Management

Billing Analytics

Gateway

Translation

License KeyAuthentica-

tion

Throttling

Access Con-trol

Applica-tions

Identity Manage-

mentFinancials

API

Man

agem

ent

Consumer Applica-

tions

Web APIs

DeveloperThe consumers of the APIs

The API Management itself

The provider systems that the API Man-agement interfaces with.

Page 21: API Management Reference Architecture

API Reference Architecture 의 구성요소

REST 같은 인터페이스를 사용해서 외부 ( 의 어플리케이션 ) 에 API 를

제공 . Translation :

내부 어플리케이션 인터페이스를 web API 로 사용될 수 있는 형태로 변환 ( 보통 SOAP/XML과 REST/JSON 간의 변환 )

데이터 필드나 필터 변환을 쉽게 함으로써 내부 인터페이스에서 제공하는 기능을 외부 사용자들이 사용할 수 있게 함

Licence Key Authentica-tion : 최초 등록 후 부여된 라이선스 키로 API 호출 호출 때마다 키 검증

Throttling : 라이선스에 따라 호출할 수 있는 API 양을 제한

Access Control : Identity 관리 시스템과 연동하여 외부 어플리케이션이 제공하는 identity 정보를 가지고 내부 API 에 접근하는 것을 통제

GatewayAPI 를 관리하는 하위 시스템들로

구성되며 공급사의 담당자들이 사용 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 상세내역을 발표

Page 22: API Management Reference Architecture

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 Authenti-cation

API Identity (AuthN & AuthZ, API key, OAuth, SAML, LDAP, proprietary IAM, multi-factor, 토큰 변환 / 관리 )API Security (SSL, PKI, threat protection, schema validation, encryption, signa-tures, 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 지원 )

Manage-ment

License Key Man-agement

Developer and App OnBoarding (Client ID/App Key generation, Interactive API console)

API Meta-data Reposi-tory

Data Protection(Data encryption, Data masking etc for PCI/PII compliance)

Life Cycle Manage-ment

API Lifecycle governance (Versioning)

Billing API metering, Billing and MonetizationAnalytics Analytics & Traffic Monitoring

Operational Integration (System Monitoring, Clustering, Scalability, Migration)Portal API 제공 API Discovery (Catalog, Search and Provisioning, API test)

Community Manage-ment

Community Management (Blogs, Forums, Social features, 사용자 etc)

Page 23: API Management Reference Architecture

API Management Suite

Page 24: API Management Reference Architecture

REST API Reference Architecture

SOAP/RESTand Legacy

Web ServicesService Bus

API Gateway

API Portal

API Clients

Develop-ers

4

2

Proto-colsHTTP, SOAP, REST, XML JMSFTP

REST

JWTOAM, SMBasic Auth, X.509

1Service BusDirectly accessed by internal clients, provides:• Routing, mediation,

versioning - abstracts backend services from internal clients• Heavy duty payload

transformations• Protocol translation for

legacy apps

2API GatewayExposes 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

3RepositoryProvides:• API catalog• API dependency

analysis• API lifecycle

management

4API 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

SecurityWS-Security,Basic Auth,Digest,X509, UNT,SAML, KerberosSign & Encrypt

Repository31

Page 25: API Management Reference Architecture

API 관리의 대표적인 모델

Page 26: API Management Reference Architecture

API 관리의 응용Web API 의 구현 클라우드 기반의 API 관리

Page 27: API Management Reference Architecture

API 관리의 응용기업 내 / 외부에서의 API 사용

Page 28: API Management Reference Architecture

API Management 솔루션 연혁

2013년 CA 에 합병

2013년 5 월 Intel 에 합병

2013년 Axway 에 합병

Page 29: API Management Reference Architecture

© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Thank you