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

[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 Skype bạn cũng đều cần phải đăng nhập vào ứng dụng trước khi sử dụng nó. Hay dù bạn mua hàng thông qua Amazon hoặc Ebay bạn vẫn cần phải trải qua những bước thực hiện thanh toán tương tự nhau cho đơn hàng của mình. Dưới góc độ của một lập trình viên, rõ ràng họ đang phải phát triển lặp lại các chức năng giống nhau này cho những ứng dụng khác nhau.  Và như một xu thế tất yếu những công ty cung cấp dịch vụ  Open API (API mở) đã ra đời để giúp giải quyết những vấn đề nhứ thế. Bây giờ bạn sẽ không phải quá lo lắng khi ước mơ phát triển một ứng dụng bán hàng trực tuyến để cạnh tranh với Ebay hay Amazon nữa bởi những phần được xem là khó nhằn nhất như thanh toán hàng hoá hay chứng thực tài khoản... đã có một bên thứ ba trong vai trò nhà cung cấp dịch vụ Open API trợ giúp. Để hiểu rõ hơn về Open API, trước tiên chúng ta cần nắm được các khái niệm về API.

API là gì?

API (application programming interface) hay giao diện lập trình ứng dụng là tập các định nghĩa, giao thức  và công cụ chung dùng cho việc phát triển một phần mềm và ứng dụng. Một API sẽ mô tả về các hoạt động, đầu vào, đầu ra và những phương  thức cơ bản của một thành phần trong phần mềm.
API có thể được sử dụng trong một hệ thống Web, hệ điều hành hoặc hệ thống cơ sở dữ liệu, và nó là phương tiện dễ dàng để phát triển ứng dụng thông qua một ngôn ngữ lập trình. Ví dụ khi lập trình viên phát triển một ứng dụng cho nền tảng android có thể dùng đến các Android API để tương tác với phần cứng như: camera, thẻ nhớ của một thiết bị Android.

Open API đem lại điều gì?

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. Việc sử dụng những Open API này đem lại nhiều lợi ích như:

*    Giảm thiểu thời gian phát triển sản phẩm:
Chúng ta đang chứng kiến được sự phát triển rất mạnh mẽ của lĩnh vực Open API trong thời gian gần đây. Điển hình như ProgrammableWeb đã chia sẻ kho 15.000 API của mình với các API mới vẫn đang được cập nhật thêm hàng ngày. Các lập trình viên có thể chèn các đoạn mã API này vào các dự án phần mềm họ đang thực hiện và tung sản phẩm ra thị trường nhanh chóng hơn so với việc tự đi thiết kế lại từng tính năng nhỏ từ đầu rất nhiều. Một số nhà cung cấp dịch vụ khác lại chọn hướng phát triển chuyên sâu, các API họ cung cấp chỉ tập trung vào một nhóm dịch vụ nhất định, chẳng hạn như API cổng thanh toán điện tử từ Stripe và Plaid, API gọi điện từ Twilio, API dữ liệu địa điểm từ Factual hay API tìm kiếm từ Algolia…

*    Tăng sự tập trung vào tính năng cốt lõi của sản phẩm:
Mặc dù việc cho phép các lập trình viên hoàn thiện sản phẩm nhanh chóng, hiệu quả hơn đã là một lợi thế khổng lồ của Open API, thực tế Open API vẫn còn một lợi ích quan trọng khác: Các công ty có thể tập trung toàn lực vào khả năng phát triển các tính năng độc đáo trên phần mềm của mình, hay nói đúng hơn là bí quyết giúp sản phẩm họ trở nên khác biệt với các sản phẩm khác thay vì lo đi làm cả những thứ “râu ria” như trước.

*    Chất lượng các API ngày càng được nâng cao:
Một công năng khác của các API được phát triển bởi bên thứ ba là chúng thường tốt hơn. Những API này hoạt động hiệu quả và linh hoạt hơn các API đóng được phát triển trong nội bộ công ty. Các công ty thường coi nhẹ khâu xây dựng và bảo trì các tính năng họ có thể chèn vào sản phẩm của mình bằng các Open API. Cuối cùng thì các nhà cung cấp Open API bên thứ ba lại càng có lượng khách hàng cũng như dữ liệu lớn hơn để tạo ra hiệu ứng lan tỏa. (network effect). Những hiệu ứng lan tỏa này có thể là giá thành rẻ hơn, thỏa thuận cung cấp dịch vụ tốt hơn cho đến khả năng sử dụng AI phân tích các loại dữ liệu người dùng. Ví dụ như công ty Signifyd chuyên cung cấp Open API phân tích các hành vi gian lận trong sử dụng sản phẩm mà cụ thể là API này sẽ tổng hợp dữ liệu giao dịch từ hàng trăm công ty, cho phép họ hiểu sâu hành vi của một lượng lớn các vụ gian lận hơn bất cứ một công ty đơn lẻ nào có thể nhìn ra.

Các mô hình kinh doanh Open API phổ biến hiện nay

*    Cung cấp miễn phí:
Một doanh nghiệp (hoặc tổ chức) có thể mở API ra cho dùng miễn phí. Bất cứ nhà phát triển (lập trình viên) nào cũng có thể đăng ký để khai thác sử dụng. Ví dụ, Facebook cung cấp miễn phí API để mọi người nhúng nút Like vào trang web của mình. Việc này giúp nút Like của Facebook xuất hiện khắp mọi nơi trên web, khẳng định là nền tảng social networking số một của Facebook. Có một số thống kê tính rằng, cứ 5 trang web thì có một trang sử dụng nút Like của Facebook. Ước tình có 125 triệu trang web như vậy.

*    Trả tiền để sử dụng:
Trong trường hợp này, người dùng sẽ trả tiền cho nhà cung cấp để được sử dụng API. Điều này ban đầu nghe có vẻ giống với các loại hình kinh doanh truyền thống ta vẫn thấy. Tuy vậy, API là một hình thức kinh doanh số nên có nhiều mô hình kinh doanh mới rất thú vị.

- Pay As You Go: Trả tiền theo thực tế sử dụng. Điển hình cho mô hình này là dịch vụ Cloud của Amazon, đó là Amazon Web Services (AWS). AWS cung cấp các dịch vụ cơ sở hạ tầng như máy chủ, cơ sở dữ liệu, lưu trữ, hạ tầng mạng... với chính sách giá Pay-As-You-Go. Người dùng có thể mua dịch vụ của AWS theo nhu cầu (không phải báo trước) và dùng trong khoảng thời gian nhất định. Chính sách giá của AWS không đòi hỏi khách hàng phải trả một mức phí tối thiểu, hay đặt cọc, hoặc hợp đồng dài hạn. Việc này giúp người dùng của AWS chỉ phải chi trả cho đúng nhu cầu thực tế của hệ thống. Vì đối với các hệ thống cũ, việc mua và lắp đặt hệ thống mất rất nhiều thời gian, dẫn đến việc các tài nguyên phải được mua trước theo dự báo nhu cầu, việc đó dẫn đến tổ chức phải bỏ ra một số vốn lớn ban đầu (capex), và gây lãng phí hoặc nếu không thì lại không đáp ứng được nhu cầu thật. Chính vì những lợi điểm của phương pháp tính giá như vậy, rất nhiều công ty lớn đã sử dụng AWS thay vì phát triển hệ thống cơ sở hạ tầng của mình hoặc thuê các loại hình trung tâm dữ liệu truyền thống. Netflix là công ty cung cấp dịch vụ xem phim trực tuyến lớn nhất thế giới, Netflix sử dụng AWS cho gần như toàn bộ hệ thống streaming của họ, Netflix sử dụng hàng chục nghìn máy chủ và lưu trữ hàng chục petabytes dữ liệu trên dịch vụ AWS một phần vì tính linh động của phương pháp tính giá theo nhu cầu sử dụng.

- Freemium:  Miễn phí tính năng cơ bản, trả tiền cho tính năng cao cấp. Với mô hình này, người dùng được dùng miễn phí sản phẩm và dịch vụ, nhà cung cấp chỉ tính phí khi người dùng chọn các tính năng đặc biệt. Đây cũng là một mô hình thông dụng các nhà cung cấp API thương mại hay sử dụng. Lợi điểm của mô hình này là khuyến khích người dùng thử dịch vụ, giúp việc phát triển tập người dùng rất nhanh và hiệu quả. Sau khi đã có tập người dùng lớn thì nhà cung cấp có thể bán các dịch vụ cao cấp cho một số nhỏ người dùng trả tiền. Ví dụ, dịch vụ Google Cloud Vision API cho phép người dùng sử dụng miễn phí 1.000 unit/tháng; hoặc dịch vụ Google Maps API cũng dùng chính sách freemium.

Ngoài ra còn rất nhiều mô hình khác như: transaction fee, unit-based...

*    Được trả tiền khi sử dụng:

Trong trường hợp này, việc dùng API thường đem lợi ích đến cho nhà cung cấp API. Vì vậy, nhà cung cấp muốn khuyến khích và tạo động lực cho việc sử dụng API bằng cách trả tiền cho người dùng. Các hình thức trả tiền cho nhà phát triển rất đa dạng tùy thuộc vào ngành nghề và phương pháp kinh doanh của từng nhà cung cấp.
Một trong những API trả tiền nổi tiếng là Amazon Advertising API, API này cho phép nhà phát triển truy cập và lấy thông tin về hàng triệu sản phẩm mà Amazon đang bán trên hệ thống của họ trên toàn cầu như: Sách báo, âm nhạc, đồ điện tử, đồ gia dụng... Từ đó, nhà phát triển có thể dùng thông tin này để quảng cáo các sản phẩm trên trang web của mình. Nếu người dùng mua một sản phẩm mà do nhà phát triển giới thiệu đến, thì Amazon sẽ trả cho người giới thiệu một tỷ lệ hoa hồng quảng cáo nhất định tùy theo mặt hàng.Những hình thức này người ta gọi là tiếp thị Liên kết (affiliate marketing). Đây là phương thức tiếp thị dựa trên nền tảng công nghệ Internet; phương thức này có lợi điểm hơn các phương thức truyền thống là việc thanh toán chỉ dựa trên hiệu quả của quảng cáo mà không dựa vào các chỉ số gián tiếp như thời gian và tần suất quảng cáo. Việc thực hiện những hình thức tiếp thị liên kết này đều dựa vào nền tảng API để liên kết các bên.


*    API không trực tiếp tạo ra doanh số
Ngoài những phương thức kinh doanh API kể trên thì một tổ chức có thể triển khai hệ thống API vì nhiều lợi ích và lý do khác, tuy không trực tiếp tạo ra doanh số. Một những lợi ích đó là khai thác được trí tuệ của cộng đồng. Ví dụ, Fitbit là công ty chuyên sản xuất các thiết bị theo dõi thông số sức khỏe cá nhân (fitness tracker). Lúc đầu, chỉ có một ứng dụng tương thích với phần cứng của công ty được chính công ty phát triển.
Điều này không đáp ứng được với nhu cầu đa dạng của người dùng. Vì thế năm 2011, Công ty Fitbit mở API về dữ liệu (thu thập được từ thiết bị) ra cho các nhà phát triển khai thác. Đến giờ đã có hơn 30 ứng dụng được phát triển từ các bên thứ ba khai thác API của Fitbit. Việc có nhiều ứng dụng phục vụ nhu cầu đa dạng của người dùng giúp tăng giá trị của thiết bị Fitbit, đồng thời kích thích nhu cầu sử dụng của người dùng. Fitbit có được nhưng ưu thế này mà không mất chi phí đang kể nào (ngoài việc duy trì vận hành API).
Hoặc như các công ty có thể phát triển API để dùng nội bộ giúp việc tích hợp các hệ thống nội bộ nhanh chóng hơn. Khi phát triển một ứng dụng nội bộ cho doanh nghiệp, thường thì hệ thống mới phải truy xuất và lấy thông tin, dự liệu từ nhiều nguồn khác nhau (từ các phòng ban khác nhau). Công việc này (nếu không dùng hệ thống API chung) thì rất tốn thời gian vì các hệ thống khác nhau lưu trữ thông tin với các format khác nhau (data format), và dữ kiệu được trao đổi với các phương thức khác nhau (data exchange protocol). Phần code được viết cho việc tích hợp này thường không bao giờ tái sử dụng lại được cho các trường hợp tương tự. Ví dụ, Công ty Comcast ở Mỹ, sau khi triển khai hệ thống API nội bộ, thì việc tích hợp dữ liệu giữa các hệ thống giảm từ vài ngày xuống còn 30 phút.

Open API và tiềm năng phát triển

Trong quá khứ, những công ty lớn nhất là những công ty có thể tiếp cận nhiều dữ liệu nhất hay có khả năng “khóa kín” nền tảng của mình. Thế nhưng trong kỷ nguyên API hiện nay, các công ty hùng mạnh nhất rất có thể sẽ là những công ty có thể tổng hợp được nhiều dữ liệu nhất và chia sẻ những dữ liệu này rộng rãi với công chúng.
Các startup về API đang ngày càng hot và sẽ tiếp tục phát triển hơn trong tương lai. Những năm qua, chúng ta đã chứng kiến ưu ái ngày một lớn của thị trường dành cho các công nghệ hướng đến khách hàng doanh nghiệp như các phần mềm dịch vụ (SaaS), dữ liệu lớn, các dịch vụ mini hay trí tuệ nhân tạo. Và API chính là nút giao của tất cả các lĩnh vực trên.
Những mô hình kinh doanh API không cần đầu tư quá nhiều vào quy trình bán hàng hay chuỗi cung ứng, doanh thu đều đặn và có thể giúp “giảm tải” lượng công việc cho khách hàng sẽ trở thành mô hình cực kỳ hấp dẫn trong tương lai. Thêm vào đó, lợi ích API mang đến cho hệ sinh thái phát triển phần mềm cũng thực sự khổng lồ khi giúp các lập trình viên tập trung toàn lực vào việc thiết kế các tính năng độc đáo giúp định vị sản phẩm của họ một cách nhanh chóng và hiệu quả, góp phần tiết giảm đáng kể nguồn lực và chi phí phát triển, cung ứng phần mềm.

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...

[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  ...

[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 an...

[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.

[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 ....

[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 ...

[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. ·       ...