Presented at All Thing Open RTP Meetup
Presented by Brent Laster
Abstract: In this three-hour hands-on workshop, open-source author, trainer and DevOps director Brent Laster will provide a solid introduction to GitHub Actions. You’ll learn about the core parts and pieces that make up Actions and their associated workflows, as well as the types of functionality and features they provide. You’ll also see how to combine them in simple workflows to accomplish basic tasks as well as how they can fit into a CI environment. Further, you’ll see how to create your own GitHub Actions and debug Actions when there are issues.
Dapr - A 10x Developer Framework for Any LanguageBilgin Ibryam
Explore the basics of the Dapr project and why it is a 10x developer tool that emerged at the right time, what concrete benefits it brings to developers, operations, and architects.
Presented at All Thing Open RTP Meetup
Presented by Brent Laster
Abstract: In this three-hour hands-on workshop, open-source author, trainer and DevOps director Brent Laster will provide a solid introduction to GitHub Actions. You’ll learn about the core parts and pieces that make up Actions and their associated workflows, as well as the types of functionality and features they provide. You’ll also see how to combine them in simple workflows to accomplish basic tasks as well as how they can fit into a CI environment. Further, you’ll see how to create your own GitHub Actions and debug Actions when there are issues.
Dapr - A 10x Developer Framework for Any LanguageBilgin Ibryam
Explore the basics of the Dapr project and why it is a 10x developer tool that emerged at the right time, what concrete benefits it brings to developers, operations, and architects.
***First Half***
Introduction to Oracle Fusion Middleware and Oracle ADF
Getting started with JDeveloper
Building a Business Model with ADF Business Components
Querying and persisting data
Exposing Data
Declaratively Customizing Data Services
Programmatically Customizing Data Services
Validating User Inputs
***Second Half***
Understanding UI Technology
Binding UI Components to Data
Planning the User Interface
Passing values between UI Elements
Responding to Application Events
Implementing Transactional Capabilities
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation SlidesSlideTeam
Introducing DevOps On Cloud PowerPoint Template Slides PowerPoint Presentation Slides. Provide an overview of DevOps with this attention-grabbing PPT slideshow. This presentation helps to understand the need for DevOps, how it is different from traditional IT, DevOps use cases in business, lifecycle, roadmap, and so on. Provide an overview of how DevOps is different from agile by using the content-ready DevOps strategy PPT visuals. The slides also explain the roles, responsibilities, and skills of DevOps engineers. DevOps automation tools and DevOps roadmap for implementation in the organization can be discussed effectively. Provide an overview of DevOps on the cloud by describing cloud computing, characteristics of cloud computing, benefits, top risks related to cloud computing, etc. Cloud computing use cases and cloud deployment models can be presented with the help of visual attention-grabbing DevOps implementation roadmap PowerPoint slides. The roadmap to integrate cloud computing in business can be depicted easily by using the DevOps implementation strategy PowerPoint slideshow. https://bit.ly/3d8uYRY
An Introduction to Software Performance EngineeringCorrelsense
Software performance engineering is becoming increasingly important to businesses as they look to improve the non-functional performance of applications and get more out of IT investments. By leveraging performance engineering techniques, IT professionals can be indispensable in building and optimizing scalable systems. This
introductory course will teach you the essentials of software
performance engineering including :
• The performance challenges faced by Enterprise IT today
• What is software performance engineering (SPE)?
• Best practices for building scalable software systems
• The approaches to integrating SPE into IT project lifecycles
• Common frameworks for measuring application performance and service levels
• The impact of SPE on software developers, testers, capacity planes,
and other IT professionals
• Case studies from the finance, retail, and insurance industries
Instructor: Walter Kuketz, SVP and CTO, Collaborative Consulting
This training is sponsored by Correlsense, Collaborative Consulting,
and New Horizons
Come see how easy it is to build fast, accurate, and responsive web UIs using the React library. Even if you’ve never written Javascript before, React’s straightforward syntax can get you started with your UI project quickly. In this session, you’ll learn about React’s declarative syntax and state representation, explore some of the basic components that are used to build sophisticated UIs, and leave with a foundational application you can continue to build on.
Design patterns provide common templates for solving similar problems. They also provide a higher-level language for software developers to use to describe approaches they might choose when designing part of an application. This session introduces and applies several patterns useful to web application developers. Examples will primarily use C#/.NET.
Test Automation - Principles and PracticesAnand Bagmar
Slides from my webinar for Sri Lanka Testing Community on - "Test Automation - Principles & Practices".
Details about the webinar can be found from my blog - http://essenceoftesting.blogspot.com
Lifecycle Modeling Language Tutorial by Dr. Dam and Dr. Vaneman Elizabeth Steiner
Dr. Steve Dam and Dr. Vaneman present "A New Open Standard: Lifecycle Modeling Language (LML) a Language for Simple, Rapid Development, Operations and Support" at the Systems Engineering D.C. Conference (SEDC), April 2014.
Platform Engineering is the practice of building and operating a common platform as a product for technology teams.
In this session, we will talk about why and when we need a platform. How to build Platform Engineering and demo.
Jirayut Nimsaeng
Founder & CEO
Opsta (Thailand) Co., Ltd.
Youtube Record: https://youtu.be/brBZYbNbnAo
Dev Mountain Tech Festival 2022 @ Khaoyai
March 19, 2022
SysML v2 and the Next Generation of Modeling LanguagesEd Seidewitz
The Systems Modeling Language (SysML) is a particularly successful offshoot of the Unified Modeling Language (UML) tailored for Model-Based Systems Engineering. After a decade of growing use of SysML, in 2017 the Object Management Group (OMG) issued a Request for Proposals (RFP) for a new version of the language. A year into the ongoing work to respond to this RFP, it is clear that SysML v2 needs to be more than just an expansion of the functional capabilities of SysML. Rather, it must address fundamental architectural issues that have made it difficult to further evolve SysML v1 to address the needs of its user community. Therefore, the language is being re-designed using a new kernel metamodel with formally grounded semantics. This kernel can then be extended using semantic model libraries, rather than by expanding the language metamodel itself. This approach will allow SysML v2 to be not only the modeling language for traditional systems engineering, but also the foundation for a whole new generation of modeling languages.
At the core, the job of a software developer is and has always been the same: writing good, elegant, sustainable and bug-free software that exceeds the expectations of your clients. But the context in which we do our job is changing and with it the skills required to be a great software developer. In this talk, I want to go through a couple of things that I think make the difference between a developer and a great developer. This includes some technical skills and practices, but also non-technical things that you might not consider relevant for a developer at first.
Dynamic CSS: Transforms, Transitions, and Animation BasicsBeth Soderberg
You’ve got the basics of CSS down, but you are ready to kick it up a notch and add a bit more pizazz and interactivity to your websites. In this session we’ll explore the fundamentals of CSS transforms, transitions, and animation. What are the basic building blocks that make up these capabilities? What is the difference between a transition and a transform? What does browser support look like? Most importantly, how can you put these tools to use in your next project and where can you find good resources to learn more? We’ll answer these questions and more as we explore the basics of how to add some of the more truly dynamic elements of CSS to our websites.
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
Joint talk. To cover 2 topics.
Dmitriy will cover 2 topics, 20 minutes each:
self-healing algorithm for selenium based UI tests (Healenium)
Test Gap Analysis and minimization of regression suite with Test-to-code mapping in Drill4J
Self-healing
Selectors in Automated UI is a pain point: tests sooner or later “breaks” due to changes in layout. Which makes UI tests unreliable as a part of testing pipeline and Continuous Testing itself. Layout mutate and as a result test crashes, builds turn “red”.
In this talk Anna will give a word regarding easiest way how to hack this problem in the bud. You will learn about the newly open-sourced tool for self-healing automation called Healenium.
Healenium allows to overcome problem of instability of automation tests automatically and spend less time supporting tests. Now it works for Mobile Automation as well !
Drill4J
Test Gap Analysis is the process of identifying these gaps where new code has been deployed but hasn’t been tested yet. However, often your testing department does not know which parts of code have been changed by the developers. As a result, testers run some unnecessary tests while other crucial tests are overlooked.
With Test Gap Analysis we can find gaps in tests and help you avoid errors made due to recent, untested changes. In doing so, you can optimize the interface between developers and testers and avoid hotfixes after the system’s release.
With this talk Dmitriy will share and unveil new Open Sourced tool Drill4J, describe capabilities of Test-to-Code mapping and how you can minimize your regression time by identifying subset of tests, which should be run, which code have been changed and which changes are not tested after full testing cycle.
***First Half***
Introduction to Oracle Fusion Middleware and Oracle ADF
Getting started with JDeveloper
Building a Business Model with ADF Business Components
Querying and persisting data
Exposing Data
Declaratively Customizing Data Services
Programmatically Customizing Data Services
Validating User Inputs
***Second Half***
Understanding UI Technology
Binding UI Components to Data
Planning the User Interface
Passing values between UI Elements
Responding to Application Events
Implementing Transactional Capabilities
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation SlidesSlideTeam
Introducing DevOps On Cloud PowerPoint Template Slides PowerPoint Presentation Slides. Provide an overview of DevOps with this attention-grabbing PPT slideshow. This presentation helps to understand the need for DevOps, how it is different from traditional IT, DevOps use cases in business, lifecycle, roadmap, and so on. Provide an overview of how DevOps is different from agile by using the content-ready DevOps strategy PPT visuals. The slides also explain the roles, responsibilities, and skills of DevOps engineers. DevOps automation tools and DevOps roadmap for implementation in the organization can be discussed effectively. Provide an overview of DevOps on the cloud by describing cloud computing, characteristics of cloud computing, benefits, top risks related to cloud computing, etc. Cloud computing use cases and cloud deployment models can be presented with the help of visual attention-grabbing DevOps implementation roadmap PowerPoint slides. The roadmap to integrate cloud computing in business can be depicted easily by using the DevOps implementation strategy PowerPoint slideshow. https://bit.ly/3d8uYRY
An Introduction to Software Performance EngineeringCorrelsense
Software performance engineering is becoming increasingly important to businesses as they look to improve the non-functional performance of applications and get more out of IT investments. By leveraging performance engineering techniques, IT professionals can be indispensable in building and optimizing scalable systems. This
introductory course will teach you the essentials of software
performance engineering including :
• The performance challenges faced by Enterprise IT today
• What is software performance engineering (SPE)?
• Best practices for building scalable software systems
• The approaches to integrating SPE into IT project lifecycles
• Common frameworks for measuring application performance and service levels
• The impact of SPE on software developers, testers, capacity planes,
and other IT professionals
• Case studies from the finance, retail, and insurance industries
Instructor: Walter Kuketz, SVP and CTO, Collaborative Consulting
This training is sponsored by Correlsense, Collaborative Consulting,
and New Horizons
Come see how easy it is to build fast, accurate, and responsive web UIs using the React library. Even if you’ve never written Javascript before, React’s straightforward syntax can get you started with your UI project quickly. In this session, you’ll learn about React’s declarative syntax and state representation, explore some of the basic components that are used to build sophisticated UIs, and leave with a foundational application you can continue to build on.
Design patterns provide common templates for solving similar problems. They also provide a higher-level language for software developers to use to describe approaches they might choose when designing part of an application. This session introduces and applies several patterns useful to web application developers. Examples will primarily use C#/.NET.
Test Automation - Principles and PracticesAnand Bagmar
Slides from my webinar for Sri Lanka Testing Community on - "Test Automation - Principles & Practices".
Details about the webinar can be found from my blog - http://essenceoftesting.blogspot.com
Lifecycle Modeling Language Tutorial by Dr. Dam and Dr. Vaneman Elizabeth Steiner
Dr. Steve Dam and Dr. Vaneman present "A New Open Standard: Lifecycle Modeling Language (LML) a Language for Simple, Rapid Development, Operations and Support" at the Systems Engineering D.C. Conference (SEDC), April 2014.
Platform Engineering is the practice of building and operating a common platform as a product for technology teams.
In this session, we will talk about why and when we need a platform. How to build Platform Engineering and demo.
Jirayut Nimsaeng
Founder & CEO
Opsta (Thailand) Co., Ltd.
Youtube Record: https://youtu.be/brBZYbNbnAo
Dev Mountain Tech Festival 2022 @ Khaoyai
March 19, 2022
SysML v2 and the Next Generation of Modeling LanguagesEd Seidewitz
The Systems Modeling Language (SysML) is a particularly successful offshoot of the Unified Modeling Language (UML) tailored for Model-Based Systems Engineering. After a decade of growing use of SysML, in 2017 the Object Management Group (OMG) issued a Request for Proposals (RFP) for a new version of the language. A year into the ongoing work to respond to this RFP, it is clear that SysML v2 needs to be more than just an expansion of the functional capabilities of SysML. Rather, it must address fundamental architectural issues that have made it difficult to further evolve SysML v1 to address the needs of its user community. Therefore, the language is being re-designed using a new kernel metamodel with formally grounded semantics. This kernel can then be extended using semantic model libraries, rather than by expanding the language metamodel itself. This approach will allow SysML v2 to be not only the modeling language for traditional systems engineering, but also the foundation for a whole new generation of modeling languages.
At the core, the job of a software developer is and has always been the same: writing good, elegant, sustainable and bug-free software that exceeds the expectations of your clients. But the context in which we do our job is changing and with it the skills required to be a great software developer. In this talk, I want to go through a couple of things that I think make the difference between a developer and a great developer. This includes some technical skills and practices, but also non-technical things that you might not consider relevant for a developer at first.
Dynamic CSS: Transforms, Transitions, and Animation BasicsBeth Soderberg
You’ve got the basics of CSS down, but you are ready to kick it up a notch and add a bit more pizazz and interactivity to your websites. In this session we’ll explore the fundamentals of CSS transforms, transitions, and animation. What are the basic building blocks that make up these capabilities? What is the difference between a transition and a transform? What does browser support look like? Most importantly, how can you put these tools to use in your next project and where can you find good resources to learn more? We’ll answer these questions and more as we explore the basics of how to add some of the more truly dynamic elements of CSS to our websites.
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
Joint talk. To cover 2 topics.
Dmitriy will cover 2 topics, 20 minutes each:
self-healing algorithm for selenium based UI tests (Healenium)
Test Gap Analysis and minimization of regression suite with Test-to-code mapping in Drill4J
Self-healing
Selectors in Automated UI is a pain point: tests sooner or later “breaks” due to changes in layout. Which makes UI tests unreliable as a part of testing pipeline and Continuous Testing itself. Layout mutate and as a result test crashes, builds turn “red”.
In this talk Anna will give a word regarding easiest way how to hack this problem in the bud. You will learn about the newly open-sourced tool for self-healing automation called Healenium.
Healenium allows to overcome problem of instability of automation tests automatically and spend less time supporting tests. Now it works for Mobile Automation as well !
Drill4J
Test Gap Analysis is the process of identifying these gaps where new code has been deployed but hasn’t been tested yet. However, often your testing department does not know which parts of code have been changed by the developers. As a result, testers run some unnecessary tests while other crucial tests are overlooked.
With Test Gap Analysis we can find gaps in tests and help you avoid errors made due to recent, untested changes. In doing so, you can optimize the interface between developers and testers and avoid hotfixes after the system’s release.
With this talk Dmitriy will share and unveil new Open Sourced tool Drill4J, describe capabilities of Test-to-Code mapping and how you can minimize your regression time by identifying subset of tests, which should be run, which code have been changed and which changes are not tested after full testing cycle.
핵심 프로세스(Key Process) 모델링은 Business Model Game에서 다루는 component 중 하나로, 사업모델에 참여하는 이해관계자를 규정하고, 그들 간에 발생하는 정보의 흐름및 구조 등을 규정하는 도식화된 프로세스 구조도입니다. 제시되는 가이드라인에 따라 여러분의 사업모델의 흐름도를 만들어 보세요. outside pitch와 사업계획서 작성시 많은 도움이 될 겁니다.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
19번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon Web Services Korea
Amazon SageMaker 에서 제공하는 기계 학습을 위한 CI/CD 서비스, Aamzon SageMaker Pipelines 를 사용하기 위해 기계 학습의 라이프 사이클과 MLOps 의 개념과 AWS 에서의 MLOps 에 대한 오버뷰를 소개합니다. 또한, Amazon SageMaker Pipelines 의 세부적인 사용법을 스크린샷과 함께 소개합니다.
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
4. 1.1 BPMN (Business Process Modeling and Notation)
BPMN이란?
보다 더 쉽게 프로세스를 정의하고 이해하고
개선할 수 있도록 하는 프로세스의 그래픽적
표기법에 대한 대표적인 국제표준규격이며,
기존 UML의 Activity Diagram과 비슷하지만
비즈니스 프로세스와 관련하여 좀더 다양한
표현이 가능한 표준 표기 방법이다
기존 UML의 Activity Diagram 보다 훨씬 더
구체적이고 다양한 상황에 대한 표현이 가능
하다
<그림 1 > BPMN을 활용한 비디오 주문처리 예제
3
5. 1.2 BPMN의 목적
BPMN의 목적
OMG(Object Management Group)에 의해 2006년 비즈니스 프로세스 모델링을 위한
새로운 표준으로 등장한 것이 바로 BPMN(Business Process Modeling Notation)이다.
BPMN로 작성된 프로세스 표현들에 대한 그래픽 표기법 을 제공하기 위해
BPMI(Business Process Management Initiative)에 의해서 만들어 짐.
(BPMI는 후에 OMG(Object Management Group)의 일원이 됨
BPMN의 역할
BPMN 표기법은 비교적 짧은 시간에 실무에서 널리 채택되어 사용
2011년 1월 BPMN Version 2.0이 공식 확정
BPMN의 전망
BPMN은 간단한 기업업무절차에서부터 SOA(Service Oriented Architecture)와 같은
혁신적인 엔터프라이즈 아키텍처까지 다양한 형태의 비즈니스를 프로세스를
비교적 용이하게 표현할 도구로 활용될 것으로 전망하고 있다.
4
6. 1.3 BPMN을 활용한 비디오 주문처리 예제
BPMN은 최초의 프로세스 모델링을 위한
표준으로 광범위하게 수용
BPMN 모델링 도구만 해도 이미 60개 이상,
많은 수의 웹사이트,블로그, 출판물들의 관심
유럽의 대규모 기관들은 프로세스 관리팀에게
BPMN 교육을 제공,이를 모델링의 표준으로 사용
플로우차트나 액티비티 다이어그램을
작성하는 방법과 매우 유사
<그림 1 > BPMN을 활용한 비디오 주문처리 예제
5
8. 2.1 간단한 BPMN 모델(1)
<그림 2> 간단한 BPMN 모델
액티비티(Activity)
일이나 업무를 처리하는 단위이다.
시작 이벤트 중간 이벤트 종료 이벤트
이벤트(Event)
이벤트는 비즈니스 프로세스에서 발생되는 하나의 사건을 표현하기 위해서 사용된다.
시퀀스 플로우(Sequence Flow)
업무의 흐름을 나타내는데 사용되며, 풀과 레인을 가로질러 다른 이벤트나 액티비티
그리고 추가 요소들을 연결하는데 사용된다.
7
9. 2.2 간단한 BPMN 모델(2)
사업부와 인사부는 구인 광고를 진행하는 과정에 관계된 부서.
사업부에 의해 새로운 직원이 요구될 때 시작
사업부에서는 직원의 필요성을 보고,인사부에서 구인 광고 작성, 다시 사업부에서 구인 광고를 검토
인사부에서 작성된 구인 광고는 여러 번 반복해서 검토
적합하다고 판단되는 경우에만 공고하는 것으로 전체 프로세스가 진행
<그림 2> 간단한 BPMN 모델
8
10. 2.3 타이머-조건 이벤트
타이머 이벤트
이벤트(event)의 표현도 가능
미 발생된 하나의 사건을 표현하기 위해
사용되는 것으로 다양한 형태의 이벤트 사용이 가능
케이크를 오븐에 넣은 후에 ‘케이크 꺼내기’
액티비티는 한 시간을 기다린 다음에 시작
< 그림 6 > 타이머 이벤트
조건 이벤트
이벤트의 조건이 참이 되는 상황이 될 때만 이벤트를 유발하기도 함
오븐이 먼저 켜지고, 케이크를 오븐에 넣기 전에
온도가 180도를 넘어설 때까지 프로세스는 대기
< 그림 7 > 조건 이벤트
9
11. 2.5 이벤트 기반 결정
이벤트 기반 결정
이러한 표기방식은 기존의 플로우차트에서도
표현 가능한 것이었으나, BPMN이 기존의 방식
보다 훨씬 단순하고 이해하기가 쉬움
면접 요청이 먼저 발송
만약 승낙이 수신되면 면접이 준비되지만,
거절이 수신되면 서류는 반환.
하지만 만약 다른 두 이벤트가 발생하지 않은 채
14일이 경과하면 지원자에게 전화를 해 상기시킴
<그림 8> 이벤트 기반 결정
10
13. 3.1 게이트웨이의 종류
게이트웨이(Gateway)
게이트웨이는 프로세스의 논리적인 흐름을 정의하기 위해 프로세스를 분할하거나 병합하기 위한 용도로 사용된다.
구분 표기 설명
데이터 기반
출구 조건을 갖는다.
(Data Based)
배타적 게이트웨이는 반드시
배타적 (Exclusive)
한 경로만 선택된다.
이벤트 기반
출구 조건을 갖지 않는다.
(Event Based)
포괄적 (Inclusive) 하나 혹은 그 이상의 경로로 분할되거나 병합한다.
병렬 (Parallel) 두 개 이상의 경로로 분할되어 동시에 실행된다.
복합 (Complex) 토큰을 처리하기 위한 임의의 규칙이 포함될 수 있다.
12
14. 3.2 배타적 조건을 표기한 예(1)
배타적 게이트웨이(Exclusive Gateway)
하나의 경로만 선택되며, 프로세스를 분할 하거나
병합하기 위해 사용된다.
빈 마름모 모양이나 마름모 안에 ‘X’ 표시가
되어있는
마름모 기호를 사용한다.
판단을 해야 하는 액티비티가 존재한다면
- 기본적으로 배타적 게이트웨이가 사용된다.
배타적 게이트웨이 안에 질문이 포함될 수도 있다.
- 하나의 게이트웨이는 여러 출구를 가질 수
있으며,
- 기본 출구도 정의될 수 있다.
<그림 3> 배타적 조건을 표기한 예
13
15. 3.3 배타적 조건을 표기한 예(2)
복잡한 조건문을 처리하는 것도 용이
다이아몬드 모양의 게이트웨이가
프로세스를 분할하고 병합
조건에 따라 항공편 예약과
기차편 예약중 하나의 프로세스만 선택
전형적으로 많이 사용되는 형태의 조건문
<그림 3> 배타적 조건을 표기한 예
14
16. 3.4 병렬적 조건을 표기한 예(1)
병렬 게이트웨이(Parallel Gateway)
프로세스가 두 개 혹은 그 이상의 병렬 경로로
분할되어 동시에 실행되는 것을 표현하기 위한
게이트웨이이다.
논리적으로 “And”에 해당하며, 마름모 기호 안에
‘+’ 표시가 되어있는 기호를 사용한다.
병렬 게이트웨이에 의해 분할된 경로는
병렬 게이트웨이에 의해 다시 합쳐진다.
분할 병렬 게이트웨이는 각각의 시퀀스
플로우로 토큰을 복제한다.
<그림 4> 병렬적 조건을 표기한 예
통합 병렬 게이트웨이는 모든 토큰들을
기다린 후 하나의 토큰으로 통합한다.
15
17. 3.5 병렬적 조건을 표기한 예(2)
프로세스가 두 개 혹은 그 이상의 병렬 경로로 분할되어 동시에 실행되는 것을 표현하기 위한 게이트웨이
논리적으로 ‘and’에 해당하며, 다이아몬드 기호 안에 ‘+’ 표시가 되어있는 기호를 사용
<그림 4> 병렬적 조건을 표기한 예
16
18. 3.6 포괄적 조건을 표기한 예(1)
포괄적 게이트웨이(Inclusive Gateway)
포괄적 게이트웨이는 하나 혹은 그 이상의 경로를
선택하거나 병합한다.
논리적으로 “Or”에 해당하며, 마름모 기호 안에
동그라미 표시가 되어있는 기호를 사용한다.
최소한 하나 이상의 어떠한 조합도 가능하다.
분할 포괄적 게이트웨이의 송신 시퀀스 플로우는
조건이 함께 제시된다.
<그림 5> 포괄적 조건을 표기한 예
17
19. 3.7 포괄적 조건을 표기한 예(2)
하나 혹은 그 이상의 경로를 선택하거나 병합
논리적으로 ‘or’에 해당, 다이아몬드 기호 안에 동그라미 표시가 되어있는 기호를 사용
플로우차트나 액티비티 다이어그램에서 표현하기 어려운 부분을 BPMN에서는 쉽게 표현 가능하다는 것을 알 수 있음
<그림 5> 포괄적 조건을 표기한 예
18
21. 4.1 SOA(Service Oriented Architecture)
SOA(Service Oriented Architecture) 란?
웹 서비스에 근거하여 기업내의 각 업무단위를 독립적이고 반
복사용이 가능한 형태인 서비스라는 컴포넌트로 구현하여, 이를
유연하게 연결함으로써 결과물을 산출한다. 웹 서비스의 유연한
연결방식을 바탕으로, 각각의 서비스는 필요에 따라 다양한 형태
로 연결되어 구성이 될 수 있으며, 이러한 변경을 통해 비즈니스
환경이나 요구사항의 변화에 발 빠르게 대처할 수 있는 것이다.
즉, SOA는 내부의 단위 업무를 서비스로 정의하고 이를 조합하
여 하나의 어플리케이션을 구성하는데 이러한 어플리케이션을
컴포지트 어플리케이션(Composite Application)이라고 한다.
20
22. 4.2 SOA(Service Oriented Architecture)
SOA(Service Oriented Architecture)의 장점
SOA를 통해서 구현된 컴포지트 어플리케이션은 미리 정의된 서비스들을 조합하여 원하는 기능을 구현하
며, 새로운 기능의 추가나 개선은 기존 서비스를 수정하거나 재 조합함으로써 구현되기 때문에 변화하는
비즈니스 환경에 쉽게 대처할 수 있는 융통성을 제공해 준다.
SOA 구현
기존 어플리케이션은 분할 가능한 서비스로 분할
각각의 서비스들을 비즈니스 프로세스 내에 통합
BPEL(Business Process Execution Language) 이란?
웹서비스 환경에서 비즈니스 프로세스를 정의하고 실행하기 위한 업계 표준 언어로서
이 기종 어플리케이션 및 서비스들을 비즈니스 프로세스로 통합하기 위한 새로운 표준이다.
(비즈니스 프로세스를 설계하는 것은 BPMN의 영역이다.)
21
23. 4.3 차세대 시스템
차세대 시스템이란?
차세대 시스템 비즈니스 프로세스를 중심으로 하위 단의 구현 기능 등을
표준화된 방법으로 유연하게 제어할 수 있는 시스템을 말한다.
현대기아차의 SOA 프로젝트
현대기아차의 경우 2009년부터 20012년까지 SOA 솔루션 구축의 로드맵 발표.
신한카드 차세대 시스템(2010년 12월)
신한카드 차세대 시스템 구축 프로젝트에 BPMN과 BPEL 표준을 준수해야 한다는 것이 RFP에 명시됨.
http://www.isnews.co.kr/news/articleView.html?idxno=12669
22
25. 4.1 BPMN 2.0의 혁신
• 프로세스와 협업 모델링을 위한 확장
새로운 이벤트 타입: 병렬 다중 이벤트(parallel multiple event), 그리고 단계 상승 (escalations)
프로세스를 시작하기 위한 병렬 이벤트 기반 게이트웨이(parallel event-based gateway)
액티비티(activity)에 덧붙여진 중간 이벤트들(intermediate events)
특별히 정의된 이벤트 발생 시에만 실행되는 이벤트 하위 프로세스(event sub-processes)
데이터의 표현을 위한 확장된 옵션: 예를 들어 데이터 저장소와 데이터 객체를 나타내는 리스트
프로세스에 관계하는 다중 인스턴스 참가자들의 협업(collaboration) 모델링으로의 업그레이드,
인벨롭 심볼(봉투 기호)로 표현되는 참가자들간 전달 메시지 표시
다른 종류의 작업(task)을 위한 기호(symbol)
다른 곳에서 정의된 액티비티를 불러오는 모델링의 새로운 방법
병렬 혹은 순차적 실행에 따른 다중 인스턴스 액티비티(multi- instance activity)를 위한 구분되는 표시기
• 새로운 다이어그램
통합 연출 다이어그램 협업의 의미에서처럼 비즈니스 파트너 간의 데이터 교환에 대한 모델링.
(choreography diagram)
대화형 다이어그램 여러 비즈니스 파트너들과의 커뮤니케이션 통로(links)를 정의한다.
(conversation diagram)
24
26. 4.2 BPMN 2.0의 혁신
메타 모델(Meta Model)이란?
메타모델이란 모델을 기술하기 위한 모델을 말한다.
메타 모델(Meta Model)표현
• OMG에선 BPDM(Business Process Definition Metamodel, 비즈니스 프로세스를 정의하기 위한 메타 모델)의 제안서를 통해서
• 메타 모델과 연동되기 위한 태스크의 유형(Task Type)이나 구현(Implementation)에 관한 속성이 있어야 한다는 것을 정의했다.
BPMN 2.0은 비즈니스 프로세스 다이어그램에서 메타 모델(Meta Model)을 표현하기 위한 최초의 공식적인 표기법이라고 할 수 있다.
더 이상 BPMN의 약어는 ‘Business Process Modeling Notation’이 아니라 ‘Business Process Modeling and Notation’ 이다.
BPMN 2.0의 표준화된 교환 형식
BPMN 2.0은 표준화된 교환 형식을 제공하기 때문에 다른 툴(Tool)로 BPMN 다이어그램을 옮기는 것이 가능해졌다.
그러므로 툴과 툴 뿐만 아니라 툴과 비즈니스 프로세스 관리 시스템(BPMS) 사이에서도
BPMN 다이어그램의 교환이 가능해 질 수 있다.
BPMN 2.0의 실행 프로세스에 대한 정의
실행 프로세스란 하위 단의 구현 기능들을 제어하기 위한 수단을 말하는데 BPMN 2.0에서는 특정 모델을 구체적으로 실행하는
방법에 대해 정의할 수 있게 되었으며, BPMN 다이어그램을 BPEL(Business Process Execution Language)로 전환하기 위한 규칙 또한
정의되어 있다.
25
27. 4.3 비즈니스 모델과 실행 가능(기술) 모델(1)
BPMN의 역할
BPMN은 워크프로우나 비즈니스 프로세스 관리 시스템(BPMS)의 프로세스 엔진에 의해서 실행되는
프로세스를 정의하기 위한 영역에서 출발했지만, 결국 BPMN이 업무 담당자와 IT 전문가 사이의
원활한 커뮤니케이션을 위한 소통의 언어가 될 것이다.
비즈니스 모델
비즈니스 모델을 작성하는 주요 목적은 기본적인 프로세스의 흐름을 이해하기 위한 것이다.
그러므로 너무 많은 세부사항을 정의하지 않는 것이 바람직하다.
실행 가능(기술) 모델
기술 모델에서는 반복이나 예외처리 그리고 트랜잭션 등을 포함할 수 있다.
그러므로 비즈니스 모델에서도 기술적인 처리를 표현해줄 수 있어야만 한다.
BPMN 2.0은 프로세스 모델을 위한 실행 구조를 규정하고 있기 때문에
실행 가능 모델과 관련한 많은 문제들을 감소시킨다.
26
28. 4.4 비즈니스 모델 실행 가능(기술) 모델 (2)
비즈니스 모델과 기술 모델(워크플로우 모델)의 차이점
비즈니스 모델의 주요 목적은 기본적인 프로세스의 흐름을 이해
일반적으로 너무 많은 세부사항을 정의하는 것은 자제
결정조건은 명확한 논리적 용어보다는 단순 텍스트로 표현
예외 처리나 일반적이지 않은 경우는 대개 상세하게 모델로 정의 X, 주석이나 해설을 통해 설명
기술 모델의 경우, 구체적인 상황과 조건이 다 반영되어 나타나야 함
비즈니스 모델의 한계점
기존의 프로세스 모델링 도구의 표현의 한계로 비즈니스,기술 모델 통합에 어려움과 시간 소요
IT전문가들이 프로세스 모델링 도구 활용으로 모델링을 할 때는 반복 구조, 예외 처리, 트랜잭션 포함하여 작성
비즈니스 전문가들은 일반적으로 내용을 대개 생략한 채로 다이어그램을 작성 (반복구조, 예외처리, 트랜잭션 포함 X)
이러한 기본적인 차이로 인해서 전형적인 비즈니스 모델들은 전체 표기법 중에서 제한된 부분만을 포함
27
29. 4.5 BPMN 가능성
비즈니스 모델 가능성
과거에는 비즈니스 모델과 기술 모델은 다소 거리가 있는 영역
BPMN에서는 비즈니스 모델이 바로 기술 모델로 전환될 수 있는 가능성 갖게 됨
BPMN은 더 이상 단순히 비즈니스 프로세스 모델링 표기법(Business Process Modeling Notation)이 아니라
비즈니스 프로세스 모델링과 표기법(Business Process Modeling and Notation)이 된 것이다.
BPMN은 분명히 IT에 기반을 두고 출발했지만, IT업계뿐만 아니라 경영을 비롯한 산업계 전반에서
모든 업무적인 상황을 표현하고 관리하기 위한 일반적인 방법으로 광범위하게 사용될 것이다.
28
30. 책에 관하여
• BPMN 2.0 – 비즈니스 프로세스 모델링 입문
• 입문서
• 원서의 웹사이트는 www.bpmn-introduction.com이다.
• 한국 내의BPMN커뮤니티사이트는BPMN연구소(www.bpmn.co.kr, www.bpmnlab.com)이다.
29