osgi based cloud system architecture - open cloud engine

Post on 10-Sep-2014

237 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

OCE 의장 장진영Rick.jang@opence.org

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/

top related