JavaRush /จาวาบล็อก /Random-TH /เซิร์ฟเวอร์ โปรแกรมการศึกษาสำหรับหุ่น

เซิร์ฟเวอร์ โปรแกรมการศึกษาสำหรับหุ่น

เผยแพร่ในกลุ่ม
ด้านล่างนี้ เรามีการแปลบทความ The non-techie's guide to server โดย Kannan Chandrasegaran ผู้พัฒนาจาก Panopto โปรดทราบว่าบทความนี้มีไว้สำหรับผู้เริ่มต้นที่ไม่คุ้นเคยกับแนวคิดด้านเซิร์ฟเวอร์ของแอปพลิเคชันและเซิร์ฟเวอร์ เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 1

จากชีวิตในออฟฟิศ

เป็นเรื่องยากที่จะเป็น “คนไม่มีเทคโนโลยี” ในบริษัทไอที เชื่อฉันสิ! นักการตลาด ผู้จัดการฝ่ายขาย นักบัญชี ไม่สำคัญหรอก บางครั้งพวกเขาจะได้พบกับเพื่อนร่วมงานที่เชี่ยวชาญด้านเทคนิค พวกเขาอาจเป็นโปรแกรมเมอร์หรือผู้ดูแลระบบก็ได้... ไม่ว่าจะด้วยวิธีใดก็ตาม "ผู้ไม่ใช้เทคโนโลยี" จะรู้สึกเหมือนว่าพวกเขามีส่วนสำคัญของสมองที่ถูกตัดออก หรือพวกเขาลงจอดบนดาวเคราะห์ที่ไม่รู้จักด้วยสิ่งมีชีวิตที่ชาญฉลาดที่ไม่ใช่มนุษย์ หรือ…
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 2
แน่นอนว่าบางครั้งทุกอย่างก็จบลงด้วยดี เช่น เด็กผู้หญิง หน้ากำลังเดินไปตามทางเดิน ไม่มีอะไรบ่งบอกถึงปัญหา เธอกำลังมุ่งหน้าไปทางซ้าย คุณกำลังมุ่งหน้าไปทางขวา และโดยเร็วที่สุด... ไม่ ครั้งนี้มันไม่เกิดขึ้น คุณกำลังนั่งอยู่ที่โต๊ะกับเธอแล้ว และพยายามเอาชนะความเงียบที่น่าอึดอัดใจ คุณถามว่า: "แล้ว... คุณทำอะไรกันแน่?" เธอเริ่มพูดอะไรบางอย่าง แต่คุณไม่เข้าใจทันทีว่าเธอกำลังพูดถึงอะไร คำศัพท์เหล่านี้ดูเหมือนจะคุ้นเคย: ส่วนติดต่อผู้ใช้ แอปพลิเคชัน และ ใช่แล้ว Facebook คือเว็บไซต์ ใช่ มีปุ่มต่างๆ เมนู... คุณค้นพบความซับซ้อนของงานของเธอแล้ว พยักหน้าลา และเส้นทางของคุณก็แยกออกไปในทางเดินในสำนักงานขนาดใหญ่
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 3
แต่ไม่ช้าก็เร็วคุณจะไม่โชคดี: คุณจะได้พบกับวิศวกรเซิร์ฟเวอร์ หรือนักพัฒนาแบ็คเอนด์ ไม่รู้ว่าตอนนี้คุณจะพบว่าตัวเองอยู่ในป่าแบบไหน คุณถามคำถามเดียวกันอย่างไร้เดียงสาและ... ได้รับ Abracadabra เป็นการตอบกลับ คุณได้ยินคำศัพท์ต่างประเทศมากมาย และความคิดต่างๆ ก็ผุดขึ้นมาในหัว: “การถามว่า API คืออะไรสุภาพหรือไม่”, “เราใช้ “ฐานข้อมูล” ตลอดเวลาใช่ไหม”, “ใครวะเนี่ย” เจสันคนนี้เหรอ?” (JSON)?? เพื่อนวิศวกรของคุณพยายามบอกคุณเกี่ยวกับเซิร์ฟเวอร์ แต่เขาไม่เข้าใจว่ามันยากแค่ไหนสำหรับคุณที่จะเข้าใจคำพูดของเขาที่เต็มไปด้วยคำศัพท์ทางวิชาชีพ คุณอาจเคยได้ยินคำว่า "เซิร์ฟเวอร์" มาก่อน แต่มีใช้ในบริบทที่แตกต่างกันมากมายจนยากที่จะเข้าใจความหมายของคำนั้น ทีนี้มาลองทำความเข้าใจคำนี้กัน

