360 likes | 917 Views
JBoss ESB & jBPM. 2008 년 5 월 27 일 임형준 ( hyungjun25@cnu.ac.kr ) 충남대학교 컴퓨터공학과 데이터베이스시스템 연구실. 목차. 서비스 지향 아키텍처 (SOA, Service-Oriented Architecture) ESB (Enterprise Service Bus) BPM (Business Process Management) jBPM (JBoss Business Process Management)
E N D
JBoss ESB & jBPM 2008년 5월 27일 임형준 (hyungjun25@cnu.ac.kr) 충남대학교 컴퓨터공학과 데이터베이스시스템 연구실
목차 • 서비스 지향 아키텍처 (SOA, Service-Oriented Architecture) • ESB (Enterprise Service Bus) • BPM (Business Process Management) • jBPM (JBoss Business Process Management) • BPEL (Business Process Execution Language) • jPDL (JBoss Process Definition Language)
서비스 지향 아키텍처 (SOA) SOA 정의 네트워크 상에 존재하는 정보시스템들을 플랫폼 독립적으로 유연하게 연결하여 활용하기 위한 분산 정보시스템구조 Enterprise Service Bus 서비스 이용자 서비스 Interface Proxy Interface Proxy 서비스 등록저장소
서비스 지향 아키텍처 (SOA)의 이점 http://www.sun.com/products/soa/benefits.jsp
통합 환경 구조 • Two logical integration architectures for integrating applications: • Direct point-to-point connections • Middleware-based integration Direct point-to-point connections Middleware-based integration
Point-to-Point Integration http://msdn.microsoft.com/en-us/library/bb220799.aspx Point-to-Point Integration
Middleware-based Integration • Middleware infrastructure products provide foundational services for complex architectures via an event-driven and standards-based messaging engine http://technet.microsoft.com/en-us/library/aa475433.aspx
느슨한 형태로 결합/분리된 비즈니스 컴포넌트의 관계를 중재하는 역할을 담당 데이터전달, 서비스 접근, 서비스 재활용, 서비스 관리 도처에 분산된 서비스 컴포넌트를 쉽게 통합 연동 Enterprise Service Bus • “A Web-services-capable infrastructure that supports intelligently directed • communication and mediated relationships among loosely coupled and • decoupled biz components.” – Gartner Group • “The ESB label simply implies that a product is some type of integration • middleware product that supports both MOM and Web services protocols.” • – Burton Group • “A standards-based integration backbone, combining messaging, • Web services, transformation, and intelligent routing.” • – Sonic Software • “To put it bluntly: If you have WebSphere MQ and other WebSphere • brokers and integration servers, you have an ESB.” • –Bob Sutor, IBM
Enterprise Service Bus 구조 ESB Client Software Installed on every node Transport and repository ESB Client Software Installed on every node J2EE Application .NET Application Web Service Endpoint
Enterprise Service Bus 특징 • Based on asynchronous messaging • Application communicate via the bus, which acts as a message broker between applications • Typically Web services based, but not necessarily (WSDL interfaces) • Primary advantage - it reduces the number of point-to-point connections • The process of adapting a system to changes in one of its components becomes easier
ESB 기능 (1) • Invocation • Synchronous and asynchronous transport protocols, service mapping (locating and binding) • Routing • Addressability, static/deterministic routing, content-based routing, policy-based routing • Mediation • Adapters, protocol transformation, service mapping • Messaging • Message processing, message transformation
ESB 기능 (2) • Process Choreography • Implementation of complex business processes • Service Orchestration • Coordination of multiple implementation services exposed as a single, aggregate service • Complex Event Processing • Event interpretation, correlation, pattern matching • Other Quality of Service • Security, reliable delivery, transaction management • Management • Monitoring, audit, logging
ESB – Standard based Integration • Communication and data routing (JMS, …) • Data protocols (XML) • Transformation (XSLT) • Connectivity (JCA, J2EE Connector Architecture, …) • Business Process Management (BPM) • Pre-built Business Components • Business Process Modeling (BPEL) • B2B – trading partner management • Web Services • Security
경영목표에의 접근 프로세스 프로세스 정의 실행/통제 분석/개선 BPM 기반의 업무통합 조직 시스템 데이터 Task Applications Document BPM (Business Process Management) • Complete Biz Integration • 프로세스, 조직, 시스템의 강한 결합을 통한 자동화 • Process Life Cycle Management • 변화에 대한 민첩성, 유연성 증대를 위한 프로세스의 체계적 관리 • Continuous Improvement • 프로세스 효율 관리 및 지속적인 개선에 의한 경영목표에의 접근 BPM (Business Process Management) 개요
BPM의 기본 기능 (1) • Process Design • 복잡하고 다양한 비즈니스 프로세스를 손쉽게 설계할 수 있는 사용자 인터페이스 제공 • Rule-based Routing • 미리 정의된 조건들에 의해 누가, 어떠한 상황에서, 무슨 일을 처리해야 하는 지를 예외상황과 함께 통제 • Information Sharing • 문서 / 데이터 등 업무처리에 필요한 정보를 일관성 있게 제공 • Fast Work Processing • 업무처리 시간의 단축 및 지연 방지를 위한 통제 수단 제공
BPM의 기본 기능 (2) • Process Monitoring • 각 업무 담당자들의 업무범위 및 처리상황을 제어 / 모니터링 할 수 있는 기능을 제공 • Process Analysis • 각 업무 담당자들의 업무처리 결과를 분석하여 문제점을 파악할 수 있는 기능을 제공 • System Integration • 업무 프로세스와 관련된 기존 시스템들과의 원활한 데이터 교환을 지원하는 기능
BRE (Business Rule Engine) • 룰 기반의 자동화된 프로세스 처리를 지원 • Modeling & Simulation • 프로세스 모델링하고 최적의 프로세스도출을 위해 시뮬레이션 실행 • Monitoring (Analysis, Predictive) • 프로세스 처리정보의 실시간 모니터링 • Execution, 프로세스 엔진 • 비즈니스 프로세스를 실행 • Integration • Legacy 시스템과의 통합 지원 • Presentation & Collaboration • 프로세스 진행상황을 표시하고 협업지원 BPM의 구성 및 기능 BPM 구성 요소
JBoss jBPM • JBoss jBPM is a sophisticated state machine • JBoss jBPM delivers workflow, business process management (BPM) and service orchestration in a multi-process language platform
JBoss jBPM 특징 • Open Source • JBoss jBPM은 오픈 소스 라이센스를 제공하여 사용자가 무상으로 다운로드, 사용, 임베드, 배포가 가능한 제품 • 손쉬운 프로그래밍 모델 • JBoss jBPM은 Java와 서술적 프로그래밍 기법의 장점만 혼합한 프로세스 지향 프로그래밍 모델 (jPDL)을 제공 • Graph Oriented Programming 제공 • 플러그인 가능 아키텍처 • 모든 수준의 확장성과 변경용이성을 허용하는 플러그인 지향 아키텍처 • 프로세스 엔진 내에 각 프로세스의 정의와 인스턴스
BPM Notation • A standardized graphical notation for drawing business processes in a workflow • Flow objects: • Event • Activity • Gateway • Connecting objects
Graph Oriented programming (1) • Define the graph • The graph is declared, separated from the code • Nodes • Transitions
Graph Oriented programming (2) • Define graph execution model • Token is a pointer to a node in the graph • A token can move over transitions • Code in the nodes • Business code • Graph execution, propagation
Authoring The Process <process-definition name=“auction"> <start-state name=“submit item"> <transitionto=“auction" /> </start-state> <state name=“auction"> <transitionto=“fork" /> </state> <fork name="fork"> <transitionto=“send item" /> <transitionto=“get paid" /> </fork> ...
auction.par jBPM deploy def log exe Deploying The Process
YourCode.java YourWebApp.war YourEJB.ear def log exe Process Executions jBPM signal
Web Console Embeddable Runtime Engine Graphical Designer (eclipse based) Processes Process Repository Runtime Executions History JBoss jBPM 구성 요소 JBoss jBPM 구성 요소
Multi-Language Support • BPEL • Business Process Execution Language • jPDL • jBPM Process Definition Language
BPEL (Business Process Execution Language) • A business process modeling language that is executable • BPEL is a language for specifying business process behavior based on Web Services • BPEL is serialized in XML and aims to enable programming in the large
jPDL (jBPM Process Definition Language) • Graphical editor for the business user • Java programming environment for the developer • Ideal for Business Process Management (BPM) • Easy automation of business processes • Task management • Integration • Business Intelligence
jPDL Advantages • Graphical diagram for business users • Process is basis for implementation • Diagram is shared • Link between • Business User • Developer
JBoss jBPM 효과 • 커뮤니케이션 개선 • 개발 기간 단축 • 비즈니스 성능 향상 • 모든 프로세스 언어를 위한 단일화된 플랫폼 • 서비스 조직화 → BPEL • Business Process Management → jPDL • JBoss jBPM 플랫폼은 사용자와 시스템을 통합하기 위한 run-time 플랫폼과 도구를 제공
JBPM 개발 및 관리화면 jBPM 개발 및 관리화면
GPD Architecture • Graphical Editing Framework (GEF) • Eclipse Modeling (EMF)