เกิดอะไรขึ้นในโลกของเทคโนโลยีฝั่งเซิร์ฟเวอร์เกี่ยวกับแอพมือถือ


12

ด้วยเทคโนโลยีมือถือที่เป็นที่นิยมมากขึ้นสิ่งที่เกิดขึ้นบนฝั่งเซิร์ฟเวอร์กับแอพเหล่านี้ส่วนใหญ่เมื่อพวกเขาต้องการสื่อสารกับแบ็คเอนด์?

ฉันคุ้นเคยกับโลกแห่งเทคโนโลยีเมื่อ 10 ปีที่แล้วเมื่อทรัพยากรส่วนใหญ่เข้าถึงได้โดยการร้องขอเว็บเพจแบบไดนามิกที่อยู่ด้านหลังผู้เห็นใช้ภาษาฝั่งเซิร์ฟเวอร์เพื่อรับข้อมูลที่ต้องการจากฐานข้อมูลเชิงสัมพันธ์

ยังคงเป็นกรณีนี้หรือไม่และถ้าไม่ใช่จะมีการเปลี่ยนแปลงครั้งใหญ่อะไรบ้าง


แอปขนาดเล็กจำนวนมากพึ่งพา Google App Engine :)
MrFox

คำตอบ:


7

จากหัวของฉัน:

  1. การใช้เว็บเซอร์แทนการเข้าถึงฐานข้อมูลโดยตรงจากลูกค้า
  2. REST แทน SOAP สบู่ดูเหมือนว่าจะหนักเกินไปสำหรับการสื่อสารผ่านมือถือที่มีแบ็กเอนด์ REST โดยใช้ JSON นั้นง่ายกว่าในการตั้งค่าและใช้งาน โดยเฉพาะอย่างยิ่งถ้าคุณใช้เทคโนโลยีที่แตกต่างกันในไคลเอนต์และเซิร์ฟเวอร์
  3. มุ่งเน้นที่หลายมุมมองสำหรับหน้าเว็บ หนึ่งสำหรับเดสก์ท็อปและอีกหนึ่งสำหรับมือถือ มันควรจะง่ายถ้ามีคนใช้ MVC แต่ก็ยังเป็นปัญหาอยู่

อาจมีมากกว่านั้น แอปมือถือส่วนใหญ่ถือว่าเป็นลูกค้าปกติที่ใช้ข้อมูลและแสดงผล


6

เทคโนโลยี

  • RESTful API ที่ใช้ JSON เป็นอนุกรม - API เดียวกันใช้โดยแอปเนทีฟแอพไฮบริดและแอปพลิเคชันเว็บมือถือ แม้แต่ในอดีตแม่แบบฝั่งไคลเอ็นต์กรณีมักใช้ (ดูตัวอย่างที่ยอดเยี่ยมใน"การปล่อย JSPs ในฝุ่น: ย้าย LinkedIn ไปยังแม่แบบฝั่งไคลเอ็นต์ของ client.js" )

  • เซิร์ฟเวอร์น้ำหนักเบาแบบอะซิงโครนัส (ขับเคลื่อนด้วยเหตุการณ์) - ไม่มี Apache pre-fork อีกต่อไป ใช้ Nginx, node.js, Twisted, Tornado และอื่น ๆ

  • การลงชื่อเข้าใช้OAuth / โซเชียล - ผู้ใช้คาดหวังว่าจะไม่ต้องลงทะเบียนบัญชีสำหรับแอปแต่ละแอป แอพส่วนใหญ่อนุญาตให้ลงชื่อเข้าใช้ด้วย FB, TW และผู้ให้บริการอื่น ๆ สำหรับ FB ทั้ง Android และ iOS ให้ตัวเลือกการลงชื่อเพียงครั้งเดียว

สิ่งที่ต้องพิจารณา

  • เครือข่ายมือถือมีเวลาแฝงที่สูงมาก
  • เป็นเรื่องปกติสำหรับลูกค้าที่จะหลวมการเชื่อมต่อ;
  • เป็นเรื่องปกติที่ลูกค้าจะเปลี่ยน IP ในระหว่างการใช้งาน
  • โทรศัพท์มือถือแทบไม่มีพลังเทียบเท่ากับเดสก์ทอป / แล็ปท็อป

4

