NHN 포털서비스플랫폼 한규흥랩장 NHN 서비스플랫폼개발랩 2008 년 11 월 22 일 - 이발표자료는나눔글꼴로작성했습니다.
목차 1. Backgrounds 2. Goals 3. Strategy 4. Web Service Architecture 5. Development Environment 6. Runtime Environment 7. Demo 1
Backgrounds Trend & Issues 서비스수 / 규모 시스템구성 분산 IDC 사용자중심 서비스품질 Mash-Up UX의다양성 대응속도안정성 개발기간 / 비용 운영 / 유지보수비용 전문엔지니어부족 2 Multi-National Global 아웃소싱
Goals 무엇을어떻게? 전문화 표준화 자동화 프레임워크 재사용 프로세스화 개발환경 라이브러리 실행환경 운영환경 3
Strategy SOA Approach SOA CBD OOP 4
Strategy 컴포넌트기반의웹서비스구조 Web 서비스 (UX Service) Blog Cafe 영화부동산여행 서비스공통컴포넌트 (SOA) Mash-Up Mash-Up 서비스고유기능 Mash-Up ( 지식iN, Blog, Café, 동영상,...) 기획공통기능 ( 게시판, 태그 Mash-Up, 폴, 덧글,...) Mash-Up Mash-Up 시스템기능 (Cache, Mash-Up MQ, Notification, ErrLog,...) Mash-Up 인프라 Mash-Up 기능 ( 검색, 광고, DB, Storage, Mash-Up 멤버쉽,...) 5
Strategy NHN ESB(Enterprise Service Bus) MOM, Centralized Management, Security,... 6
Web Service Architecture Reference Web Service Architecture (3-Tier) Tier 1 UX Service Tier 2 Comp. Service Tier 3 Resource/Platform UI S-BO Svc s Client (Internet Browser) Admin Tool Digital Converge nce Integrated Admin Logic Convergence Platform Messaging Platform (NIMM) A-BO M-BO BO BO Messaging Platform (NIMM) Common Platform Access Common Resource Access ADs DNS Customer Intelligence Membership Management Billing & Stored Value Infra Platforms DB Storage CMS Search Cache 7
Development Environment UX Service - Layout, UIO, BO, and Binding Layout UIO BO 한핏줄영화 BO 추천영화 BO 영화예매순위 BO 웹페이지 Page = UIOs + BOs + Binding rule Service = ( pages ) 8
Development Environment Data Model & Binding Static Binding(Design-time) Dynamic Binding(Runtime) Data Model Design Template Page Template Page User Request Data Model BO BO
Development Environment Design Studio for UX Service Web Publishing System (WPS) WYSIWYG Style Collaboration Drag&Drop Data Binding Preview & Test 10
Development Environment 통합개발홖경 (IDE) for BO Service Eclipse Plug-in Style Project Wizard Resource Wizard Procedure Wizard Exec./Debug/Profiling Property Editor Configuration Editor Code Assistant Etc... 11
Development Environment URA(Uniform Resource Access) for Interface // Name Space 기반 Object Access ( Service.BOPackage.Ver ) RequestBroker objrb = CreateObject("com.naver.Cafe.boQnA.1.0.1") ; // Data Model 기반 Parameter 처리 HRESULT hrslt = objrb.execute( Method, DataModel inparams, DataModel outparams) ; If ( hrslt == TRUE) { strtitle = outparams.getdata("title") ; } else { strerrmsg = outparams.getdata("errmsg") ; } Delete objrb ; // App의수정없이 BOPackage의배포서버를 Runtime에서관장 // App으로부터리소스 (BO 서버, Infra etc) 의물리적인구조를분리 논리적인구조만으로접근 // Java, C++ 인터페이스제공 12
Runtime Environment, Runtime Env., and Framework Framework Support USF MSF-BOX BLOC Web UI App.Svc (C++) Biz.Logic (Java) Uniform Resource Access Interface Runtime Environment (ESB) Service (SOA) Messaging Platform (Message-Routing, Load-Balancing, Fault-Tolerance, Security,...) Service 지식 in Blog Cafe 동영상 Uniform Resource Access Interface Infra. Database Storage Membership 검색 Common Feature 게시판 덧글 스마트에디터 스팸 / 보안필터 System 캐시 메시지큐 트랜잭션관리 Notification Install Update Monitoring Recovery Tracing Management Platform 부동산 빌링 공통태그 Presence 영화 광고 지도 ACL 13
Runtime Environment 메시징플랫폼 (NIMM) 성능및확장성 Framework Support USF MSF-BOX BLOC App.Svc Biz.Logic Web UI (C++) (Java) Uniform Resource Access Interface Runtime Environment (ESB) Service (SOA) Messaging Platform (Message-Routing, Load-Balancing, Fault-Tolerance, Security,...) Uniform Resource Access Interface Service Infra. Common Feature System 지식iN Database 게시판캐시 Blog Storage 덧글메시지큐 Cafe Membership 스마트에디터트랜잭션관리동영상검색스팸 / 보안필터 Notification Install Update Monitoring Recovery Tracing Management Platform 부동산 빌링 공통태그 Presence 영화 광고 지도 ACL 그림 2. NHN 내부자료 ( 자체테스트결과 ) - CPU Intel Xeon CPU 2.0GHz * 2 - RAM 2GB 14
Runtime Environment USF(UI Framework) Presentation Runtime Engine UIO 기반의 HTML 페이지생성기능프리젠테이션로직과비즈니스로직개발의독립성보장 Remote 및 Local의 BO 수행을통한 Dynamic Binding 기능스크립트를이용한데이터가공런타임시에페이지내에 UIO를동적으로재배치권한제어웹애플리케이션개발자의편의를위한다양한기능 Exception Handler URA UsfDispatcher Runtime Engine USF ServiceExecutor Result Generator UsfFilter TemplateMethod Loader Scripting Engine Manager Freemarker Runtime Config Builder Configuration Loader Framework Support USF MSF-BOX BLOC App.Svc Biz.Logic Web UI (C++) (Java) Runtime Environment (ESB) Service (SOA) Uniform Resource Access Interface Messaging Platform (Message-Routing, Load-Balancing, Fault-Tolerance, Security,...) Uniform Resource Access Interface Service Infra. Common Feature System 지식iN Database 게시판캐시 Blog Storage 덧글메시지큐 Cafe Membership 스마트에디터트랜잭션관리동영상검색스팸 / 보안필터 Notification 부동산빌링공통태그 Presence 영화광고지도 ACL Install Update Monitoring Recovery Tracing Management Platform Lucy (common) Tomcat 15
Runtime Environment BLOC(Biz. Logic Object Container) 비즈니스로직을서비스하는컨테이너프레임워크 플랫폼에독립적다양한프로토콜지원고성능의 I/O, Thread 모델제공 Biz. Logic 서비스의간단한구현 Hot Deploy 지원선언적전 / 후처리기지원 MQ, Cache 기능지원모니터링, 통계, 원격관리기능통합개발홖경지원 (To Be) Framework Support USF MSF-BOX BLOC App.Svc Biz.Logic Web UI (C++) (Java) Uniform Resource Access Interface Runtime Environment (ESB) Service Messaging Platform (Message-Routing, Load-Balancing, Fault-Tolerance, Security,...) Uniform Resource Access Interface Service Infra. Common Feature System 지식iN Database 게시판캐시 Blog Storage 덧글메시지큐 Cafe Membership 스마트에디터트랜잭션관리 Install Update Monitoring Recovery Tracing Management Platform (SOA) 동영상 검색 스팸 / 보안필터 Notification 부동산 빌링 공통태그 Presence 영화 광고 지도 ACL 16
Runtime Environment Request Broker (URA + Parallel Request) Async 기반 (Sync 지원 ) Parallel Request 가능 Uniform Resource Access Namespace 기반 Resource&Function 접근 RPC model NHN Data exchange Hessian 기반의 Binary 수준의 Data Exchange 지원 표준 XML 포맷지원 다양한 Transport 지원 NIMM for Internal HTTP for External (SOAP/REST) Etc.. Hessian+ Uniform Resource Access Interface Namespace Data Exchange Layer(NDX) XML Async/Sync Request Data Formats Message Exchange Layer(NMX) Framework Support USF MSF-BOX BLOC App.Svc Biz.Logic Web UI (C++) (Java) Uniform Resource Access Interface Runtime Environment (ESB) Service Messaging Platform (Message-Routing, Load-Balancing, Fault-Tolerance, Security,...) Uniform Resource Access Interface Service Infra. Common Feature System 지식iN Database 게시판캐시 Blog Storage 덧글메시지큐 Cafe Membership 스마트에디터트랜잭션관리 Install Update Monitoring Recovery Tracing Management Platform NIMM SOAP Protocols (SOA) 동영상 검색 스팸 / 보안필터 Notification 부동산 빌링 공통태그 Presence 영화 광고 지도 ACL 17
Runtime Environment Parallel Request Technology AS-IS TO-BE Service Page R1 R2 R3... Rn Service Page max(ri+ti) Request Broker Messaging Platform R1+T1 R2+T2 R3+T3... BO #1 BO #2 BO #3 BO #1 BO #2 BO #3 BO #n Rn+Tn BO #n n i 1 R i max( R i T ) max( i R i ) 컴포넌트 i 를호출하여결과를수신하는데걸리는시간을 Ri 라고하였을때, Parallel Request 기술을사용하면 n 개의컴포넌트를호출하여결과를수신하는데 max(ri) 의시간이소요 된다. 18
Demo 19