ลงหลุมกระต่าย

เมื่อบุคคลทั่วไป (ไม่ใช่โปรแกรมเมอร์หรือผู้ดูแลระบบ) ใช้แอปพลิเคชัน สิ่งที่เขาเห็นก็คืออินเทอร์เฟซ รูปภาพที่ตอบสนองต่อการกระทำบางอย่างที่ชัดเจน (บ่อยที่สุด) ในความเป็นจริง สิ่งที่ผู้ใช้มักจะเข้าใจจาก "แอปพลิเคชัน" คือส่วนหน้า ซึ่งก็คือส่วนหน้า ซึ่งเป็น wrapper ที่พวกเขาโต้ตอบกัน แต่ผู้ใช้รู้น้อยมากเกี่ยวกับสิ่งที่อยู่ภายใน ซึ่งก็คือสิ่งที่ทำให้แอปพลิเคชันทำงานได้ สมมติว่าคุณส่งข้อความถึงฉันผ่าน Whatsapp หรือ Viber ดูเหมือนว่ามีข้อความมาจากสมาร์ทโฟนของคุณถึงของฉัน มาดูกระบวนการนี้กันดีกว่า สมมติว่าคุณส่งข้อความถึงฉันเมื่อโทรศัพท์ของฉันปิดอยู่ จากนั้นคุณปิดสมาร์ทโฟนด้วยตัวเอง ดังนั้นฉันจึงเปิดโทรศัพท์และยังคงได้รับข้อความของคุณ แม้ว่าโทรศัพท์ของเราจะใช้งานไม่ได้ในเวลาเดียวกันก็ตาม ดูเหมือนว่าเราขาดอะไรบางอย่างไป! นี่คือ “บางสิ่ง” ที่เราพลาดไป—แบ็คเอนด์หรือเซิร์ฟเวอร์
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 4
เมื่อโปรแกรมเมอร์พูดถึงส่วนหน้าและส่วนหลัง พวกเขามักจะหมายถึงการแยกส่วนผู้ใช้ของแอปพลิเคชันออกจากตรรกะของโปรแกรม ดังนั้นส่วนหน้าคือส่วนอินเทอร์เฟซของแอปพลิเคชัน และส่วนหลังคือส่วนเซิร์ฟเวอร์

เซิร์ฟเวอร์

โดยพื้นฐานแล้ว เซิร์ฟเวอร์คือเครื่องคอมพิวเตอร์ ซึ่งเป็นคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ตและเปิดอยู่ตลอดเวลา
งานหลักสองประการของเซิร์ฟเวอร์คือการจัดเก็บข้อมูลและการสื่อสาร
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 5
คุณส่งข้อความผ่าน Whatsapp หรือ Viber แอปพลิเคชันบนสมาร์ทโฟนของคุณจะส่งข้อความไปยังเซิร์ฟเวอร์ที่เก็บไว้ เมื่อ Viber ติดตั้งบนสมาร์ทโฟนของฉันเชื่อมต่อกับเซิร์ฟเวอร์ มันจะส่งข้อความที่เก็บไว้ทั้งหมดมาให้ฉัน
เซิร์ฟเวอร์คือ "สถานีฐาน" ที่แอปพลิเคชันทำงาน
เมื่อแอปพลิเคชันต้องการข้อมูลใดๆ แอปพลิเคชันจะติดต่อกับเซิร์ฟเวอร์ เมื่อแอปพลิเคชันจำเป็นต้องสื่อสารกับผู้ใช้แอปพลิเคชันรายอื่น เซิร์ฟเวอร์จะอนุญาตให้พวกเขาสื่อสารได้ เงื่อนไขเซิร์ฟเวอร์ แบ็กเอนด์ และ API มักใช้สลับกันได้

