2014 osgi와 soa 기반의클라우드 플랫폼아키텍처 · stay in scm (e.g.git) automated by...

26
2014 한국소프트웨어아키텍트대회 OSGi SOA 기반의 클라우드 플랫폼 아키텍처 OCE 의장 장진영 [email protected]

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

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

OCE 의장 장진영

[email protected]

Page 2: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

PaaS Mission

vs

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

Page 3: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

PaaS Innovation

Competitors

Provider who using PaaS

Install Integrate DevelopDesign

plug Chooseapps

Modeling & Develop with Open APIs

Optimize for operation

DONE!

Page 4: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

PaaS: has modularity issues• Multiple Services • Mature SaaS Level

Page 5: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

Page 6: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Java Module System: ClassLoader

i.e. Tomcat’s ClassLoader

Page 7: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

Page 8: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Platforms using OSGi

• Eclipse plugin Marketplace

• Atlassian plugin Marketplace...

Page 9: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Platforms using OSGi

• Apache ServiceMix WAS

• Glassfish WAS

• JOnAS WAS

Page 10: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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.

Page 11: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Sharing Level• Hypervisor-based PaaS vs. OSGi-based PaaS

Share more, More cheap offering, More Competitive in the market !

Share less, More easy & Secure !

Page 12: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

OSGi based PaaS approaches

• Apache Ace and Amdatu

• uEclipse Gyrex

• Vaadin Arvue Master

• WSO2’s Stratos

• OCE Garuda Initiative from Korea!

Page 13: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

Page 14: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

Page 15: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Whiteboard Pattern

Page 16: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Extender Pattern

Page 17: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Services: RESTful Service

• Filter by annotation: @Path

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

}

Page 18: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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

Page 19: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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)

Page 20: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Cloud IDE: Vaadin UI Platform

UI Design in Vaadinwysiwyg designer

Source editing in Cloud IDE

Page 22: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Cloud IDE: BPMN Process Modeler

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

GUI기반 비즈니스 룰정의

웹서비스 통합 (*CSB)

비즈니스 폼

데이터 매핑• DB 쿼리 자동화• SQL 툴

Page 23: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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)

Page 24: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

Related works:

Process-based Isolation(Linux Container)

Hypervisor-based Isolation

Gear ?

Page 25: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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.

Page 26: 2014 OSGi와 SOA 기반의클라우드 플랫폼아키텍처 · Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy App repo. Netra App Bundles (*.jar) VM

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/