ส่วนที่เหลือเป็นครึ่งเรื่องราว สิ่งที่น่าสนใจยิ่งกว่าโปรโตคอลที่มีน้ำหนักเบาบนลวดคือเซิร์ฟเวอร์เว็บแอพที่มีน้ำหนักเบาและสแต็ค - คำขอมาตราส่วนขนาดใหญ่สำหรับดาตาแกรมขนาดเล็กเมื่อเทียบกับ HTML ที่แสดงผลแบบเปรียบเทียบค่อนข้างหนาหมายความว่าคุณมีข้อกำหนดที่แตกต่างกัน ตัวอย่างบางส่วน:

  • node.js น่าจะเป็นตัวอย่างของการใช้ปืนใหญ่ คนส่วนใหญ่มักจะติดใจกับคุณสมบัติ javascript-on-the-server แต่นั่นเป็นปลาเฮอริ่งแดง - เจ๋งสำหรับเด็ก ๆ ที่ไม่สามารถก้าวหน้าได้เกิน js แต่มันไม่สำคัญ ส่วนที่ดีจริงๆคือธรรมชาติแบบอะซิงโครนัสที่ทำให้มันขยายขนาดอย่างบ้าคลั่งโดยเฉพาะอย่างยิ่งในขณะที่ให้บริการ RESTful เล็ก ๆ ที่คมชัด สแต็กอื่นที่มีความคล้ายคลึงกันจะถูกบิดสำหรับไพ ธ อนหรือมาโนสเดอโมโนสำหรับ. NET

  • nginx ใช้ IO ที่มีเหตุการณ์เดียวกันจำนวนมาก (libuv) ที่ node.js ทำและกำลังล้างตลาดเซิร์ฟเวอร์ในบางวงการ เน้นมากขึ้นกว่า Apache และรวดเร็วเมามัน

  • สแต็กเซิร์ฟเวอร์ขนาดเล็กจะโผล่ขึ้นมาในสภาพแวดล้อมซึ่งโดยทั่วไปจะมีกรอบงานที่หนาซึ่งทำให้มีข้อสันนิษฐานมากมาย IE ในทับทิมคุณมีซินาตร้ากับรางถ่วง ในงูหลามคุณมีขวด [และอื่น ๆ ] เพื่อถ่วงสมดุล django ใน. NET คุณมี WebAPI ในการถ่วงดุล MVC และ WebForms สแต็คทั้งหมดที่ฉันพูดถึงนั้นบางมากและเน้นมากขึ้น (หรือทั้งหมด) ที่เน้นการให้บริการดาตาแกรมไม่ใช่หน้าเว็บ ไม่มีสิ่งที่ฉันพูดถึงคุณสมบัติของ templating และ ORMs หนึ่งคาดว่าจะออกจากสแต็คเว็บทั่วไปวันนี้

จากข้อมูลทั้งหมดที่กล่าวมาบ่อยครั้งที่ไม่มีใครให้บริการแอพมือถือของพวกเขาโดยการแฮ็กเว็บแอปฝั่งเซิร์ฟเวอร์อายุ 10 ปีเพื่อให้บริการ json บนปลายทาง HTTP อื่น โลกไม่ได้เปลี่ยนไปมากนัก - ผู้บริหารยังคงเดินโซซัดโซเซกับรถสองล้อและโดนัทถ้าพวกเขาคิดว่าพวกเขาสามารถหนีไปได้


1

ยังคงเป็นกรณีนี้หรือไม่และถ้าไม่ใช่จะมีการเปลี่ยนแปลงครั้งใหญ่อะไรบ้าง

ฉันคิดว่ายังมีแอปพลิเคชั่นที่ใช้สถาปัตยกรรมฝั่งเซิร์ฟเวอร์หรือไคลเอนต์เซิร์ฟเวอร์ดังกล่าว อย่างไรก็ตามในปีที่ผ่านมามีการย้ายใหญ่ไปยังSOA (Service Oriented Architecture) ดังนั้นการสื่อสารผ่านบริการที่ปลอดภัยจะเปิดความสามารถใหม่ให้กับแอปพลิเคชันไคลเอนต์ทั้งหมดและการเข้าถึง / การใช้บริการทางธุรกิจ back-end ในเวลาเดียวกัน

ด้วยตลาดเกิดใหม่ของอุปกรณ์พกพาและแท็บเล็ตทำให้การใช้บริการ HTTPเป็นช่องทางสื่อสารที่สำคัญยิ่งขึ้นเพื่อให้บริการเสริมแก่แอพพลิเคชั่นไคลเอนต์


1

แบ็คเอนด์ส่วนใหญ่ตอนนี้รองรับ JSON และ REST ไม่ใช่ SOAP นอกเหนือจากนั้นยังมีความแตกต่างไม่มากระหว่างหน้าเว็บและแอพมือถือ ฉันคิดว่าสิ่งที่ท้าทายที่สุดสำหรับแอพมือถือนั้นอยู่ที่ส่วนหน้า แอพบางตัวเริ่มยกระดับความสามารถของมือถือ (เช่นการรายงานตำแหน่ง) แต่ที่ปลายทั้งสองด้าน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.