ระบบจัดเก็บข้อมูลหรือจัดเก็บข้อมูล

หน้าที่หลักของเซิร์ฟเวอร์คือการจัดเก็บข้อมูล ซึ่งรวมถึงไฟล์ต่างๆเช่น รูปภาพ วิดีโอ และเอกสาร เซิร์ฟเวอร์จัดเก็บข้อมูลเหล่านั้นในลักษณะที่มีโครงสร้างคล้ายกับโฟลเดอร์ในคอมพิวเตอร์ของคุณ เพื่อให้สามารถเข้าถึงได้โดยแอปพลิเคชัน ข้อมูลจะถูกเก็บไว้บนเซิร์ฟเวอร์ด้วย แอปพลิเคชันทั้งหมดมีข้อมูลที่สำคัญต่อการดำเนินงาน
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 6
คุณสามารถนำเสนอข้อมูลนี้เป็นชุดตารางได้ ตัวอย่างเช่น แอปพลิเคชันจำเป็นต้องจัดเก็บข้อมูลเกี่ยวกับผู้ใช้และรหัสผ่านเพื่อให้สามารถรับรองความถูกต้องได้ ใบสมัครของคุณสามารถเป็นคู่มือร้านอาหารได้ ซึ่งในกรณีนี้เซิร์ฟเวอร์จะจัดเก็บข้อมูลเกี่ยวกับร้านอาหารแต่ละแห่ง นอกจากข้อมูลแล้ว เซิร์ฟเวอร์ยังบันทึกความสัมพันธ์ระหว่างข้อมูล อีกด้วย ตัวอย่างเช่น ผู้ใช้ชอบร้านอาหารในแอปพลิเคชันบนสมาร์ทโฟน และเซิร์ฟเวอร์จะจดจำการเชื่อมต่อระหว่างร้านอาหารกับผู้ใช้
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 7
สิ่งนี้ช่วยให้คุณตอบคำถามได้มากมาย ตัวอย่างเช่น:
  • มีผู้ใช้กี่คนที่ชอบร้านอาหารนี้?
  • ผู้ใช้รายนี้ชอบร้านอาหารใดบ้าง?
  • อาหารประเภทใดที่ดึงดูดผู้ใช้หลายคนพร้อมกัน
ข้อมูลและความสัมพันธ์ระหว่างข้อมูลจะถูกเก็บไว้ในฐานข้อมูล (DB) ฐานข้อมูลมีหลายประเภท แต่ทั้งหมดได้แก่:
  • สามารถเก็บข้อมูลได้
  • สามารถเก็บความสัมพันธ์ระหว่างข้อมูลได้
  • สามารถรับคำขอข้อมูลและตอบกลับเป็นข้อมูลเดี่ยวหรือชุดข้อมูลก็ได้ขึ้นอยู่กับคำขอ
ฐานข้อมูลมีหลายประเภท แต่ละประเภทมีข้อดีและข้อเสียของตัวเอง หากคุณได้ยินคำศัพท์เช่น SQL, MySQL, MongoDB, CouchDB, Redis ก็รู้ว่าเรากำลังพูดถึงฐานข้อมูล

ปฏิสัมพันธ์

