FlowEngine¶
ในปัจจุบันภาษาในการเขียนโปรแกรมนั้นมีจำนวนมากขึ้น ทั้งภาษาที่มีการเปลี่ยนแปลงอยู่ตลอดเวลา รวมไปถึงลักษณะการเขียนที่ต้องใช้เวลาในการทำความเข้าใจ การสร้าง Flow Programming ขึ้นมาจึงเป็นเครื่องมือที่ช่วยลดความยุ่งยากในการทำความรู้จักภาษาโปรแกรมต่าง ๆ ให้น้อยลง และช่วยให้ผู้ใช้งานที่แม้จะไม่เคยเขียนโปรแกรมใด ๆ มาก่อนก็สามารถเริ่มต้นการใช้งานได้อย่างง่ายดาย จุดเด่นของ Flow Programming คือการตัดส่วนของการเขียนโปรแกรมด้วยภาษาต่าง ๆ ทิ้งออกไป แล้วแทนที่ส่วนต่าง ๆ ที่ต้องเขียนด้วยโหนดการทำงานแต่ละส่วน เช่น หากต้องการให้โปรแกรมพิมพ์ข้อความใดข้อความหนึ่งออกมา แทนการที่ผู้ใช้งานต้องเขียนโปรแกรมเพื่อให้แสดงผลค่าข้อความนั้น ผู้ใช้งานสามารถเลือกใช้โหนดแสดงผลข้อความมาใช้งานได้ทันที เป็นต้น

FlowEngine คือเครื่องมือในลักษณะของ Flow Programming ที่ทาง NEXPIE ได้นำมาใช้เพื่อให้ผู้ใช้งานสามารถสร้างโปรแกรมที่สามารถติดต่อสื่อสารกับอุปกรณ์ได้ง่ายดายมากขึ้น ผ่านการลากโหนดต่าง ๆ มาเชื่อมต่อกันเพื่อกลายเป็นโฟลว์ขนาดใหญ่โฟลว์หนึ่งที่คล้ายคลึงกับการสร้างผังงาน (Flowchart)
ภาพรวมการสร้างโฟลว์¶
การสร้างโฟลว์ขึ้นมานั้น มีส่วนประกอบหลัก ๆ 4 อย่างที่ผู้ใช้งานมักจะต้องใช้ตลอดเวลา ได้แก่ แถบเมนูด้านบน (Header) ที่ใช้ในการบันทึกการเปลี่ยนแปลงภายในโฟลว์ และรวมเมนูการตั้งค่าหลักของโฟลว์เอาไว้ แพลิตต์ (Palette) ที่รวบรวมโหนดต่าง ๆ ไว้ทางด้านซ้ายของหน้าต่างโปรแกรม เวิร์คสเปซ (Workspace) ที่ใช้ในการสร้างโฟลว์ขึ้นมา และแถบเมนูข้าง (Sidebar) ทางด้านขวาของโปรแกรมที่ใช้เพื่ออธิบายลักษณะของโฟลว์หรือโหนดต่าง ๆ ภายในโปรแกรม รวมไปถึงการแสดงข้อความและการตั้งค่าการแสดงผลต่าง ๆ ภายในโปรแกรมด้วย

เพื่อให้เข้าใจถึงองค์ประกอบและการใช้งานต่าง ๆ ของ FlowEngine ผู้ใช้งานอาจเริ่มจากการเข้าใจถึงแนวคิดขั้นพื้นฐานในความหมายของสิ่งที่อาจจะถูกพูดถึงในภายหลัง ซึ่งจะช่วยให้ผู้ใช้งานสามารถคุ้นชินกับคำศัพท์และเห็นภาพถึงการใช้งาน ได้มากขึ้น
โหนด¶

โหนด (Node) เป็นรากฐานการใช้งานพื้นฐานของโฟลว์ ซึ่งโหนดจะมีการกระตุ้นให้เกิดการใช้งานขึ้นเมื่อได้รับข้อความที่ถูกส่งมาจากโหนดก่อนหน้าของโฟลว์ หรือมีเหตุการณ์บางอย่างจากภายนอกมากระตุ้นให้เกิดการเปลี่ยนแปลง เช่น HTTP Request การตั้งเวลา หรือเหตุการณ์อื่น ๆ ซึ่งเมื่อเข้ามาในโหนดนั้นแล้ว อาจทำให้เกิดการทำงานบางอย่างและส่งข้อความไปยังโหนดอื่น ๆ ที่เชื่อมต่ออยู่ในโฟลว์เดียวกันได้อีกด้วย โหนดแต่ละโหนดสามารถมีจุดเชื่อมต่อขาเข้าได้สูงสุดเพียงหนึ่งจุดเท่านั้น แต่สามารถมีจุดเชื่อมต่อขาออกจากโหนดได้มากกว่าหนึ่งจุด

โฟลว์¶

