การแปลงไฟล์ที่ทำงานบนขอบ (Edge‑Powered): กลยุทธ์สำหรับการประมวลผลอย่างเร็วและเป็นส่วนตัวบนอุปกรณ์ทรัพยากรต่ำ
เมื่อเวิร์คโฟลว์ต้องการให้ไฟล์ถูกแปลง ก่อน ที่มันจะออกจากอุปกรณ์—ไม่ว่าจะเป็นแท็บเล็ตสนามที่ทนทาน, กล้องอัจฉริยะ, หรือเกตเวย์เซนเซอร์ฝังตัว—โซลูชันแบบคลาวด์‑เท่านั้นก็ไม่เพียงพอ แบนด์วิธอาจกระจัดกระจาย, ที่เก็บข้อมูลท้องถิ่นจำกัด, และกฎระเบียบความเป็นส่วนตัวอาจห้ามการส่งเนื้อหาแบบดิบไปยังเซิร์ฟเวอร์ภายนอก ในสถานการณ์เหล่านี้การแปลงต้องทำบนขอบโดยใช้ CPU, หน่วยความจำและที่เก็บข้อมูลที่จำกัดของอุปกรณ์ พร้อมทั้งยังคงให้คุณภาพเทียบเท่ากับเครื่องมือบนเดสก์ท็อปเต็มรูปแบบ
บทความนี้จะอธิบายข้อพิจารณาทางเทคนิคที่ทำให้การแปลงบนขอบมีความเชื่อถือได้, การแลกเปลี่ยนที่เกี่ยวข้องกับการเลือกอัลกอริธึมและฟอร์แมตคอนเทนเนอร์, และรูปแบบการใช้งานที่คุณสามารถนำไปใช้ได้ทันที ไม่ได้ ส่งเสริม ผลิตภัณฑ์ใดเป็นพิเศษ, แต่จะอ้างอิงถึงระบบนิเวศโอเพ่นซอร์สและจุดที่บริการเน้นความเป็นส่วนตัวอย่าง convertise.app สามารถผสานรวมเพื่อทำการออฟโหลดแบบเลือกใช้เมื่อมีการเชื่อมต่อ
1. ทำไมการแปลงบนขอบจึงสำคัญ
1.1 ขีดจำกัดแบนด์วิธและความหน่วง
ในการปฏิบัติการสนามระยะไกล—การเฝ้าตรวจสิ่งแวดล้อม, การตอบสนองภัยพิบัติ, หรือการตรวจสอบในสถานที่—ลิงก์เครือข่ายมักเป็นดาวเทียมหรือเซลลูลาร์ที่มีโควต้าวัดเป็นเมกะไบต์ต่อชั่วโมง การอัปโหลดคลิปวิดีโอดิบขนาด 500 MB เพียงเพื่อให้เซิร์ฟเวอร์ระยะไกลทำการแปลงสามารถใช้ข้อมูลได้เท่ากับหนึ่งวันและเพิ่มความหน่วงที่พยากรณ์ไม่ได้ การทำการแปลงในเครื่องจะลดขนาดข้อมูลลง 5‑10 เท่า ทำให้ไฟล์เดียวกันสามารถส่งได้ภายในไม่กี่นาที
1.2 ความเป็นอธิปไตยของข้อมูลและความเป็นส่วนตัว
อุตสาหกรรมเช่นการดูแลสุขภาพ, การเงิน หรือด้านการป้องกันประเทศต้องปฏิบัติตามกฎระเบียบที่จำกัดการเคลื่อนย้ายข้อมูลข้ามพรมแดน การแปลงภาพทางการแพทย์ (DICOM) เป็น PDF ที่สามารถแชร์ได้บนอุปกรณ์ทำให้ตัวระบุผู้ป่วยไม่เคยผ่านเครือข่ายของบุคคลที่สาม, ลดความเสี่ยงจากการเปิดเผยข้อมูล นอกจากนี้การเก็บไฟล์ดิบในหน่วยความจำแล้วลบหลังแปลงยังลดพื้นผิวการโจมตี
1.3 การตัดสินใจแบบเรียล‑ไทม์
แอปพลิเคชันขอบบางอย่างต้องการผลตอบกลับทันที โดรนที่ถ่ายภาพความละเอียดสูงอาจต้องสร้างภาพย่อ JPEG หรือ WebP ภายในไม่กี่วินาทีเพื่อกำหนดเส้นทางการบินต่อไป การรอการตอบสนองจากบริการคลาวด์จะทำลายลูปการควบคุม
2. ทำความเข้าใจข้อจำกัดของทรัพยากร
อุปกรณ์ขอบมีความหลากหลายมาก ตั้งแต่บอร์ดระดับ Raspberry Pi (CPU 1 GHz, RAM 512 MiB) ไปจนถึงสมาร์ทโฟนสมัยใหม่ (หลายคอร์ ARM, RAM 8 GB) พายป์ไลน์การแปลงต้องถูกปรับให้สอดคล้องกับ ตัวกำหนดล่างสุด ที่คุณต้องการรองรับ
2.1 CPU และ SIMD
โค้ดแค็สดิจิทัลสมัยใหม่ (H.264, AV1, WebP) ได้ประโยชน์จากส่วนขยาย SIMD (NEON, SSE) หากฮาร์ดแวร์เป้าหมายไม่มีส่วนเหล่านี้ต้องพึ่งพาโค้ด C แบบธรรมดา—ช้ากว่าแต่ทำงานได้ ไลบรารีอย่าง libavif มีฟังก์ชันตรวจสอบการสนับสนุน NEON ที่ทำงานเวลา runtime และสลับเส้นทางโดยอัตโนมัติ
2.2 การใช้หน่วยความจำ
การแปลงวิดีโอทั่วไปต้องมีบัฟเฟอร์เฟรมอย่างน้อยสองชุด (อินพุตและเอาต์พุต) สำหรับสตรีม 1080p 30 fps บัฟเฟอร์ RGBA 32‑บิตหนึ่งเฟรมกินพื้นที่ประมาณ 8 MiB เมื่อหน่วยความจำจำกัด ควรพิจารณาประมวลผลแบบ tile‑based: ถอดรหัสส่วนของเฟรม, แปลง, เขียนออก, แล้วลบ tile นั้นก่อนย้ายไปยังส่วนต่อไป
2.3 การอ่าน/เขียนบนที่เก็บ
สื่อ flash มีอายุการเขียนจำกัด ควรลดไฟล์ชั่วคราวให้เหลือน้อยที่สุด; สตรีมโดยตรงจากแหล่งไปยังเอ็นโคเดอร์โดยใช้ pipe (ffmpeg -i pipe:0 -f avif pipe:1) หากต้องใช้บัฟเฟอร์ชั่วคราวจริง ๆ ให้วางไว้บน RAM‑disk (tmpfs) เพื่อหลีกเลี่ยงการสึกหรอของ flash
3. การเลือกฟอร์แมตที่เหมาะสมสำหรับการแปลงบนขอบ
การเลือกฟอร์แมตเป้าหมายไม่ใช่แค่เรื่องคุณภาพภาพ; ยังกำหนดค่าใช้จ่ายการคำนวณ, ขนาดไฟล์สุดท้าย, และความเข้ากันได้ด้วย
| ประเภทแหล่ง | ฟอร์แมตเป้าหมายที่แนะนำบนขอบ | เหตุผล |
|---|---|---|
วิดีโอดิบ (เช่น .mov, .avi) | AV1 หรือ HEVC (H.265) | ให้การบีบอัดสูงที่บิทเรตต่ำ; AV1 ไม่มีลิขสิทธิ์แต่ช้าบนอุปกรณ์เก่า |
| ภาพความละเอียดสูง (RAW, TIFF) | WebP หรือ AVIF | WebP lossless เร็ว; AVIF ให้บีบอัดดีกว่าในโหมดเสีย (lossy) แต่ต้องใช้ SIMD |
| สแกนเอกสาร (TIFF, BMP) | PDF/A‑2b (บีบอัดด้วย JBIG2) | รับประกันการเก็บรักษาระยะยาวพร้อมบีบอัดหน้าสแกน |
| การบันทึกเสียง (WAV) | Opus หรือ AAC‑LC | Opus ให้หน่วงเวลาต่ำและคุณภาพดีที่ใช้ CPU น้อย |
เมื่อความเป็นส่วนตัวเป็นหัวใจหลัก ควรเลือกฟอร์แมตที่ไม่ฝังการอ้างอิงภายนอก (เช่น URL ของสไตล์ชีทใน HTML) คอนเทนเนอร์อย่าง Matroska (.mkv) สามารถเก็บหลายแทร็กวิดีโอ/เสียงและคำบรรยายในไฟล์เดียว ทำให้การจัดการต่อไปง่ายขึ้น
4. การสร้างพายป์ไลน์การแปลงบนขอบที่มีประสิทธิภาพ
ต่อไปเป็นสถาปัตยกรรมขั้นตอน‑ต่อ‑ขั้นตอนที่สามารถเขียนด้วย C++, Rust หรือแม้กระทั่งภาษาระดับสูงอย่าง Python (เมื่อมี interpreter อยู่แล้วบนอุปกรณ์)
4.1 การรับข้อมูลเข้า
- ตรวจจับชนิดไฟล์ – ใช้ไลบรารี sniffing แบบ magic‑byte เบา ๆ (เช่น
libmagic) แทนการพึ่งพานามสกุลไฟล์ - ตรวจสอบความสมบูรณ์ – คำนวณ SHA‑256 อย่างรวดเร็วเพื่อให้มั่นใจว่าแหล่งที่มายังไม่เสียหาย (สำคัญสำหรับข้อมูลเซนเซอร์) เก็บค่าแฮชไว้เพื่ออ้างอิงต่อไป
4.2 การเตรียมล่วงหน้า
- ปรับขนาดความละเอียด – หากอุปกรณ์แสดงผลได้สูงสุด 720p ให้ทำการ downscale ตั้งแต่แรกโดยใช้ฟิลเตอร์ bilinear เร็ว เพื่อให้ภาระงานของเอ็นโคเดอร์ลดลง
- แปลงสี – แปลงจาก YUV420p ที่อุปกรณ์อาจใช้เป็นฟอร์แมตที่เอ็นโคเดอร์ต้องการ; ไลบรารีสมัยใหม่หลายตัวรับหลายอินพุต ทำให้ไม่ต้องแปลงแยก
- ปรับระดับเสียง – ใช้การปรับเกน RMS อย่างง่ายเพื่อหลีกเลี่ยง clipping ในไฟล์สุดท้าย
4.3 การแปลงแบบสตรีม
หัวใจของพายป์ไลน์ขอบคือ สตรีม: ข้อมูลไหลจากแหล่งไปยังเอ็นโคเดอร์โดยไม่ผ่านระบบไฟล์
# ตัวอย่างการใช้ FFmpeg บนกล่อง Linux ที่มีข้อจำกัด
ffmpeg -hide_banner -loglevel error \
-i input.mov \
-vf "scale=1280:720" \
-c:v libx264 -preset veryfast -crf 28 \
-c:a aac -b:a 96k \
-f mp4 -movflags +faststart pipe:1 > output.mp4
-preset veryfastลดการใช้ CPU แม้ไฟล์อาจใหญ่กว่าเล็กน้อย-movflags +faststartวาง atommoovของ MP4 ไว้ด้านหน้า ทำให้ไฟล์เล่นได้ทันทีขณะยังดาวน์โหลดอยู่
หาก FFmpeg หนักเกินไป สามารถฝัง libav ลงในแอปโดยส่งบัฟเฟอร์ผ่าน callback ซึ่งจะลบความจำเป็นของโปรเซสแยกและลดการใช้หน่วยความจำ
4.4 หลังการแปลงและการตรวจสอบ
หลังการแปลงเสร็จสิ้น:
- คำนวณแฮชใหม่ ของไฟล์ผลลัพธ์และเก็บแฮชคู่ขนานกับแฮชต้นฉบับ เพื่อใช้ตรวจสอบความสมบูรณ์เมื่อนำส่งต่อ
- ตรวจสอบเมตาดาต้าในคอนเทนเนอร์ – ตรวจให้แน่ใจว่า timestamp, แท็กภาษา, และแฟล็กการหมุนถูกตั้งค่าอย่างถูกต้อง เครื่องมืออย่าง
ffprobeสามารถสคริปต์ดึง JSON แล้วตรวจสอบตามเงื่อนไขได้ - ลบไฟล์ดิบอย่างปลอดภัย – เขียนทับไฟล์ดิบด้วยข้อมูลสุ่มก่อนลบ เพื่อลดความเสี่ยงจากการกู้คืนข้อมูลทางฟอเรนซิกส์
5. การจัดการการเชื่อมต่อที่ไม่ต่อเนื่อง
อุปกรณ์ขอบมักไม่มีเครือข่ายที่เสถียร พายป์ไลน์การแปลงควรถูกแยกออกจากส่วนอัปโหลด
5.1 สถาปัตยกรรมแบบคิว
- คิวในเครื่อง – เก็บไฟล์ที่แปลงเสร็จใน SQLite ขนาดเบา พร้อมคอลัมน์สถานะ (
pending,uploading,failed) - อัปโหลดเบื้องหลัง – เธรดหรือ cron job แยกที่พยายามอัปโหลดเมื่อเครือข่ายพร้อม โดยใช้ exponential back‑off
- การถ่ายโอนแบบแบ่งชิ้น – แบ่งไฟล์ใหญ่เป็นชิ้นขนาด 5 MiB; แต่ละชิ้นสามารถลองใหม่ได้โดยอิสระ ลดการเสียแบนด์วิธเมื่อการเชื่อมต่อเสียกลางทาง
5.2 การซิงค์แบบโอกาส (Opportunistic Sync)
เมื่ออุปกรณ์ต่อเด็กรายหรือเข้าสู่โซน Wi‑Fi ให้กระตุ้นซิงค์เป็นกลุ่ม วิธีนี้คล้าย “delay‑tolerant networking” ทำให้การแปลงสามารถทำต่อได้โดยไม่ต้องกังวลว่าไฟล์จะต้องส่งออกทันที
6. วิธีปฏิบัติรักษาความเป็นส่วนตัวบนขอบ
แม้การแปลงทำในเครื่องแล้ว ข้อมูลเหลืออยู่ก็อาจรั่วไหลผ่านบันทึก, ไฟล์ชั่วคราว, หรือการดัมพ์หน่วยความจำ
6.1 โหมด “เฉพาะหน่วยความจำ”
กำหนดค่าบิเนอรีแปลงของคุณด้วยแฟลก -nostats -loglevel error เพื่อปิดการแสดงผลละเอียด แบเฟอร์ชั่วคราวทั้งหมดให้ส่งไปยัง /dev/shm (POSIX shared memory) ซึ่งอยู่ใน RAM
6.2 การเข้ารหัสข้อมูลที่พัก
หากอุปกรณ์ต้องเก็บไฟล์ที่แปลงไว้เพื่อเรียกคืนในภายหลัง ให้เข้ารหัสไดเรกทอรีด้วยคีย์เฉพาะอุปกรณ์ที่เก็บไว้ใน TPM หรือ secure enclave เครื่องมือโอเพ่นซอร์สอย่าง cryptsetup สามารถเมานต์แบบเข้ารหัสได้โดยเรียกจากสคริปต์
6.3 การเก็บเทลเมตริกส์ขั้นต่ำ
เก็บเฉพาะเมตริกสรุป (เช่น เวลาแปลง, จำนวนสำเร็จ/ล้มเหลว) อย่าใส่ชื่อไฟล์หรือแฮชใน payload telemetry เว้นแต่ผู้ใช้ให้ความยินยอมอย่างชัดเจนสำหรับการดีบัก
7. การเลือกไลบรารีและทูลเชนที่เหมาะสม
ต่อไปเป็นรายการไลบรารีที่คัดสรรเพื่อความสมดุลระหว่างคุณภาพ, ความเร็ว, และขนาด, เหมาะกับสภาพแวดล้อมขอบ
| ด้าน | ไลบรารี | ขนาดประมาณ | ใบอนุญาต |
|---|---|---|---|
| การถอดรหัส/เข้ารหัสวิดีโอ | FFmpeg (core) | 7 MiB (static) | LGPL/GPL |
| การเข้ารหัส AV1 | rav1e (Rust) | 3 MiB | BSD‑3 |
| การแปลงภาพ WebP/AVIF | libwebp, libavif | 1–2 MiB | BSD‑3 |
| โคเดกเสียง | Opus | 300 KiB | BSD‑3 |
| การสร้าง PDF | PoDoFo, libharu | 2 MiB | LGPL/Zlib |
| การเข้ารหัส | libsodium | 500 KiB | ISC |
| การจัดการ Metadata | Exiv2 (ภาพ), poppler (PDF) | 2 MiB | GPL |
เมื่อเป็นเรื่องของลิขสิทธิ์ ควรเลือกไลบรารีที่มีใบอนุญาต BSD หรือ MIT ที่เปิดกว้าง หากต้องการใช้งานในสภาพแวดล้อมที่จำกัด คอมไพล์ FFmpeg เฉพาะโคเดกที่ต้องการ (--enable-libx264 --disable-everything --enable-decoder=...)
8. ตัวอย่างจากโลกจริง: แปลงภาพสำรวจสนามเป็น PDF ที่พร้อมเก็บถาวร
สมมติว่าทีมสำรวจสัตว์ป่ามีแท็บเล็ตทนทานที่จับภาพ RAW ความละเอียดสูง (14 MP) ขั้นตอนการทำงานต้องการ:
- ดูตัวอย่างอย่างเร็ว – สร้าง JPEG thumbnail บนเครื่องทันที
- เก็บถาวรระยะยาว – PDF/A ที่ค้นหาได้ซึ่งบรรจุภาพต้นฉบับและเมตาดาต้า GPS
- ใช้แบนด์วิธต่ำ – ส่งไฟล์ PDF เพียงไฟล์เดียวผ่านลิงก์ 2G
ขั้นตอนการทำงาน
- จับภาพ – บันทึกเป็น
IMG_001.CR2 - สร้างตัวอย่าง – ใช้
dcraw -eดึง thumbnail ในตัว (≈150 KB) แสดงให้ตรวจสอบทันที - พายป์ไลน์แปลง
- ถอดรหัส RAW ด้วย
librawให้เป็นบัฟเฟอร์ 16‑bit linear - ปรับขนาด เป็นความกว้าง 1920 px (รักษาอัตราส่วน) ด้วย
stb_image_resizeเพื่อลดข้อมูลสำหรับ PDF - บีบอัด เป็น JPEG‑2000 (lossless) ผ่าน
OpenJPEGเพื่อนำเข้า PDF โดยไม่เสียคุณภาพ - สร้าง PDF/A‑2b – ใช้ PoDoFo ฝัง JPEG‑2000, เพิ่มเมตาดาต้า XMP สำหรับ GPS, ตั้งโปรไฟล์สี sRGB, และตั้ง flag ให้เป็น PDF/A
- สตรีม PDF สุดท้ายตรงไปยัง RAM‑disk แล้วย้ายไปยังพื้นที่เก็บที่เข้ารหัส
- ถอดรหัส RAW ด้วย
- ตรวจสอบ – รัน
pdfinfo -metaเพื่อยืนยันความเป็น PDF/A และตรวจเมตาดาต้า XMP - อัปโหลด – คิวไฟล์ PDF เพื่อส่ง; ตัวอัปโหลดบีบอัดด้วย
zstd -9ก่อนส่งไปยังเซิร์ฟเวอร์ศูนย์กลาง
กระบวนการทั้งหมดเสร็จในประมาณ 7 วินาทีบน ARM รุ่นกลาง, ใช้หน่วยความจำไม่เกิน 150 MiB, และไม่มีไฟล์ RAW ที่ไม่เข้ารหัสเหลืออยู่บนอุปกรณ์หลังเสร็จสิ้น
9. การทดสอบและ CI สำหรับตัวแปลงบนขอบ
แม้บนขอบ ความเชื่อถือได้ก็ต้องเป็นอันดับแรก ถือฟังก์ชันแปลงเป็นส่วนประกอบซอฟต์แวร์เช่นเดียวกับส่วนอื่น ๆ
- Unit test – ตรวจให้แน่ใจว่าอินพุตที่รู้จักให้ค่า checksum ที่คาดไว้สำหรับแต่ละฟอร์แมตเป้าหมาย
- Fuzz test – ส่งไฟล์ที่บิดเบือนให้ดีคอร์ดเดอร์เพื่อยืนยันว่าระบบล่มได้อย่างสุภาพ (ใช้
libFuzzer) - วัดประสิทธิภาพ – บันทึกเวลา CPU และการใช้ RAM บนอุปกรณ์อ้างอิง; ป้องกันการรวมโค้ดเมื่อเกินเกณฑ์ที่ตั้งไว้
- Hardware‑in‑the‑loop – ให้ CI pipeline รันบนฮาร์ดแวร์จริง (เช่น Raspberry Pi) ผ่าน Docker
--platformเพื่อตรวจสอบว่าไบนารีที่คอมไพล์ตรงสถาปัตยกรรมเป้าหมาย
การทำ automation นี้สามารถสร้างอิมเมจคอนเทนเนอร์ขนาดย่อม (Alpine‑based) เพื่อนำไปติดตั้งบนอุปกรณ์ขอบได้อย่างง่ายดาย
10. เมื่อใดควรกลับไปใช้คลาวด์
การแปลงบนขอบไม่ใช่วิธีแก้ปัญหาทุกอย่าง สถานการณ์ที่ควรพิจารณาใช้คลาวด์เป็นตัวสำรอง ได้แก่
- สื่อความละเอียดสูงสุด (วิดีโอ 8K, ภาพหลายกิกาพิกเซล) ที่อุปกรณ์ไม่สามารถจัดสรร RAM เพียงเฟรมเดียวได้
- การเก็บถาวรเป็นกลุ่ม – งานประมวลผลช่วงกลางคืนที่รวบรวม PDF ทั้งหมดและรัน OCR ขั้นสูง (เช่น Tesseract ที่ใช้ GPU) จะทำได้ดีกว่าในเซิร์ฟเวอร์
- เส้นทางการตรวจสอบตามกฎระเบียบ – หากต้องการให้บุคคลที่สามรับรองว่าการแปลงเป็นไปตามมาตรฐานใดมาตรฐานหนึ่ง จำเป็นต้องมีบันทึกลอคบนเซิร์ฟเวอร์ที่ไม่อาจแก้ไขได้
รูปแบบไฮบริดทำงานได้ดี: ทำการแปลงแบบ “เร็ว‑ต่ำ‑คุณภาพ” บนขอบเพื่อแชร์ทันที, จากนั้นอัปโหลดเพื่อให้คลาวด์ทำการแปลง “คุณภาพ‑สูง” อีกครั้งเมื่อมีทรัพยากรเพียงพอ
11. สรุปแนวทางที่ดีที่สุด
- ตรวจจับความสามารถของอุปกรณ์ – ค้นหา SIMD, RAM, พื้นที่เก็บก่อนเลือกโค้ดแค็ส
- สตรีมเสมอ – งดใช้ไฟล์ชั่วคราว, ส่งข้อมูลจากดีคอร์เดอร์ไปยังเอ็นโคเดอร์ผ่าน pipe
- เลือกฟอร์แมตอย่างชาญฉลาด – พิจารณาการบีบอัด, ค่าใช้จ่าย CPU, และความเข้ากันได้ (AVIF สำหรับภาพ, AV1 สำหรับวิดีโอ, PDF/A สำหรับเอกสาร)
- รักษาความปลอดภัยของเวิร์คโฟลว์ – ใช้บัฟเฟอร์ใน RAM, ที่เก็บเข้ารหัส, และลบไฟล์ดิบอย่างปลอดภัย
- แยกการแปลงจากการอัปโหลด – ใช้คิวในเครื่องและอัปโหลดแบบเบื้องหลังเมื่อเครือข่ายพร้อม
- ตรวจสอบผลลัพธ์ – คำนวณแฮชของไฟล์ต้นและไฟล์ผลลัพธ์, ตรวจเมตาดาต้า, ใช้เครื่องมือ validator เฉพาะฟอร์แมต
- ทดสอบอย่างเข้มงวด – Unit, fuzz, และการวัดประสิทธิภาพบนฮาร์ดแวร์จริง
- วางแผนการสำรองคลาวด์ – ออกแบบให้ระบบสามารถเรียกใช้บริการคลาวด์เมื่ออุปกรณ์ไม่สามารถทำตามคุณภาพหรือข้อจำกัดทรัพยากรได้
การนำหลักการเหล่านี้มาปรับใช้ จะทำให้องค์กรสามารถให้บริการการแปลงสื่อได้อย่างเร็ว, เป็นส่วนตัว, และมั่นคง แม้ในสภาพแวดล้อมที่ทรัพยากรจำกัดแบบสุดขีด รูปแบบเดียวกันยังนำไปใช้ต่อยอดในระบบกระจายขนาดใหญ่ที่โหนดขอบทำหน้าที่เป็นจุดประมวลผลแรกก่อนข้อมูลจะถูกส่งต่อไปยังคลังข้อมูลศูนย์กลาง.