หน้าที่หลักของเซิร์ฟเวอร์คือการโต้ตอบกับแอปพลิเคชันและเซิร์ฟเวอร์อื่นๆ
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 8
งานแอปพลิเคชันจำนวนมากจำเป็นต้องมีการโต้ตอบกับเซิร์ฟเวอร์ ตัวอย่างเช่น หากผู้ใช้กำลังค้นหาบางสิ่ง คำค้นหาจะถูกส่งไปยังเซิร์ฟเวอร์และผลลัพธ์จะมาจากที่นั่น หากผู้ใช้ส่งข้อความถึงผู้ใช้รายอื่น ข้อความจะมาถึงเซิร์ฟเวอร์ก่อน จากนั้นจะถูกส่งไปยังแอปพลิเคชันของผู้ใช้รายอื่น ซึ่งส่วนใหญ่มักจะอยู่ในรูปแบบของการแจ้งเตือนที่ส่งไป อินเทอร์เฟ ซที่เซิร์ฟเวอร์จัดเตรียมไว้เพื่อให้แอปพลิเคชันสามารถโต้ตอบได้มักเรียกว่าAPI ฟังก์ชั่นอินเทอร์เฟซบางอย่างสามารถเชื่อมโยงกับจุดสิ้นสุดได้ เช่น กับการค้นหาหรือการอนุญาตบนไซต์ สำหรับผู้ที่ไม่ได้ฝึกหัด ปฏิสัมพันธ์นี้อาจดูแปลก รูปแบบการทำงานร่วมกันที่พบบ่อยที่สุดสองรูปแบบคือ JSON และ XML
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 9
XML ทางด้านซ้าย JSON ทางด้านขวา เมื่อมองแวบแรก รูปแบบต่างๆ จะอ่านได้ยาก สิ่งสำคัญคือต้องเข้าใจว่าเซิร์ฟเวอร์เป็นเพียงคอมพิวเตอร์ เช่น แล็ปท็อปหรือสมาร์ทโฟนของคุณ แอปบนโทรศัพท์ของคุณยอมรับการป้อนข้อมูลของผู้ใช้ผ่านทางเสียง ข้อความ การจดจำเสียง หรือการสัมผัสบนหน้าจอ แอปพลิเคชันจะประมวลผลข้อมูลนี้แล้วให้คำตอบในรูปแบบรูปภาพบนหน้าจอ สมาร์ทโฟนคือคอมพิวเตอร์ที่โต้ตอบกับบุคคล ดังนั้นอินพุตและเอาท์พุตจึงมีให้ในรูปแบบที่สะดวกสำหรับบุคคล เซิร์ฟเวอร์คือคอมพิวเตอร์ที่โต้ตอบกับคอมพิวเตอร์เครื่องอื่นเท่านั้น บุคคลรับรู้ข้อมูลด้วยสิ่งต่างๆ เช่น ขนาดตัวอักษร สีข้อความ และการจัดรูปแบบ แต่นี่ไม่มีความหมายอะไรกับคอมพิวเตอร์
การโต้ตอบระหว่างเซิร์ฟเวอร์เกิดขึ้นในรูปแบบที่ง่ายต่อการแยกวิเคราะห์และเข้าใจสำหรับคอมพิวเตอร์เครื่องอื่น

แอปพลิเคชันเซิร์ฟเวอร์

หากคุณต้องการสร้างแอปที่จะทำงานบนโทรศัพท์ของคุณ คุณจะต้องมีแอปที่จะทำงานบนเซิร์ฟเวอร์ด้วย แอปพลิเคชันฝั่งเซิร์ฟเวอร์ถูกสร้างขึ้นโดยใช้ภาษาและเฟรมเวิร์กการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ ตัวเลือกยอดนิยม ได้แก่Java , Ruby on Rails , Node.js , PHP , ASP.NET
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 10
คุณสามารถพูดได้ว่า API คือ "ประตู" ของเซิร์ฟเวอร์ของคุณและแอปพลิเคชันรู้ว่าจะต้องเคาะประตูเหล่านั้น ฐานข้อมูลจัดเก็บข้อมูลทั้งหมดของคุณ และแอปพลิเคชันเซิร์ฟเวอร์ก็คือ “สมอง” ที่เชื่อมโยงทุกสิ่งเข้าด้วยกัน รับและตอบสนองต่อคำขอที่ส่งผ่าน API เพิ่มและดึงข้อมูลจากฐานข้อมูล และทำการตัดสินใจ ตัวอย่างเช่น เมื่อแอปพลิเคชันผู้ใช้ส่งข้อมูลการเข้าสู่ระบบ คำขอจะถูกส่งผ่าน API ข้อมูลการเข้าสู่ระบบที่ถูกต้องจะถูกจัดเก็บไว้ในฐานข้อมูล หน้าที่ของแอปพลิเคชันเซิร์ฟเวอร์คือการเปรียบเทียบและตอบสนองตามแอปพลิเคชันโดยใช้ API

