Category Software Engineering

BPMN กับ UML แตกต่างกันอย่างไรนะ

หลังจากได้ลองอ่านงานของเพื่อน ของรุ่นน้อง พบว่าหลายคนยังไม่เข้าใจถึง Idea ของการสร้าง UML และ BPMN ครับ เลยขอมาเขียน Blog อธิบายก่อนจะลืมครับ อะไรเกิดก่อนกันครับ ? UML ปี ค.ศ. 1996-1997 หากใครสนใจดูประวัติเต็มมาที่นี่ History of UML ครับ BPMN ปี ค.ศ. 2000 มีแนวคิดเริ่มต้นจากองค์กร Business Process Management Initiative (BPMI) ก่อนจะรวมกับทาง OMG(Object Management Group) ในปี 2005 ครับ…

CIA + T Triad

Reference https://wallpapercave.com/w/wp2624768

วันนี้ผมมารีวิวหนังอะไร หรือป่าว ขอตอบว่าไม่ใช่ครับ โดยวันนี้ผมมาสรุป เรื่อง CIA + T Triad ที่มาช่วยให้เราพัฒนาระบบให้มีความปลอดภัยตั้งแต่ช่วงการออกแบบ (Design) ครับ โดยที่ตัวอย่างแต่ละตัวมีความหมาย ดังนี้ครับ จริงๆตอนแรกมันมีแต่ CIA แหละครับ แต่จากหนังสือ Secured by Design ผู้เขียนหนังสือขอเพิ่มตัว T เข้ามาด้วยครับ ซึ่งผมเห็นด้วยนะที่เพิ่ม เพราะ มันช่วยทำให้เราทราบปัญหา การเปลี่ยนไปของข้อมูลด้วยครับ ขอปิดท้ายด้วยว่า Security ไม่ใช่ Functional Requirement แต่มันเป็น Non-Functional Requirement (Quality Attribute) ซึ่งส่งผลกับการออกแบบระบบ และการเลือกใช้สถาปัตยกรรม…

[BPMN] Camunda – Job Executor เผื่อเวลาไว้สักนิดก็ดี

หลังจากลองทดสอบรันเครื่องมือที่เชื่อมกับ Camunda BPMN Engine แล้วมันแปลกๆ เคสที่เคยทำได้กลับไม่ผ่านซักงั้น หรือดักการค่าแล้วไม่ได้ตามที่คิด โดยสาเหตุที่ผลสงสัยน่าจะเกี่ยวกับการทำงานของเจ้า Job Executor Job Executor คือ อะไร มันเป็นตัวจัดการทุกสิ่งที่อย่างที่เป็นงานที่ต้องทำล่วงหน้า หรือมีกำหนดการชัดเจนครับ ซึ่งถ้าเราทำแบบจำลองที่มีการตั้งเวลาไว้ ในแง่ของตัว BPMN Engine มันจะเอาเงื่อนไขเหล่านั้นมาตั้งกำหนดการตามเวลาไว้ โดยเมื่อถึงเวลาที่กำหนดเจ้า Job Executor เข้ามากวาดงานไปทำต่อครับ ถ้าลองดูในส่วน Cockpit ของ Camunda เมื่อ Start Process และทำไปถึงจุดที่ได้มีเงื่อนไขที่เกินกับเวลาไว้ ตัว Camunda ไปสร้าง Job ไว้ครับ ถ้าดูจากแบบจำลองที่ผมแนบพบว่า NextDay…

[PM] เมื่อไม่ได้คุยกันมาก่อนถึงได้มีปัญหา

photo of people having meeting

ปีนี้น่าจะ 2020 เดือน 2 แล้วครับเอาหล่ะลองมาสรุปปัญหาในปีที่ผ่านๆมาดีกว่าครับว่าทำไมคนกลุ่มนึงถึงงานหนักอยู่เสมอ ทำไมโครงการ IT ถึงประเมินงานแล้วอะไรแล้วถึงต้องมาทำวันหยุด ประสบการณ์ผู้ประเมินไม่เพียงพอ อาจจะไม่เชี่ยวชาญในงานที่ทำ หรือ เคยประเมินครั้งแรกครับ Skill ยังขาดไป เช่น เคยทำ Windows APP แล้วมาประเมิน Web APP ประเมินแล้ว แต่เพื่อให้ได้งาน อาจจะต้องลดเวลาประเมินไปให้พอดีกับงบของลูกค้า อันนี้ประสบการณ์คนประเมินคนแรกอาจจะพอ แต่คนถัดมาอาจจะของปัดลดลงไป ไม่เข้าใจใน Product หรือยังใช้งานไม่คล่อง บริหารโครงการไม่เป็น(Project และ MA) ตามใจลูกค้าเกินไป เอ็นดูลูกค้า แต่ทีมตายเอา เลื่อนไป เลื่อนมาจน Delay จนทีมเละจาก Project…

[BPMN] Camunda TimeDate กับ TimeZone

