osgi based cloud system architecture - open cloud engine
DESCRIPTION
OCE is an OSGi-based Platform As A Service plaform. OSGi makes easy for implementing Enterprise App Store.TRANSCRIPT
PaaS Mission
vs
• Ready-made architecture• All-in-One • One-click integration
PaaS Innovation
Competitors
Provider who using PaaS
Install Integrate DevelopDesign
plug Chooseapps
Modeling & Develop with Open APIs
Fast delivery & Low-cost byready-made Architecture
Optimize for operation
DONE!
PaaS: has modularity issues
• Multiple Services • Mature SaaS Level
Forrester’s PaaS Reference Model SaaS Maturity Level
Java for Enterprise PaaS
• Mission critical• Transactional• Legacy Integration
i.e. J2EE 8’s Multi-ten-ancy and PaaS Spec
• Optimized for SaaS app development (B2C)
• Cloud automation
Java Module System: Class-Loader
i.e. Tomcat’s ClassLoader
OSGi: Standard module system for Java
• Standard
• Simplifies the complex class-
loader issues by
encapsulating-‘Bundle’
• Spring DM and blueprint
• IBM J9 and Java jigsaw roadmap
Platforms using OSGi
• Eclipse plugin Marketplace
• Atlassian plugin Marketplace...
Platforms using OSGi
• Apache ServiceMix WAS
• Glassfish WAS
• JOnAS WAS
OSGi for PaaS
• More modular, so share more (at li-brary level)
• More dynamic, so easily automated
• Provides standard J2EE framework including JAX-RS, JPA and Spring with whiteboard pattern.
Sharing Level• Hypervisor-based PaaS vs. OSGi-based PaaS• Share at library level
Share more, More cheap offering, More Competitive in the market !
Share less, More easy & Secure !
OSGi based PaaS ap-proaches
• Apache Ace and Amdatu• Eclipse Gyrex • Vaadin Arvue Master• WSO2’s Stratos• OCE Garuda
Initiative from Korea!
Build Time Run-Time
Artifacts
BPMN(*.process)
Visual Mashup
BPMNProcess Modeler
Cloud IDE
Vaadin Designer
JAVA
Composite UI
OSGiBundle
packager
AppBundle
Vaadin UI
Calls
Stay In SCM(e.g.Git)
AutomatedBy
CI tool(Jenkins)
Package
Master
HAProxy
App repo.
Netra
App Bundles(*.jar)
VM Template
Instance
PaaS RT
App1
OSGi Container
…
Node1
App2
PaaS RT
App1
OSGi Container
Node2
PaaS RT
OSGi Container
Image
Load infoforwardmessage
Upload to App Store
Tools
An OSGi-based PaaS Architecture(OCE Garuda)
….
instanciation
Exposing Platform Services us-ing OSGi and RESTful APIs
• Using Apache-CXF by white-board pattern
OSGi Container
BPMN
Web 2.0 UI
JAX-RS
JPA
Servlet
Spring
Process Mgmt.
Integration
Persistence
Web Service
AOP / Security
uEngine
Vaadin
Eclipse Link (Gemini)
Jetty
Apache Wink (CXF)
Spring DM
Service Standard Implementation
Application
Whiteboard Pattern
Extender Pattern
Services: RESTful Service
• Filter by annotation: @Path
@Path("saveCustomer")@Consumes(MediaType.APPLICATION_JSON)@Produces(MediaType.TEXT_PLAIN)public String saveCustomer(Customer customer) { }
Services: Vaadin UI Service
@Title("CRM Web Application")public class CustomerUI extends UI { ….}
• Filtered by Class Type: com.vaadin.ui.UI
Services: Multi-tenancy
• Filtered by Bundle Header: X-Multi-ten-ant
• Inherent isolated class-loader• Database isolation by JPA’s @Discrimi-
nator annotation• Tenant information injection by
ThreadLocal• Also BPM engine provides tenant-spe-
cific Business process and logics(rule)
Cloud IDE: Auto OSGi Bundling by Maven
설치 없는 빠른 개발
BPM 플랫폼과 연동되어 빠른 ‘프로세스 앱’ 개발
Import from Cloud - Web Service Import - Database
개발된 결과물 ( 앱 ) 은 OSGi 번들 형식의 표준적 방식으로 패키징됨
J2EE Compliant ▼ Manageable Object Types
▼ Database Objects
Accessing Component Store by
code assist.
Cf. Google Apps Scripts
Cloud IDE: Vaadin UI Platform
UI Design in Vaadin wysiwyg
designer
Source editing in Cloud IDE
Cloud IDE: Process Modeling by BPMN
업무 전문가를 위한 실행가능 프로세스 언어 – BPMN
GUI 기반 비즈니스 룰 정의
웹서비스 통합 (*CSB)
비즈니스 폼 데이터 매핑• DB 쿼리 자동화• SQL 툴
Com
pon
en
ts(o
n O
SG
i)
Services(Exposed
by Apache-
wink)
서비
스 사
용자
서비
스 제
공자
Ten
an
tD
ata
base
SNS Por-tal
BAM Dash-board
OpenSo-cial
Mashups
Serv
ices
Pro
cess
(on
BP
M)
Port
al
En
terp
rise
Ap
ps
Process Apps
ERPServices
서비스(RESTful)
컴포지트
서비스
(Cubrid)DB
Cluster
(FastCat)
Search
CAS SSO / Apache DS EAM
Codi SNS
ERP
ECM
CRM..
Vaadin Custom
UIs
JDBC
ContentsRepository
Service
CustomerServices
Custom Composite
Service
SNSServices
SearchServices
Reusing Sharing the SOA Level-8: Dynamically Re-configurable
App Reg-istry
(App Store
)
Example App: Process based Sales Force Automation
Process PortalCRM App (Vaadin)
SFA Process
RESTful Web Services
Related works:
Process-based OS sharing
(Linux Container)
Hypervisor-based Infra Sharing
Gear (?)-based Shar-ing
Conclusion
• OSGi makes implementing Enterprise PaaS easier by :
–Modularity when to integrate existing J2EE technologies and legacy systems.
– Dynamicity for provisioning S/W compo-nents and services.
– Service Oriented Architecture.
Future works: IoT Plat-form
• BPMN-based IoT modeling• OSGi - SW provisioning on
devices• OCE’s Flamingo – analyze
Big data from Things
Flamingo Big data Analyzer
References
• Paul Bakkar, Bert Ertman, Building Modular Cloud Apps with OSGi, O’REILLEY
• Open Cloud Engine – Garuda Project, http://www.opence.org
• Eclipse Gyrex Project, http://www.eclipse.org/gyrex/
• Apache ACE Project,https://ace.apache.org/