Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
Optimize for operation
DONE!
PaaS: has modularity issues• Multiple Services • Mature SaaS Level
Java for Enterprise PaaS
• Mission critical• Transactional• Legacy Integration
i.e. J2EE 8’s Multi-tenancy and PaaS Spec
• Optimized for SaaS app development (B2C)
• Cloud automation
Java Module System: ClassLoader
i.e. Tomcat’s ClassLoader
OSGi: Standard module system for Java
• Standard
• Simplifies the complex classloader
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 library 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 more, More cheap offering, More Competitive in the market !
Share less, More easy & Secure !
OSGi based PaaS approaches
• Apache Ace and Amdatu
• uEclipse 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 infoforward
message
Upload to App Store
Tools
An OSGi-based PaaS Architecture(OCE Garuda)
….
instanciation
Exposing Platform Services using 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 {
….}
• Using whiteboard pattern, platform pickups filtered by Class Type: com.vaadin.ui.UI
Services: Multi-tenancy
• Filtered by Bundle Header: X-Multi-tenant
• Inherent isolated class-loader
• Database isolation by JPA’s @Discriminator annotation
• Tenant information injection by ThreadLocal
• Also BPM engine provides tenant-specific 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 Vaadinwysiwyg designer
Source editing in Cloud IDE
Cloud IDE: BPMN Process Modeler
업무 전문가를 위한실행가능 프로세스언어 – BPMN
GUI기반 비즈니스 룰정의
웹서비스 통합 (*CSB)
비즈니스 폼
데이터 매핑• DB 쿼리 자동화• SQL 툴
Com
ponents
(on O
SG
i)
Services(Exposed by Apache-wink
)
서비
스사
용자
서비
스제
공자
Tenant
Data
base
SNS PortalBAM
DashboardOpenSocialMashups
Serv
ices
Pro
cess
(on B
PM
)Port
al
Ente
rprise
A
pps
Process Apps
ERPServices
서비스(RESTful)
컴포지트
서비스
(Cubrid)DB
Cluster
(FastCat)
Search
CAS SSO / Apache DS EAM
Codi SNSERP
ECM
CRM..
VaadinCustom UIs
JDBC
ContentsRepository
Service
CustomerServices
Custom Composite
Service
SNSServices
SearchServices
Reusing the mature SOA Architecture
App Registry
(App Store)
Related works:
Process-based Isolation(Linux Container)
Hypervisor-based Isolation
Gear ?
Conclusion
• OSGi makes implementing Enterprise PaaS easier by :
– Modularity when to integrate existing J2EE technologies and legacy systems.
– Dynamicity for handling components and services.
– Service Oriented Architecture.
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/