osgi based cloud system architecture - open cloud engine

28
2014 한한한한한한한한한한한한한 OSGi 와 SOA 와와와 와와와와 와와와 와와와와 OCE 한한 한한한 [email protected]

Upload: uenginesolutions

Post on 10-Sep-2014

237 views

Category:

Software


2 download

DESCRIPTION

OCE is an OSGi-based Platform As A Service plaform. OSGi makes easy for implementing Enterprise App Store.

TRANSCRIPT

Page 1: Osgi based cloud system architecture - Open Cloud Engine

2014 한국소프트웨어아키텍트대회

OSGi 와 SOA 기반의 클라우드 플랫폼 아키텍처

OCE 의장 장진영[email protected]

Page 2: Osgi based cloud system architecture - Open Cloud Engine

PaaS Mission

vs

• Ready-made architecture• All-in-One • One-click integration

Page 3: Osgi based cloud system architecture - Open Cloud Engine

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!

Page 4: Osgi based cloud system architecture - Open Cloud Engine

PaaS: has modularity issues

• Multiple Services • Mature SaaS Level

Forrester’s PaaS Reference Model SaaS Maturity Level

Page 5: Osgi based cloud system architecture - Open Cloud Engine

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

Page 6: Osgi based cloud system architecture - Open Cloud Engine

Java Module System: Class-Loader

i.e. Tomcat’s ClassLoader

Page 7: Osgi based cloud system architecture - Open Cloud Engine

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

Page 8: Osgi based cloud system architecture - Open Cloud Engine

Platforms using OSGi

• Eclipse plugin Marketplace

• Atlassian plugin Marketplace... 

Page 9: Osgi based cloud system architecture - Open Cloud Engine

Platforms using OSGi

• Apache ServiceMix WAS

• Glassfish WAS

• JOnAS WAS

Page 10: Osgi based cloud system architecture - Open Cloud Engine

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.

Page 11: Osgi based cloud system architecture - Open Cloud Engine

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 !

Page 12: Osgi based cloud system architecture - Open Cloud Engine

OSGi based PaaS ap-proaches

• Apache Ace and Amdatu• Eclipse Gyrex • Vaadin Arvue Master• WSO2’s Stratos• OCE Garuda

Initiative from Korea!

Page 13: Osgi based cloud system architecture - Open Cloud Engine

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

Page 14: Osgi based cloud system architecture - Open Cloud Engine

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

Page 15: Osgi based cloud system architecture - Open Cloud Engine

Whiteboard Pattern

Page 16: Osgi based cloud system architecture - Open Cloud Engine

Extender Pattern

Page 17: Osgi based cloud system architecture - Open Cloud Engine

Services: RESTful Service

• Filter by annotation: @Path

@Path("saveCustomer")@Consumes(MediaType.APPLICATION_JSON)@Produces(MediaType.TEXT_PLAIN)public String saveCustomer(Customer customer) {     }

Page 18: Osgi based cloud system architecture - Open Cloud Engine

Services: Vaadin UI Service

@Title("CRM Web Application")public class CustomerUI extends UI { ….}

• Filtered by Class Type: com.vaadin.ui.UI

Page 19: Osgi based cloud system architecture - Open Cloud Engine

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)

Page 20: Osgi based cloud system architecture - Open Cloud Engine

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

Page 21: Osgi based cloud system architecture - Open Cloud Engine

Cloud IDE: Vaadin UI Platform

UI Design in Vaadin wysiwyg

designer

Source editing in Cloud IDE

Page 22: Osgi based cloud system architecture - Open Cloud Engine

Cloud IDE: Process Modeling by BPMN

업무 전문가를 위한 실행가능 프로세스 언어 – BPMN

GUI 기반 비즈니스 룰 정의

웹서비스 통합 (*CSB)

비즈니스 폼 데이터 매핑• DB 쿼리 자동화• SQL 툴

Page 23: Osgi based cloud system architecture - Open Cloud Engine

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

)

Page 24: Osgi based cloud system architecture - Open Cloud Engine

Example App: Process based Sales Force Automation

Process PortalCRM App (Vaadin)

SFA Process

RESTful Web Services

Page 25: Osgi based cloud system architecture - Open Cloud Engine

Related works:

Process-based OS sharing

(Linux Container)

Hypervisor-based Infra Sharing

Gear (?)-based Shar-ing

Page 26: Osgi based cloud system architecture - Open Cloud Engine

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.

Page 27: Osgi based cloud system architecture - Open Cloud Engine

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

Page 28: Osgi based cloud system architecture - Open Cloud Engine

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/