ฮาร์ดแวร์

เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 11
เมื่อคุณได้ยินคำว่า "เซิร์ฟเวอร์" คุณอาจนึกถึงภาพนี้: ตู้ที่มีไฟกะพริบอยู่ในห้องปิด สิ่งเดียวที่ขาดหายไปคือทอม ครูซ ที่จะลงมาจากเพดานและขโมยของบางอย่างเพื่อให้ภาพนี้สมบูรณ์ บริษัทขนาดใหญ่หลายแห่งเป็นเจ้าของเซิร์ฟเวอร์และศูนย์ข้อมูลทั้งหมดของตัวเอง (ห้องขนาดใหญ่เหล่านั้นมีตู้ที่กะพริบ) Facebook และ Google มีเซิร์ฟเวอร์หลายร้อยแห่งทั่วโลก เมื่อคุณใช้บริการขนาดใหญ่ที่มีผู้ใช้หลายล้านคน การใช้เซิร์ฟเวอร์ของคุณเองอาจมีราคาถูกลงอย่างมากและให้ประสิทธิภาพที่ดีขึ้น แทนที่จะดูแลเซิร์ฟเวอร์ของตนเอง นักพัฒนาจำนวนมากใช้บริการคลาวด์ บริการต่างๆ เช่น Amazon Web Services, Azure และ Digital Ocean นำเสนอความสามารถในการใช้ "เซิร์ฟเวอร์เสมือน" บริการเหล่านี้เป็นเจ้าของและบำรุงรักษาฮาร์ดแวร์ และนักพัฒนาเพียงแค่โหลดแอปพลิเคชันเซิร์ฟเวอร์ลงไป ผู้ให้บริการบางรายให้บริการแบ็กเอนด์เป็นบริการ ช่วยให้คุณมีแบ็กเอนด์ธรรมดาโดยไม่ต้องเขียนแอปพลิเคชันแบ็กเอนด์ด้วยตัวเอง

แอปพลิเคชันทั้งหมดจำเป็นต้องมีแบ็กเอนด์หรือไม่?

แอปส่วนใหญ่ที่คุณคุ้นเคยอาจมีส่วนประกอบแบ็กเอนด์ แน่นอนคุณสามารถค้นหาโปรแกรมที่ไม่มีส่วนของเซิร์ฟเวอร์ได้ ตัวอย่างเช่น แอปเพิ่มประสิทธิภาพการทำงานบางแอป วิธีง่ายๆ ในการตรวจสอบว่าแอปพลิเคชันมีแบ็คเอนด์มีลักษณะดังนี้:
หากคุณเปลี่ยนเป็นโหมด Flight แอพจะยังคงทำงานอยู่หรือไม่
หากคำตอบคือ “ไม่” แสดงว่าแอปพลิเคชันนั้นมีเซิร์ฟเวอร์แบ็คเอนด์อย่างแน่นอน
เซิร์ฟเวอร์  โปรแกรมการศึกษาสำหรับหุ่น - 12
ฉันหวังว่าตอนนี้คุณคงเข้าใจแล้วว่าแบ็คเอนด์ของแอปพลิเคชันคืออะไร บางทีครั้งต่อไปที่คุณพบกับเพื่อนโปรแกรมเมอร์ คุณไม่เพียงแต่จะเข้าใจสิ่งที่พวกเขากำลังพูดถึงเท่านั้น แต่ยังใช้คำว่า "เจสัน" ในการสนทนาของคุณด้วย
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION