Chuyển đến nội dung chính

[Xu hướng] Mobile Backend as a Services - Xu thế phát triển ứng dụng



Xuất bản: 2016-04-19 20:21:53

Bằng cách sử dụng Mobile Backend as a Services (MBaaS), các nhà sản xuất và phát triển ứng dụng có thể tiết kiệm được nhiều thời gian xây dựng hệ thống và các chi phí vận hành.


Push notification, tích hợp mạng xã hội, quản lý chứng thực người dùng là một trong số những chức năng thường xuất hiện trên các ứng dụng cho thiết bị di động và web hiện nay. Với Push notification cho phép các hệ thống thực hiện chuyển thông báo tới  người dùng cuối một cách đồng loạt. Với chức năng tích hợp mạng xã hội, ứng dụng cho phép người dùng có thể dễ dàng chia sẽ những thông tin của bản thân từ ứng dụng cũng như nhận những thông tin, kiến thức được chia sẽ từ những  người dùng khác… Các chức năng đó đối với các ứng dụng ngày nay được xem như một thành phần không thể thiếu. Tuy nhiên, có một thực tế mà các nhà sản xuất và phát triển ứng dụng trên nền tảng di động và web đã và đang trải qua đó là họ thường phải xây dựng lại những tính năng này cho các hệ thống khác nhau của họ. Việc xây dựng các tính năng này cho một hệ thống thường tốn nhiều thời gian và tiền bạc. Bên cạnh các xử lý ở phía client, đòi hỏi hệ thống còn xử lý thêm các nghiệp vụ phía backend. Và như một xu thế tất yếu, Mobile backend as a Services (MBaas) ra đời để góp phần giải quyết những bất cập đó.

Vậy MBaas là gì?

Còn được biết đến với cái tên Backend as a service (Baas), là một mô hình hỗ trợ cho việc phát triển ứng dụng trên nền tảng di động hoặc web bằng cách liên kết các ứng dụng với các đám mấy lưu trữ ở backend (backend cloud storage) và các giao diện lập trình ứng dụng (APIs) được cung cấp bởi backend. MBaas cung cấp các dịch vụ nổi bật như: quản lý người dùng, push notification, tích hợp với mạng xã hội, dịch vụ dựa trên vị trí... Những dịch vụ này được cung cấp thông qua việc sử dụng các bộ công cụ phát triển phần mềm (SDKs) và giao diện lập trình ứng dụng (APIs). MBaas gần đây có mối quan hệ mật thiết với sự phát triển của lĩnh vực điện toán đám mây. Mặc dù đây được xem như một lĩnh vực còn non trẻ nhưng hứa hẹn sẽ có những bước phát triển vượt bậc nhất là đối với khối khách hàng doanh nghiệp.
MBaas đem lại điều gì?

Bằng cách sử dụng MBaas, các nhà sản xuất và phát triển ứng dụng có thể tiết kiệm được nhiều thời gian xây dựng hệ thống và các chi phí vận hành. Thông qua MBaas các dịch vụ ứng dụng như : push notify, tích hợp mạng xã hội, message & chat function… được cung cấp sẵn bằng các bộ SDK và API đồng nhất, nhà phát triển ứng dụng thay vì phải tự mình xây dựng các hệ thống này từ đầu cho ứng dụng của mình thì bây giờ có thể sự dụng các dịch vụ này thông qua các hệ thống MBaas. Nhờ đó quá trình phát triển ứng dụng có thể được tiết kiệm thời gian hơn, qua đó cũng tiết kiệm được chi phí sản xuất, nâng cao hiệu quả dự án. Bên cạnh đó MBaas cũng cung cấp các phương tiện để quản lý dữ liệu ở backend cho các dịch vụ sử dụng trong ứng dụng.

Các dịch vụ MBaas nổi bật

  • Push notification: tính năng này hiện có mặt trong nhiều ứng dụng trên nền tảng di động hiện nay. Khi nhà cung cấp dịch vụ cho ra đời một sản phẩm mới hoặc có một chương trình khuyến mãi mới áp dụng cho một nhóm khách hàng, các thông tin quảng bá này có thể được chuyển tới khách hàng thông qua hình thức push notification.
  • Dịch vụ quản lý người dùng: Cho phép chứng thực người dùng từ ứng dụng Android, iOS và JavaScript SDK. Chứng thực người dùng có thể thực hiện thông qua  tài khoản: Email, Facebook, Twitter, GitHub, Google và hình thức chứng thực nặc danh. Nhà phát triển ứng dụng chỉ cần xử lý nghiệp vụ đăng nhập hệ thống ở phía client bằng cách tương tác với các API của MBaas, điều này giúp họ tiết kiệm thời gian và công sức với việc phát triển hệ thống backend.
  • Dịch vụ dựa trên vị trí: Thông qua dữ liệu về vị trí của khách hàng, các hệ thống MBaas có thể cung cấp nhiều dịch vụ khác nhau. Các dịch vụ dựa trên vị trí có thể chia thành các nhóm dịch vụ cá nhân, nhóm dịch vụ doanh nghiệp và nhóm dịch vụ công cộng và ứng cứu khẩn cấp. Có thể thấy được rõ ràng lợi ích của các nhóm dịch vụ dựa trên vị trí này trong nhiều lĩnh vực cuộc sống. Điển hình như trong lĩnh vực ứng cứu khẩn cấp, từ thông tin về vị trí của nạn nhân sẽ giúp hệ thống có thể điều hướng các phương tiện cứu nạn đến nơi nhanh chóng thông qua việc tính toán lộ trình di chuyển phù hợp cho các phương tiện này. Hay trong các lĩnh vực như mua sắm, du lịch… các dịch vụ dựa trên vị trí cũng được ứng dụng rộng rãi. Sẽ chẳng có gì bất ngờ nếu một ngày bạn  đi ngang một vùng đất mới và bạn nhận được những thông tin quảng bá về các dịch vụ, món ăn, các địa điểm vui chơi thú vị… tại nơi đó.

Các hệ thống MBaas phổ biến hiện nay

  • AnyPresenceMục tiêu của AnyPresence không chỉ là giúp các doanh nghiệp build hệ thống backend cho các ứng dụng di động của họ. Anypresence còn kết hợp cả việc build ứng dụng, dịch vụ back-end và cung cấp các cổng kết nối API. Anypresence có chức năng cho phép sinh đoạn mã back-end, đoạn mã sử dụng trên ứng dụng di động hoặc thậm chí chỉnh sửa các API trực tuyến từ dịch vụ của họ. Tất cả các đoạn mã sinh ra có thể được tải về, chỉnh sửa và chạy trên các nền tảng tương thích. Ví dụ một trong những khách hàng nổi tiếng của AnyPresence hiện nay là Master Card thông qua anyPresence cho phép các đối tác của họ xây dựng các ứng dụng di động tương tác với các API, dịch vụ mở của MasterCard. AnyPresence có khả năng sinh ra các đoạn mã sử dụng trên các nền tảng như: JQuery, Android, iOS, WindownPhone, HTML5…
  • Appcelerator: xuất hiện trong lĩnh vực phát triển ứng dụng di động cách đây một vài năm, với các bộ dịch vụ cho phép biên dịch đoạn mã Javascript thành các đoạn mã native cho Android, iOS và các nền tảng khác. Đến 7/2014 Appcelerator cung cấp thêm dịch vụ MBaas với khoảng 25 APIs, hỗ trợ Node JS và phân tích dữ liệu trực tuyến. Appcelerator đã đưa ra cộng đồng các giao thức MBaas của họ thông qua đó cho phép các nhà phát triển tích hợp các ứng dụng của họ với dịch vụ từ các native SDK, mặc dù Appcelerator Studio IDE chưa hỗ trợ các native SDK.
  • FeedHenry: Tập trung vào mảng ứng dụng hỗ trợ cho nhóm khách hàng doanh nghiệp. FeedHenry được xây dựng dựa trên Node JS, nền tảng ứng dụng di động và MBaas hướng đến đối tượng doanh nghiệp. Nó có một mảng tích hợp các dịch vụ rộng lớn, cho phép phát triển trong môi trường online hoặc offline. FeedHenry đã được tách ra từ Viện Nghiên cứu Ireland vào năm 2010 và được mua lại bởi Red Hat vào tháng năm 2014.
  • Google Firebase: Là đứa con của gã khổng lồ công nghệ Google, firebase hứa hẹn sẽ có nhiều bước phát triển mạnh mẽ trong tương lai. Hiện nay firebase cung cấp ba mảng dịch vụ lớn đó là: Cơ sở dữ liệu thời gian thực (Real time Database), Chứng thực (Authentication) và Lưu trữ (Hosting). Người dùng firebase có thể lựa chọn sử dụng các gói dịch vụ dưới hình thức miễn phí hoặc trả phí. Hiện nay Firebase đã được hơn 400.000 các nhà phát triển tin tưởng sử dụng.
So sánh các hệ thống MBaas
  • Đặc điểm chung:

o   Sử dụng MongoDB để lưu trử dữ liệu. MongoDB là một opensouce cơ sở dữ liệu NoSQL, dùng để lưu trữ các JSON object.
o   Cung cấp các thiết kế UI giống nhau cho hệ thống lưu trữ dữ liệu với MongoDB.
o   Khả dụng với kiến trúc multitenant Cloud.
o   Đều cung cấp dịch vụ push notify và APIs cho chứng thực người dùng.
o   Hỗ trợ native app iOS và Android (tuy ở mức độ khác nhau).
o   Cho phép lập trình viên cài đặt một vài thiết lập đối với server logic.

  • Điểm khác biệt:
o   Mức độ hiệu quả và khả năng hỗ trợ:  Điểm khác nhau chính giữa các hệ thống MBaas này là mức độ hiệu quả và khả năng hỗ trợ của chúng. Ví dụ, chúng hỗ trợ tích hợp các ứng dụng cho doanh nghiệp với cơ sở dữ liệu trong khoảng từ mức cơ bản đến việc gọi các giao thức REST để trả về cấu trúc JSON để tích hợp sâu các ứng dụng với cơ sở dữ liệu. Thời gian một developer cần để cài đặt quá trình tích hợp với MBaas từ nhiều ngày cho đến vài phút, điều này phụ thuộc vào mức độ hỗ trợ của các hệ thống MBaas trong việc thiết lập các thông số tích hợp.
o   Tiêu chuẩn bảo mật: Một vài hệ thống MBaas có tính mở, trong khi một số khác chỉ khả dụng với Private Cloud. Một vài hệ thống tuân thủ theo các tiêu chuẩn bảo mật dữ liệu của Châu Âu. Một số hệ thống khác tự xây dựng công cụ để kiểm tra. Bên cạnh đó một số hệ thống MBaas còn cho phép build ứng dụng di động thông qua các dịch vụ đám mây của chúng.
o   Khả năng hỗ trợ Cross platform: Một vài hệ thống hỗ trợ HTML5 và các ứng dụng hybrid. Một số khác thì biên dịch mã javascript thành các native code, hỗ trợ các trình cross platform như PhoneGap, Apache Cordova. Một số hệ thống chống lại việc chuyển đổi các mã nguồn của ứng dụng hybrid bằng việc cung cấp cac giải pháp như gen ra đoạn mã cho các ứng dụng native.
o   Backend Platform: Phần back end của các hệ thống này có thể sử dụng Node js, Rails hoặc một vài nền tảng nào đó chưa xác định. Một số MBaas còn hỗ trợ cả Black Berry, WP8, Windows 8 và Unity.
o   IDE và Framework: Một vài hệ thống cung cấp các công cụ IDE từ đám mây của họ, một số cung cấp các nền tảng IDE khác nhau trên desktop, một số khác chỉ hỗ trợ thông qua command line để  thực hiện các hoạt động điều khiển liên quan đến dịch vụ đám mây. Trong khi đó một số hệ thống MBaas hỗ trợ sử dụng nhiều Framework JavaScript phổ biến hiện nay như Angular, Backbone thì một số khác sử dụng các framework javascript của chính họ xây dựng, nó có thể tương thích với một framework open source cụ thể nào đó.