โฟลว์ (Flow) คือ คำที่ใช้อธิบายกลุ่มของโหนดที่เชื่อมต่อกันหนึ่งกลุ่ม ซึ่งภายในหนึ่งโฟลว์ (แถบหน้าโฟลว์) สามารถมีโฟลว์ (กลุ่มการเชื่อมต่อของโหนด) ได้มากกว่าหนึ่งชุด โฟลว์แต่ละโฟลว์จะมีชื่อเรียกเป็นของตัวเอง เช่นเดียวกับคำอธิบายของโฟลว์นั้นซึ่งจะปรากฏขึ้นบนแถบเมนูรายละเอียดด้านขวาของหน้าต่างโปรแกรม
ข้อความ¶
ข้อความ (Message) จะถูกส่งผ่านกันระหว่างโหนดแต่ละโหนดภายในโฟลว์ โดยจะอยู่ในลักษณะของ JavaScript Object ที่สามารถรวบรวมค่าคุณสมบัติต่าง ๆ ของข้อความนั้นเอาไว้ภายในได้ ซึ่งมักจะใช้ตัวแปร msg ในการอ้างอิงถึงข้อความต่าง ๆ ภายในโฟลว์ ซึ่งโดยปกติแล้ว ภายในข้อความเหล่านี้ที่ได้ถูกใช้งานจะมีค่าตัวแปรที่ชื่อว่า payload ซึ่งจะทำการรวบรวมข้อมูลสำคัญเอาไว้บรรจุอยู่ภายในด้วยเสมอ
ซับโฟลว์¶

ซับโฟลว์ (Subflow) คือ พื้นที่ที่ใช้รวบรวมส่วนหนึ่งของโฟลว์เอาไว้ให้กลายเป็นโหนดใหม่อีกโหนดหนึ่งที่สามารถนำไปใช้งานได้ในตำแหน่งอื่น ๆ ของเวิร์คสเปซ ประโยชน์หลัก ๆ ของการสร้างซับโฟลว์ขึ้นมาในโฟลว์คือจะช่วยลดความยุ่งเหยิงและดูยากของโฟลว์ให้เล็กลง อีกทั้งยังมีประโยชน์ต่อกลุ่มการทำงานของบางโหนดที่อาจสามารถนำไปใช้ซ้ำในตำแหน่งอื่น ๆ ของโฟลว์ได้
เส้นเชื่อมต่อ¶

การสร้างโฟลว์นั้นจำเป็นต้องใช้เส้นเชื่อมต่อ (Wire) ในการใช้เชื่อมต่อระหว่างโหนดหลาย ๆ โหนดเข้าด้วยกัน ซึ่งจะช่วยในการอธิบายถึงการไหลของข้อความว่าเดินทางจากโหนดใดไปสู่โหนดใดบ้าง การลากเส้นเชื่อมต่อนี้ ผู้ใช้งานสามารถทำได้โดยการลากจากจุดสีเทาของโหนดหนึ่งไปเชื่อมต่อกับอีกโหนดหนึ่ง โดยมีเงื่อนไขว่า ต้องเชื่อมต่อจุดสีเทาทางด้านขวาของโหนดเข้ากับทางด้านซ้ายของโหนดเท่านั้น
แพลิตต์¶

แพลิตต์จะปรากฏที่ด้านซ้ายของหน้าต่างโปรแกรม ซึ่งจะรวบรวมโหนดต่าง ๆ ที่สามารถใช้งานได้ภายในโฟลว์นั้น โดยแต่ละโหนดที่อยู่ภายในแพลิตต์จะถูกแบ่งออกเป็นหมวดหมู่ย่อยต่าง ๆ อิงตามประเภทการใช้งานของโหนดเหล่านั้น เช่น การใช้งานทั่วไป (Common) ฟังก์ชัน (Function) การจัดเก็บ (Storage) เป็นต้น ซึ่งจะช่วยให้ง่ายต่อการค้นหาและนำมาใช้งานวางลงบนโฟลว์
เวิร์คสเปซ¶

เวิร์คสเปซคือพื้นที่หลักที่โฟลว์จะถูกสร้างขึ้นจากการนำโหนดซึ่งอยู่ภายในแพลิตต์ลงมาวางลงไปแล้วเชื่อมต่อโหนดแต่ละโหนดนั้นเข้าด้วยกัน เวิร์คสเปซจะปรากฏแถบรายชื่อของโฟลว์และซับโฟลว์ที่กำลังเปิดใช้งานอยู่ด้านบน
แถบเมนูข้าง¶

แถบเมนูข้างจะประกอบไปด้วยเมนูต่าง ๆ ที่ได้ทำการรวบรวมเครื่องมือที่มีประโยชน์ต่อการใช้งานเอาไว้ ซึ่งจะรวมไปถึงการดูข้อมูลต่าง ๆ และความช่วยเหลือในการใช้งานโหนดที่ผู้ใช้งานเลือก ดูข้อความที่ถูกส่งผ่านระหว่างกันของโหนดต่าง ๆ เป็นต้น