비즈니스전문가를위한 PaaS 플랫폼 구축전략 유엔진오픈소스프로젝트장진영 jyjang@uengine.org
PaaS 의정의 PaaS 는인프라와함께개발환경까지리스하는것 What are PaaS users looking for?
PaaS 의정의 - 예시 Play My Code 는웹상에서바로게임을개발, 경연, 서비스한다. 클라우드 IDE 를위해서는코드보안성이중요하다
PaaS Reference Architecture Gartner s
PaaS Reference Architecture Forrester s
PaaS 의시장의플랫폼전쟁 ( 독점적 ) PaaS 제공자들의영토전쟁
Open PaaS 의필요성
Open PaaS 의필요성 PaaS 는이식성, 표준성이따라주지않으면기업에도입하기힘들다.
Nice 한 PaaS 가되기위해서필요한것은.. 각자를연결해보세요 Nice PaaS Platform Open Source Open Architecture Social Business Support Security & Quality Model-Driven Tooling UX Portability Governance RIA Builders BPM/BRE/BI Gamification Cloud ALM N-Screen Support Social Coding APM
PaaS for Business Expert 비즈니스목표중심의어플리케이션구현은모델중심의아키텍처를가져감 비즈니스목표 사업계획 기능목표 모델중심 스펙문서 구현목표 소스코드
PaaS for Business Expert 비즈니스전문가를위한 PaaS 가뜬다. Morgan Stanley 클라우드시장전망 (2011) PaaS for Business Expert 2015 년이후독립적인 PaaS 가시장주도 현재 PaaS 는 SaaS 혹은 IaaS 에종속적이나향후 2~3 년이내에 PaaS 자체가클라우드시장을주도할전망 확장형 PaaS 의높은시장가치전망 (50 억불시장 )
PaaS for Business Expert BPaaS 는 Process Orchestration Approach 를추구한다. Ref) Gartner research 비즈니스프로세스모델링과 Orchestration 을통해플랫폼독립적이고 Loosely coupled 된비즈니스애플리케이션개발
Process Orchestration Approach PaaS for Business Expert BPaaS 는 SOA 의성숙도수준을모든 IT 조직에균등한품질로유지할수있도록한다 IBM s SOA Maturity Model Level 7
새로운오픈소스프로젝트 Open PaaS 프로젝트명 : 미정 ( 지금까지는.. 프로세스코디 & 메타웍스 ) 라이센스 : 오픈소스라이센스 (MIT) 개발시점 : 2011년 9월부터 ~ 목표 : 국내개발자중심의오픈소스 PaaS 플랫폼 프로젝트위치 : http://code.google.com/p/metaworks3/ 범위 : 1.Cloud IDE java and javascript, and multi-language support 2.Cloud ALM (Application Lifecycle Management) 3.Application Platform WAS, security, mongo DB, structured DBMS, cache 4.Integration Platform EAI, SOA, REST mashup 5.Model Platform BPM, BRE, BI 6.UI Framework Model-driven UI, POJO support
Open PaaS 의아키텍처와참여자 Your App Your App Your App HTML5 및메타데이터기반 N-Screen 지원 어플리케이션및데이터베이스서버 PaaS Portal Process Codi PaaS Platform Common Component User Interface Framework Model Platform Integration Platform Application Platform SaaS Security Framework Multi-Tenancy Support Auto-Scaling Metering / Logging / Authentication PaaS IDE 여러분의소셜코딩의힘으로!!! Open Flamingo BPM, ESB, CEP 등 SOA 아키텍처제공 클라우드 IDE
Open PaaS 구현노트 클라우드 IDE 객체유형 클래스 자바리소스 HTML 자바스크립트 엔티티 DAO 프로세스 룰 디시젼테이블 디시젼트리 폼
Open PaaS 구현노트 클라우드 IDE 순수웹기반 IDE Ace Editor 사용 Java7 컴파일 javax.javacompiler 사용 실행및동적클래스변경 Janino 의 JavaSourceClassLoade r 사용 코드어시스턴스 mw3 사용 컴파일오류 시스템접근클래스 ( 파일시스템 ) 등의사용을차단 PMD 기반오류 잘못유입될무한반복코드등을차단
Open PaaS 구현노트 어플리케이션플랫폼 엔티티디자이너및 DAO 생성기 1. DB 접근은 JDBC 라이브러리를제공하지않기때문에직접접근하지못하고대신 JPA 표준으로 DAO 를생성하여표준을맞추고 ORMapping 기능은메타웍스 3 이수행함 2. 데이터접근에관한일종의 Proxy 를두기때문에미터링, 빌링이가능한데이터를플랫폼이수집하게됨
Open PaaS 구현노트 어플리케이션플랫폼 Mongo DB (unstructured DB) 1. 몽고 DB 를접근하는 API 를 Spring 으로 Autowired 하여사용할수있음. 2. 직접적인몽고 DB API 접근은메인클래스로더에의하여차단됨 3. Spring 을경유하여사용해야하기때문에미터링과빌링을 Advisor 에의하여처리함 4. ThreadLocal 에의하여진입시점에가입자 ( 태넌트 ) 에대한메타데이터가들어오기때문에이를기반으로미터링할수있게됨 5. Spring 자체의설정기능을제공하고자하는경우는 Spring 대신에 Jboss 의 Byteman 을사용할수있음
Open PaaS 구현노트 UI 프레임워크 메타웍스 3 자바 - 자바스크립트매핑프레임워크 GWT 와다르게 POJO 순수성을지향 컴포넌트 -As-A-Service 를겨냥한플랫폼컴포넌트포장규격 Open PaaS 플랫폼의모든 UI ( 클라우드 IDE, 클라우드 ALM) 를담당함 이클립스의 SWT 의역할! 1. 내부적으로 DWR 을통하여자바 - 자바스크립트간 RMI 를처리 2. EJS 템플릿언어를기반하여클라이언트 - 사이드에서 JSON 을 HTML 로렌더링하여표준기반의빠른 RIA 를생성할수있음 3. 기존에사용하던자바스크립트및자바컴포넌트를어노테이션 (@) 기반으로래핑하여메타웍스 3 컴포넌트로빠르게포장할수있음
Open PaaS 구현노트 UI 프레임워크 메타웍스 3 메타웍스 3 컴포넌트래핑예시 구글챠트컴포넌트 자바 = 모델 HTML = Face 자바스크립트 = FaceHelper
Open PaaS 구현노트 UI 프레임워크 메타웍스 3 컴포넌트조합 화이트박스사용 Import assistance 로빠르게컴포넌트 import 동적컴파일 & 클래스로딩으로바로실행결과확인
Open PaaS 구현노트 UI 프레임워크 메타웍스 3 컴포넌트사용 블랙박스사용 1. 멀티태넌트가각자의리소스를등록가능토록하려면객체에어노테이션 @Resource 를부여 2. 컴포넌트사용시엔템플릿에채워넣기식으로리소스나설정변경만으로사용할수있음 컴포넌트저작시 컴포넌트사용시
Open PaaS 구현노트 클라우드 IDE - 모바일시뮬레이션 폰갭 Phonegap.js 를시뮬레이션해줌 빠르게웹앱을테스팅한후실제타겟디바이스에맞추어프로젝트를 export 시켜사용 진동기, LBS, 카메라등대부분의폰갭디바이스접근 JS API 를시뮬레이션시킴 ( 로드맵 )
Open PaaS 구현노트 모델플랫폼 비즈니스규칙편집및실행기 (BRMS & BRE) 업무전문가가최대한쉽게다룰수있도록비즈니스규칙변경을용이하게함 보험료산출, 금융대출심사, 투자리스크관리등광범위하게적용됨 웹기반룰디자이너 mw3 기반개발 동적실행 프로세스와연계
Open PaaS 구현노트 모델플랫폼 비즈니스프로세스디자이너 ( 매시업 ) 및엔진 업무전문가가룰과클래스들을업무프로세스와연결하여비즈니스환경변화에적응력을높힘 현재기존유에진프로세스디자이너를확장 순수웹으로 4 월정도전환예정 동적실행
Open PaaS 구현노트 어플리케이션플랫폼 Security Framework << 빌드타임 >> << 런타임 >> User App Source Cloud IDE PMD 정적분석 ( 무한반복등점검 ) 컴파일 Compiled User App 업로드된라이브러리 (jar) CodiClassLoader (extends URLClassLoader) ( 시스템접근차단 ) CodiDwrServlet ( 모든외부접근의경로 )
예제어플리케이션 금융권 금융대출심사 ASP 서비스 프로세스자동화와룰엔진의결합등모델플랫폼을쉽게관리하여서비스를할수있는분야 소셜비즈니스어플리케이션 소셜네트워크와연결된기업의오픈이노베이션, 협업등의어플리케이션 소셜커머스어플리케이션 소셜네트워크게임 모바일비즈니스어플리케이션 웹앱모바일어플리케이션 상대적으로비즈니스용도에적합
이런사용자에게적합 직접고객 기술구현보다는비즈니스모델구현에집중하고싶다 커스터마이징이용이한환경이필요하고벤더종속이되기싫다 조직전반의 IT 거버넌스이슈를쉽게관리해야한다 IT 프로젝트마다의개발기및미들웨어설치 / 교육 / 관리비용 플랫폼제공자 자체플랫폼에대한개발자를빠르게끌어들이고싶은경우클라우드 IDE 와소셜코딩개념을통하여빠르게플랫폼확산효과를보고자할때
참, 구현이중요한게아니라플랫폼이성공할까? 개발자들이써야한다 진입장벽이낮아야한다. 클라우드 IDE 로조금극복 재미있어야한다. 지속적으로흥미를잃지않도록유지시켜야한다. 개발자들이들끓어야한다. 서로경합하거나, 자극이될수있어야한다 서로부족한면을보완할수있으면좋다 집단지성? 달성하고, 성공하는모습이최대한공유될수록좋다
Gamification 의사례 Heroku.com 눈을의심하지마세요.. PaaS 플랫폼의 UI 랍니다 개발운용에필요한리소스들을게임아이템처럼보여주는대시보드
소셜코딩지원 이왕웹상에서컴파일, 실행이다되는마당에페이스북에서코딩못할것없지않은가? 친구중에는훌륭한경험을갖고있어문제해결을빨리해줄수있다.
소셜코딩지원 소셜코딩에고려사항들어느수준까지공유할것인가? 해당개발아이템팔로워 해당개발아이템팔로워의친구 전체공개 ( 플랫폼팔로워 ) 보안문제는어떻게할것인가? 외부화한문제해결의경우접근리소스설정 ( 예 : 데이터소스는접근못함등 ) PMD 룰설정통한특정표현잠금 수많은 Submit 들을모두테스팅할것인가? 테스팅자동화프로세스 요건정의시 평가보상은어떻게할것인가? 평가보상프로세스자동화 프로세스기반 ALM 의필요성 (Application Lifecycle Management)
유사한접근 오픈소스 PaaS AppScale : a GAE open source clone 소셜코딩 & 클라우드 IDE Github Cloud9 IDE PaaS for 비즈니스전문가 Cordys Run-my-workflow (in Google App Market) WorkXpress
로드맵 - 개발측면 국내외오픈소스 BI 플랫폼통합 맵 - 리듀스엔진및매시업툴인 오픈플라밍고 통합 맵 - 리듀스 Trigger 프로세스액티비티개발 Olap4Cube Hive 기반 OLAP server 통합 클라우드 IDE + 사례기반 KM/ 추천시스템 라인디버깅지원 개발자가닥친상황의실시간분석 해결방안추천 Line-By-Line Locking 채팅기반협업코딩 100% 폰갭시뮬레이션 샘플어플리케이션 Best Practices 금융, 제조, 소셜앱, 모바일앱등 웹표준기반 RIA applications mw3 의기능은어디까지가한계이며, 어디까지추상화되는가?
로드맵 그외 홍보및에반젤라이징활동 컴포넌트 / 앱경연레포지토리구축 관련국내외커뮤니티리더의참여의뢰 페이스북코딩어플 프로젝트명칭공모 트레이닝투어 관심있으신학교와기업은등록해주세요무상교육실시 문서화 문서및동영상오픈 Slideshare and 유튜브 오픈문서화프로세스 테스팅 IaaS 환경테스팅 보안뚫기 Hack the Open PaaS? 행사 개발기 - 운영기분리 운영기는 OpenShift / AppScale 등과연결테스팅
플랫폼비즈니스 집단지성이필요합니다. 오픈이노베이션기반의플랫폼을고민하시는분들 저를추가해주세요 ^^