Vai trò và tiềm năng phát triển 

Các nhà cung cấp MBaas tạo ra doanh thu từ dịch vụ của họ theo nhiều cách khác nhau, thông thường dưới dạng một mô hình miễn phí. Với mô hình này, khách hàng nhận được một số lượng có giới hạn số tài khoản hoạt động (active users) và số lần gọi API trên tháng, và trả tiền cho mỗi người dùng hoạt động hoặc số lần gọi API phát sinh quá giới hạn. Bên cạnh đó, khách hàng có thể lựa chọn hình thức trả phí theo gói, với hình thức này cho phép họ có được số lượng active users và số lần gọi API lớn hơn trên tháng. Một số nhà cung cấp dịch vụ miễn phí không giới hạn số lần gọi tới API của họ trong khi một số khác thường cung cấp dưới dạng dịch vụ thương mại. Bên cạnh các mô hình kinh doanh đa dạng, các nhà cung cấp dịch vụ MBaas cũng ngày càng đa dạng hoá các dịch vụ MBaas của mình.
Có thể thấy rằng sự phát triển của lĩnh vực ứng dụng trên nền tảng di động và web có sự gắn kết mật thiết với MBaas. Thông qua việc sử dụng MBaas, các nhà phát triển có thể tiết kiệm được số lượng đáng kể chi phí cũng như thời gian phát triển ứng dụng. Sự phát triển của lĩnh vực MBaas cũng tạo ra một cuộc cạnh tranh ngày càng khốc liệt giữa các nhà cung cấp dịch vụ, do đó đòi hỏi họ phải không ngừng thay đổi và linh hoạt hơn trong việc cung cấp dịch vụ để được đông đảo người dùng đón nhận.

Vũ Phan

Nhận xét

Bài đăng phổ biến từ blog này

[ebook] Phần I - Tổng hợp nội dung sách "Nuôi con không phải cuộc chiến"

Phần I - Nuôi con không phải cuộc chiến Chương 1: ăn ngủ tự lập mẹ nhàn con ngoan EASY: eat - activity - Sleep - Your time -> Là chu kỳ sinh hoạt lặp đi lặp lại của bé trong một khoảng thời gian 1 ngày của bé. Có thể bạn quan tâm: Khuyến mãi mua trọn bộ sách Nuôi con không phải cuộc chiến I. Nếp sinh hoạt EASY   1. Lợi ích EASY: Đối với bé: + Nhận biết được những gì xảy ra tiếp theo -> Tăng khả năng tự tin của con. + Tập cho bé phản xạ có điều kiện. + Kết nối nhịp sing học của con. Đối vơí mẹ: + Biết cách phản ứng với những nhu cầu khác nhau của bé, không nhầm lẫn giữa khi bé khóc đòi ăn hay làm nũng.  Về lâu dài: + EASY là nền tảng cơ bản giúp rèn luyện sự tự lập ở bé. + Tạo nếp sinh hoạt ăn ngủ điều độ. (Khi con càng lớn chu kỳ EASY càng dài ra) 2.   Chu kỳ 03h: Cho bé từ 0 - 3 tháng tuổi. Bé ăn cách nhau 03 giờ. Cho con ngủ theo bảng thời gian hoặc căn cứ vào dấu hiệu của bé. Cân nặng tiêu chuẩn 2.7kg 3. Chu kỳ 4 giờ Ch

[AI] BÀI 4: Tác nhân và môi trường (Agent and Environment)

1. Agent (tác nhân): l à tất cả những gì có thể nhận thức về môi trường của nó thông qua cảm nhận "Sensor" và đưa ra hành động tác động đến môi trường (effective). Có 03 loại agent: human, software, robotic. + Cấu trúc của Agent: Gồm 2 phần:  Architecture + Agent Program + Phân loại Agent: -  Simple Reflex Agents: Agent phản ứng đơn giản. - Model Based Reflex Agents: Agent phản xạ dựa trên model - Goal Based Agents: Agent dựa trên mục tiêu. - Utility Based Agents: Agent dựa trên tính tiện ích. 2. Turing test : Ứng dụng trong việc kiểm tra và đáng giá máy móc có thật sự thông minh?  https://vi.wikipedia.org/wiki/Ph%C3%A9p_th%E1%BB%AD_Turing   3. Các thuộc tính của môi trường Discrete / Continuous  − If there are a limited number of distinct, clearly defined, states of the environment, the environment is discrete (For example, chess); otherwise it is continuous (For example, driving). Observable / Partially Observable  − If it is possible to determine t

