Your SlideShare is downloading. ×
Better Scalable Flexible Soa Platform 0.8.0
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Better Scalable Flexible Soa Platform 0.8.0

1,441
views

Published on

Scalable SOA Framework …

Scalable SOA Framework
(Note: it is written in Korean)

Published in: Technology, Education

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,441
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
70
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Better Scalable, Flexible SOA Platform v 0.8.0 이기동 , 2008. 03. 26 [email_address]
  • 2. 목차
    • Enterprise Application Development – Spring Framework
    • Enterprise Integration – Enterprise Service Bus(ESB) Mule
    • Grid Implementation - GigaSpaces
    • GigaSpaces Usage – 대용량 Data 처리
    • GigaSpaces Usage – Logging
    • GigaSpaces Usage – 통계처리
    • GigaSpaces Usage – Real Time Monitoring
    • BPM – jBPM
    • JCR Implementation – Jackrabbit
    • Rules – Drools
    • Move to OSGi
    • BPM based SOA Platform
    • Scalable SOA Platform
    • Pluggable + Scalable SOA Platform
    • Productive Web MVC Framework – Grails
    • Grails + Scalable SOA + Messaging System
    • References
  • 3. Enterprise Application Development – Spring Framework
    • IOC, AOP, Service Abstraction 의 Combination.
    • EJB Container 없이 쉽게 Enterprise Application 개발 .
    • Productivity, Manatenance 용이 .
    • 복잡한 Configuration 기능은 어려운 Enterprise Application 구현을 쉽게 실현시킴 .
    • non-invasive 형식의 POJO 사용은 복잡한 Technology 를 단순화 함 .
    • 타 Technology 및 Vendor Product 에 영향 (EJB 3.0, Bea WebLogic 10, SCA, etc.)
    • Industry 에 popular 한 framework.
  • 4. Enterprise Integration – Enterprise Service Bus(ESB) Mule
    • Open Source ESB Framework, Integration Platform.
    • Enterprise Integration Patterns book 을 근간으로 만들어짐 .
    • 많은 Connectivity Support.
    • POJO 기반의 UMO Component Model.
    • BPM support.
    • GigaSpaces support.
    • Spring support.
    • JBI support.
    • Industry popular open source ESB product(Customer List: http:// www.mulesource.com /customers/ )
  • 5. Grid Implementation - GigaSpaces
    • JavaSpaces Implementation.
    • Java Grid Technology.
    • Linear Scalability 실현 .
    • Data Grid: distributed Caching, Database Caching.
    • Messaging Grid: JavaSpaces based messaging, virtual JMS Implementation.
    • Spring support.
    • Mule Integration.
    • Mule JMS Clustering support(Space as JMS Implementation).
    • Hibernate support.
    • jBPM Cache 로서 사용 .
  • 6. GigaSpaces Usage – 대용량 Data 처리
    • Master-Worker Pattern 사용 .
    • Messaging Grid 사용 .
    • Linear Scalability 수행 .
    Master Worker 1 Worker 2 Worker 3 Worker N .. Space Message Bus Unprocessed Data Processed Data
  • 7. GigaSpaces Usage – Logging
    • Messaging Grid 를 통한 log 통합 .
    • Application 들은 Log Data 를 Messaging Grid 에 asynchronous 하게 write.
    • Logging Service 는 Messaging Grid 로 부터 event 를 받아 Log Data 를 take 함 .
    • 이때 Logging Service 는 Parallel Processing 이 진행 .
    • Log Data 를 Batch Update 형식으로 File System 에 저장 .
    App. 1 Space Message Bus Logging Service Log Data File System App. 2 App. 3 App. N ..
  • 8. GigaSpaces Usage – 통계처리
    • Master-Worker Pattern 사용 .
    • Messaging Grid 사용 .
    • Batch 기능 .
    • File System 에 모여진 Log Data 를 읽어 Batch 형식으로 Messaging Grid 에 write.
    • 해당 Worker 는 일을 수행한후 다시 process 된 Data 를 return.
    • Master 는 결과를 모아 얻음 .
    Master Worker 1 Worker 2 Worker 3 Worker N .. Space Message Bus Unprocessed Data Processed Data File System
  • 9. GigaSpaces Usage – Real Time Monitoring
    • API 처리에 따른 AOP 를 통해 Messaging Grid 에 Log Data 를 Write.
    • Messaging Grid 에 있는 Log Data 를 Monitoring Service 에서 Take.
    • Monitoring Service 에서 Log Data 를 Dashboard 에 용도에 맞게 Message Processing 진행 .
    • UI 에서 Dashboard 로 보여주거나 Threshold 에 따라 Alert 기능 (Emailing, SMS, etc).
    App. 1 Space Message Bus Monitoring Service Log Data App. 2 App. 3 App. N .. Dashboard Alert
  • 10. BPM - jBPM
    • Workflow, Business Process Management, Service Orchestration.
    • BPM 기반 Application 은 typical hub-spokes architecture.
    • Central state management.
    • Business Intelligence tool 을 통한 Business Activity Monitoring.
    • BPM 은 Top-down methodology 로서 SOA 구현에 용이 . (Bottom-up 형식은 예를들어 SCA 와 같은 Service Composition.)
    • Business Analyst 와 Developer 의 구분 . Development Cycle 구성에 서로 밀접한 관계를 만듬 . Agility 를 기본으로 개발인원 구성 .
    • Business Analyst 는 Programming Language 를 거의 알필요없이 jPDL 만 정의를 내림 .
    • 개발자는 jPDL 및 Programming 에 대한 지식필요 .
    • BPEL 은 latency 가 critical 하지 않은 Web Services 세상에서 사용된다면 jPDL 은 massive 한 transaction 이 있는 Messaging System 에서 사용 . 이때 Canonical Data Model type 은 java object.
    • BPM 의 중요역할은 State Management.
    • 효율적 State Management 를 위해 직접적 DB 접근보다는 Cache 사용을 통한 Performance 향상 . Cache 로는 GigaSpaces 사용으로 massive IO 에 견뎌야함 .
    • Mule 과의 연동을 위해 대부분 State-Node 를 사용 .
  • 11. JCR Implementation - Jackrabbit
    • Content Repository for Java Technology API (JCR).
    • JSR 170 Reference Implementation.
    • Target applications: Content management, Document management, Records management
    • Implementation: Read-Only(One-way), Read-Write(bi-directional)
    • Transaction Management(JTA)
    • Observation: Event Notification for repository changes.
    • Versioning: 이전에 변화된 Data 를 얻을수 있음 .
    • Query: Xpath, SQL.
    • Node 와 Properties 구성 .
    • Node 는 Data 를 Organize 함 .
    • Properties 는 Data 를 저장함 .
    • File System 인 경우 예를들어 Node 는 directories 와 같고 Properties 는 files 와 같음 .
    • Node 는 Sub-node 뿐만 아니라 Properties 를 갖을수 있음 .
  • 12. Rules - Drools
    • Programming Code 의 여러 if, else, then 을 외부 rule script 로 분리 .
    • Source Code Recompilation 이 필요없이 Rule Script 의 변경으로 Process 실행 .
    • Central Repository 에 Rules deploy 함 .
    • JCR 을 통해 Server Restart 없이 dynamical 한 deployment 실현 .
    package org.jbpm.action import org.jbpm.action.Customer; import org.jbpm.action.Order; import org.jbpm.context.exe.ContextInstance; global ContextInstance ci rule "Determine Shipper" when Customer( region >= 1 ) Order( totalAmount >= 0 ) then ci.setVariable("shipper", "FEDX"); System.out.println("ship via FEDX " ); end
  • 13. Move to OSGi
    • OSGi 는 Software Construction 에 관함 : 여러 개의 작은 Component 들을 엮어서 System 을 만듬 .
    • OSGi 는 Components 에 관함 : Component 들이 서로 엮어져서 실행 .
    • OSGi 는 Components Management 에 관함 .
    • OSGi 는 Universal Middleware 에 관함 .
    • Software Complexity 가 증가할수록 OSGi 는 Productivity 증가에 Good choice.
    • Component Reusability, Flexibility 는 OSGi 의 기본 .
    • Runtime 에서 Bundle(Service) 추가 삭제를 dynamical 하게 할수 있음 .
    • Quality of Service(Remote Management, etc) 문제 해결에 용이 .
    • Open Source Implementation: Apache Felix, Equinox, Knopflerfish, etc.
  • 14. BPM based SOA Platform
    • BPM 중심의 Business Work-Flow 관리 .
    • ESB Framework Mule 에서 다양한 Protocol/Transport 가 Support 됨으로서 쉽게 Enterprise Integration 을 할수 있음 .
    • SOA 를 이룩하기 위해 Enterprise Integration 은 필수 , 즉 ESB 는 필수 .
    • Spring Framework 가 기본을 이루고 있어 POJO(Component) Model 을 얻게 됨 .
    • POJO Model 은 loosely coupled, flexible 하게 Service 들을 사용할수 있게 됨 .
    HTTP JMS JCA SOAP Spring Mule TCP BPM Rules Binding
  • 15. Scalable SOA Platform
    • Space(JavaGrid) 가 Message Bus 및 IMDB 역할 수행 .
    • Space 는 Massive 한 Transaction 및 Data 에도 견딜수 있음 .
    • Space 를 통해 linear scalability 를 얻음 .
    • 복잡한 Clustering, Distributed Caching, Session Replication/Sharing 해결 .
    Spring Mule BPM Rules Space Message Bus / IMDB JavaSpace
  • 16. Pluggable + Scalable SOA Platform
    • Spring 기반의 Application 이 Bundle 형태로 쪼개짐 .
    • 이들 Bundle 사이에는 dependency 가 있음 .
    • OSGi 를 이해하는 모든 OSGi 에서 똑같이 Bundle 이 돌아간다는건 중요한 이점 .
    • Spring 기반의 Bundle Application 은 OGSi Bundle 형태로 변화할 필요없음 . 이는 Spring OSGi 가 알아서 OSGi Runtime 에게 Bundle 형태라고 이해를 시킴 .
    • Bundle Version 이 다르지만 같은 Class 역시 동시 loading 이 가능 . 즉 다른 Bundle 에서 사용하는 dependency Class 가 같아도 version 이 다르면 서로 같은 OSGi Runtime 에서 동시에 사용 가능 .
    • OSGi 는 Bundle Deployment Management 에 중요한 의미 , 즉 Server Restart 없이 Runtime 시 Bundle 을 deploy/undeploy 를 자유롭게 할수 있음 .
    • Component Model 의 실제적인 구현 형태가 바로 OSGi.
    Space Message Bus / IMDB JavaSpace Spring OSGi OSGi Runtime Bundle Bundle Spring Mule BPM Rules Spring Mule BPM Rules
  • 17. Productive Web MVC Framework - Grails
    • Grails 는 Java Web MVC Framework.
    • Grails = Groovy + Spring + Hibernate + 여러 Plugin.
    • Productive 하게 Web UI 를 만들수 있음 .
    • Spring 기반이기에 매우 flexible.
    • Groovy 의 powerful 한 기능인 Closure, Builder, Domain Specific Language 활용 .
    Spring Groovy Hibernate Plugin
  • 18. Grails + Scalable SOA + Messaging System Spring Mule BPM Rules Space Message Bus / IMDB JavaSpace Grails JavaSpace Browser Access (HTTP) ESB Adaptor Legacy ESB Adaptor Legacy JavaSpace JavaSpace Spring Groovy Hibernate Plugin
  • 19. References
    • Spring Framework: http://www.springframework.org/
    • Mule: http:// mule.mulesource.org /display/MULE/Home
    • GigaSpaces: http:// www.gigaspaces.com/os_overview.html
    • OSGi Presentation: http://www.infoq.com/presentations/osgi-the-foundation
    • OSGi Home: http://www2.osgi.org/Main/HomePage
    • Spring OSGi: http://www.springframework.org/osgi
    • Eclipse Equinox: http://www.eclipse.org/equinox/
    • Apache Felix: http://felix.apache.org/site/index.html
    • Knopflerfish: http://www.knopflerfish.org/
    • Infiniflow: http://www.paremus.com/products/products.html
    • EIP Patterns: http:// www.enterpriseintegrationpatterns.com/eaipatterns.html
    • jBPM: http:// labs.jboss.com/jbossjbpm /
    • Drools: http:// labs.jboss.com /drools/
    • JCR(JSR 170): http:// jcp.org/en/jsr/detail?id =170
    • Jackrabbit: http:// jackrabbit.apache.org /
    • Hibernate: http:// www.hibernate.org /
    • Grails: http:// grails.org /