จากปัญหาใน Blog ตอนก่อนครับที่สงสัยทำไมเวลามันไม่ขยับตรงตามที่คิดไว้ครับ หลังจากลองหามาว่าทำไมพอไปทดสอบแบบจำลองบน BPMN Engine พบว่ามันไม่ได้ทำงานตามที่ตั้งใจไว้ มาดูที่โจทย์ที่ผมคิดไว้ดีกว่า (แอบเอาภาพเก่ามาใช้นะครับ 555) มาดูที่ Time Boundary กันครับตามโจทย์ที่ผมตั้ง เวลาวันที่ 23-JAN-2020 เวลา 00:01 ถ้างานที่ค้างจากกิจกรรม First Line Support งานถูกส่งต่อ Second Line Support ซึ่งถ้าแปลงเป็น ISO8601 จะได้ 2020-01-23T00:00:01 พอลองรันจริงปรากฏว่า เมื่อถึงเวลามันไม่ทำงานครับ 55555 หลังจากหาลองหาดูใน Forum มี 2 กระทู้ที่มีความเป็นไปได้ครับ boundaryEvent not…

[BPMN] Camunda ทำไม 1 วันมันถึงบวกไปแค่ 17 ชั่วโมง

มันเริ่มจากผมทดสอบ Process ซึ่งมันจะตรวจสอบว่า ถ้ามีงาน Incident แจ้งเข้ามาเนี่ย ฝั่ง Customer Service จะเข้างานในส่วนของ First Line Support เพื่อมาแก้ปัญหา แต่ถ้างานค้างไป 1 วันมัน ตัวงานจะส่งต่อให้ Second Line Support เพื่อช่วยเหลือครับ โดยภาพรวมของกระบวนการเป็นไปดังรูปครับ ลองดูส่วนที่ผมวงๆสีแดงจริงๆมันต้องดู 1 วัน แต่มันดันเป็น 8 ชั่วโมงซะได้ ปัญหา คือ อะไรหละ อันนี้ต้องย้อนกลับไปดู Code ของตอนที่หาวันถัดไปครับ แบบแรกใช้ TimeZone UTC (มันไปคิดแบบ UTC…

[BPMN] Deploy Process ผ่าน REST-API

จริงๆ ใน Blog ตอนก่อน ช่วงที่ผมได้เล่นกับตัว Camunda BPMN ช่วงแรกจะพบว่าการ Deploy Process นั้นยุ่งยากครับ ต้องทำเป็นไฟล์ .war แล้วนำไปวางที่ Tomcat ครับ แต่จริงๆ มันมีวิธีการที่ง่ายกว่านั้น คือ การใช้ REST-API ครับ โดยมีข้อกำหนดของ Web Service ดังนี้ครับ REST-API : Deployment สำหรับตอนนี้ เราจะมาลองกันครับ โดยใช้ Tools ที่มีชื่อว่า POST-MAN สำหรับการทดสอบครับ โดยใน Blog ตอนนี้ ผมทดสอบ Create…

[BPMN] Access Camunda H2 Database

หลังจากว่างเว้นไปกับ Blog ของ Camunda BPMN Engine ไปพักใหญ่ๆ คราวนี้มีเหตุต้องไปไล่ดูแล้วว่าตัว Camunda BPMN มันเก็บข้อมูลอะไรบ้าง เพื่อเอาไปใช้กับ Thesis ครับ โดยการเข้าถึงตัว H2 Local Database ของ Camunda มีวิธีการ ดังนี้ครับ เมื่อ Start ตัว Camunda เรียบร้อยแล้วให้เข้าไปที่ url http://localhost:8080/h2/h2 Login เข้า Database โดยใช้ข้อมูล ดังนี้ JDBC URL: jdbc:h2:./camunda-h2-dbs/process-engine Username: sa Password:…

[BPMN] มา Test BPMN ที่สร้างจาก Camunda กันครับ

หลังจากยุ่งกับงานประจำนานเลย ตอนนี้เริ่มกลับมาทำงาน Thesis แล้วครับ ถ้าใครสร้าง BPMN ด้วย Camunda ไปแล้วนั่น หาจะทดสอบมีได้หลายวิธีครับ เช่น Deploy Process เข้าไปที่ตัว BPMN Engine แล้วกด Test เลย Deploy Process แล้วใช้ REST API ของ BPMN Engine เพื่อส่งค่าเข้าไป แต่ถ้ามาดูที่ตัว Camunda มีตัวช่วยสำหรับ Test เหมือนกันครับ โดยมีตัวช่วย ดังนี้ Test Project Template + Camunda BPM…

[BPMN] แก้ปัญหา Stack Size is too large บน Camunda BPMN

หลังจากลองตัว Camunda  BPMN Engine มาสักพัก แล้วจะทดสอบอะไร อยากรู้ว่ามันมีค่าเท่าไหร่ ปกติเราทำพวก Instrument Test เพื่อแสดงให้เห็นว่ากิจกรรมที่สนใจ โดยผมเขียนคำสั่งประมาณนี้ out:println “=========================================” out:println “execution id ” + execution.getProcessInstanceId(); out:println “loanAmt =” + execution.getVariable(“loanAmt”); out:println “=========================================” เมื่อนำไป Run กับ BPMN Engine พบว่า Stack Size is too large ครับ ปัญหา คือ…