[Tool] Apache Nifi

Introduction Apache NiFi is a dataflow system based on the concepts of flow-based programming. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic. NiFi has a web-based user interface for design, control, feedback, and monitoring of dataflows. It is highly configurable along several dimensions of quality of service, such as loss-tolerant versus guaranteed delivery, low latency versus high throughput, and priority-based queuing. NiFi provides fine-grained data provenance for all data received, forked, joined cloned, modified, sent, and ultimately dropped upon reaching its configured end-state. See the  System Administrator’s Guide  for information about system requirements, installation, and configuration. Once NiFi is installed, use a supported web browser to view the UI. Browser Support Browser Version Chrome Current and Current - 1 FireFox Current and Current - 1 Edge Current and Current

[Xu hướng] Open API – Xu thế phát triển mới của ngành công nghiệp phần mềm

Xuất bản: 2016-06-30 00:19:09 Các nhà phát triển đã nhận ra rằng việc lãng phí thời gian công sức vào thiết kế lại những thứ đã được các công ty khác xây dựng là hết sức không nên. Thay vào đó, họ hoàn toàn có thể dựa vào những API được các nhà cung cấp nền tảng như Salesforce, Amazon, Google… và mới đây là các nhà phát triển độc lập khác đưa ra. Trong ngành công nghiệp sản xuất phần mềm, mỗi ứng dụng khi được đưa tới công chúng đều nhằm mục đích phục vụ cho một nhu cầu người dùng nhất định.  Có những ứng dụng phục vụ cho mục đích học tập, hoặc giải trí, du lịch, một số khác phục vụ cho mục đích đi lại như GrabTaxi hay Uber chẳng hạn. Mặc dù những ứng dụng này có thể giúp đáp ứng những nhu cầu khác nhau của người sử dụng nhưng cũng không phải vì thế mà chúng được làm ra theo những cách hoàn toàn khác nhau. Bên cạnh đó, tuy có những mục đích sử dụng khác nhau nhưng những ứng dụng như vậy vẫn có những điểm chung, tương đồng về chức năng.  Dù bạn đang sử dụng Facebook hay S

Book note: Tư duy nhanh và chậm - Tác giả: Daniel Kahneman

