Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Osgi based cloud system architecture - Open Cloud Engine

1.807 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Software
  • Very nice tips on this. In case you need help on any kind of academic writing visit website ⇒ www.HelpWriting.net ⇐ and place your order
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Osgi based cloud system architecture - Open Cloud Engine

  1. 1. 2014 한국소프트웨어아키텍트대회 OSGi와 SOA 기반의 클라우드 플랫폼 아키텍처 OCE 의장 장진영 Rick.jang@opence.org
  2. 2. PaaS Mission vs • Ready-made architecture • All-in-One • One-click integration
  3. 3. PaaS Innovation Competitors Provider who using PaaS Install Integrate DevelopDesign plug Choose apps Modeling & Develop with Open APIs Optimize for operation DONE!
  4. 4. PaaS: has modularity issues • Multiple Services • Mature SaaS Level Forrester’s PaaS Reference Model SaaS Maturity Level
  5. 5. 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
  6. 6. Java Module System: ClassLoader i.e. Tomcat’s ClassLoader
  7. 7. 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
  8. 8. Platforms using OSGi • Eclipse plugin Marketplace • Atlassian plugin Marketplace...
  9. 9. Platforms using OSGi • Apache ServiceMix WAS • Glassfish WAS • JOnAS WAS
  10. 10. 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.
  11. 11. Sharing Level • Hypervisor-based PaaS vs. OSGi-based PaaS • Share at library level Share more, More cheap offering, More Co mpetitive in the market ! Share less, More easy & Secure !
  12. 12. OSGi based PaaS approaches • Apache Ace and Amdatu • Eclipse Gyrex • Vaadin Arvue Master • WSO2’s Stratos • OCE Garuda  Initiative from Korea!
  13. 13. Build Time Run-Time Artifacts BPMN (*.process) Visual Mashup BPMN Process Modeler Cloud IDE Vaadin Designer JAVA Composite UI OSGi Bundle packager App Bundle Vaadin UI Calls Stay In SCM (e.g.Git) Automated By CI tool (Jenkins) Package Master HA Proxy 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 info forward message Upload to App Store Tools An OSGi-based PaaS Architecture (OCE Garuda) …. instanciation
  14. 14. 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
  15. 15. Whiteboard Pattern
  16. 16. Extender Pattern
  17. 17. Services: RESTful Service • Filter by annotation: @Path @Path("saveCustomer") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String saveCustomer(Customer customer) { }
  18. 18. Services: Vaadin UI Service @Title("CRM Web Application") public class CustomerUI extends UI { …. } • Filtered by Class Type: com.vaadin.ui.UI
  19. 19. 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)
  20. 20. 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
  21. 21. Cloud IDE: Vaadin UI Platform UI Design in Vaadin wysiwyg designer Source editing in Cloud IDE
  22. 22. Cloud IDE: Process Modeling by BPMN  업무 전문가를 위한 실행가능 프로세스 언어 – BPMN  GUI기반 비즈니스 룰 정의  웹서비스 통합 (*CSB)  비즈니스 폼  데이터 매핑 • DB 쿼리 자동화 • SQL 툴
  23. 23. Components (onOSGi) Services (Exposed by Apache-wink ) 서비스사용자서비스제공자 Tenant Database SNS Portal BAM Dashboard OpenSocial Mashups Services Process (onBPM) Portal Enterprise Apps Process Apps ERP Services 서비스 (RESTful) 컴포지 트 서비스 (Cubrid) DB Cluster (FastCa t) Search CAS SSO / Apache DS EAM Codi SNS ER P EC M CR M.. Vaadin Custom UIs JDBC Contents Repository Service Customer Services Custom Composite Service SNS Services Search Services Reusing Sharing the SOA Level-8: Dynamically Re-configurable App Regi stry (App Store)
  24. 24. Example App: Process based Sales Force Automation Process Portal CRM App (Vaadin) SFA Process RESTful Web Services
  25. 25. Related works: Process-based OS sharing (Linux Container) Hypervisor-based Infra Sharing Gear (?)-based Sharing
  26. 26. Conclusion • OSGi makes implementing Enterprise PaaS easier by : – Modularity when to integrate existing J2EE technologies and legacy systems. – Dynamicity for provisioning S/W components and services. – Service Oriented Architecture.
  27. 27. Future works: IoT Platform • BPMN-based IoT modeling • OSGi - SW provisioning on devices • OCE’s Flamingo – analyze Big data from Things Flamingo Big data Analyzer
  28. 28. 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/