1. Tư duy nhanh : dựa vào trực giác, kinh nghiệm. 2. Tư duy chậm :  suy nghĩ, đánh giá thấu đáo về một vấn đề trước khi đưa ra ý kiến. --> Con người có xu hướng thích sử dụng tư duy nhanh hơn là tư duy chậm. 3. Giảm thiểu sai lầm dự kiến :  Áp dụng thông tin khách quan: Sử dụng thông tin từ nhiều nguồn tin khác. Xác định nhóm tham chiếu phù hợp --> thu thập số liệu thống kê. 4. Trực giác và công thức : Nếu có lựa chọn thì nên sử dụng công thức. 5. Khi nào nên tin vào trực giác : Nếu trực giác đưa ra phán đoán về một phạm trù có tính chất lặp lại (ví dụ như chơi cờ vua) và tính lặp lại của phạm trù đó có khả năng học được. 6. Người ta có xu hướng thích sự tự tin hơn sự không chắc chắn : thông tin đưa ra dựa trên sự tự tin có khoảng sai lệch bé hơn nếu đưa ra dựa trên sự không chắc chắn. 7. Con người thường nghĩ đến sự mất mát nhiều hơn cái nhận được . Hầu hết mọi người sẽ không tham gia trò chơi đồng xu: mặt sấp mất 100$, mặt ngửa được nhận 150$ (dù phận  nhận được > phần có th

[Network] ARQ - Automatic repeat request

Automatic Repeat reQuest (ARQ) hay  Automatic Repeat Query là một phương thức điều khiển lỗi cho quá trình truyền dữ liệu bằng cách sử dụng ACK (acknowledgements) và Time Out, cho phép truyền dữ liệu tin cậy trên nền một dịch vụ không tin cậy (unreliable service). 1. ARQ protocol Gồm 03 loại Stop-and-wait ARQ Go-Back-N ARQ Selective Repeat ARQ / Selective Reject 2. Lĩnh vực liên quan Linked Data Transport Layer OSI Model. Ngoài ra có một số bằng sáng chế trong lĩnh vực live video contribution environments  sử dụng tới ARQ.

[Mac OS] Cài đặt maven apache

Ngày tạo: 25/12/2016 Bước 1: Download maven apache từ liên kết:  https://maven.apache.org/download.cgi?Preferred=ftp://mirror.reverse.net/pub/apache/ Bước 2: Cài đăt biến môi trường: mở vào file .bash_profile thêm các dòng. (Nếu file chưa tồn tại thì tạo mới) $ vim ~/.bash_profile export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home export M2_HOME=/Users/mac/Downloads/Programs/apache-maven-3.3.9 export M2=$M2_HOME/bin export PATH=$PATH:$M2_HOME/bin Bước 3 :  Restart Terminal, kiểm tra cài đặt thành công từ terminal bằng lệnh: $ mvn -version Trường hợp cài đặt thành công kết quả trả về như sau: Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T23:41:47+07:00) Maven home: /Users/mac/Downloads/Programs/apache-maven-3.3.9 Java version: 1.8.0_60, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name:

[LB-HA] Understand about High Available (HA) and Load Balancing

High Available (HA) :  Hỗ trợ dự phòng tiến trình. Hoạt đông với cơ chế Active - Passive . Hệ thống tồn tại 02 loại Component với role 'Active' và 'Passive'.  Active   Component sẽ đảm nhận việc xử lý tiến trình. Passive Component đóng vai trò backup. Trường hợp Active Component gặp lỗi (fail, downtime) hệ thống sẽ chuyển sang hoạt động trên B ackup  Component . Quá trình chuyển từ Active Component sang Passive Component gọi là 'Fail over'. Một số khái niệm liên quan đến HA: - FailOver: Chuyển đổi tiến trình chạy trên Passive Component khi Active Component gặp sự cố. - Fail Back: Khôi phục lại tiến trình hoạt động trên Active Component sau khi tiến trình dịch chuyển đến Passive Component trong quá trình FailOver. - Fault - Tolerant: Công nghệ giúp đảm bảo tính liên tục của dịch vụ. Trường hợp một thành phần trong hệ thống bị hoạt động gián đoạn vẫn cho phép toàn bộ hệ thống hoạt động ổn định. Load Balancing : Hoạt động với cơ chế Active - Active .

[PM4P] First step for reaching to PMP Certificate

27/07/2019: First step for reaching to PMP Certificate

Quản lý Session khi cấu hình dự phòng máy chủ sử dụng HAproxy

1.        Vấn đề Cùng một HTTP session có thể nằm trên nhiều kết nối TCP khác nhau. Trong điều kiện không sử dụng Load Balancer, sẽ không phát sinh các vấn đề về quản lý phiên – session. Thông tin session của tất cả người dùng được nhận biết thông qua một máy chủ duy nhất. Tất cả kết nối của Client đều được chuyển đến một máy chủ duy nhất. Ở chế độ dự phòng, khi người quản trị cài đặt nhiều hơn một server, vấn đề về quản lý session sẽ xuất hiện. Máy chủ ứng dụng có nguy cơ không thể access thông tin session người dùng. 2.        Phương án cấu hình dự phòng khi sử dụng session ·          Replication : Sử dụng cơ chế sao lưu session của web server để đảm bảo rằng tất cả các máy chủ ứng dụng thuộc cluster khác nhau đều có thông tin của Session. Một số web server phổ biến như tomcat đều hỗ trợ cơ chế replication session này. ·          Share session : Thông tin session được chia sẻ bằng cách lưu trữ tập trung vào một cơ sở dữ liệu, hoặc dạng file system trên web se