B端技術常識:同步異步接口模式
本文介紹程序設計中常見的同步、異步接口模式,并通過設計案例讓大家理解兩種模式如何融入到產品設計中。
在軟件開發中,接口是一個非常重要的概念。所謂接口,是指兩個對象進行通信的方式和協議。
軟件領域的接口和我們生活中所使用的硬件設備的接口(例如USB接口、蘋果的Lighting接口、3.5mm耳機接口等)類似,每種接口都有約定的格式和規范,只要在設計時遵循了約定和規范,就能夠方便地進行信息交換。
在軟件設計領域,小到一個軟件模塊,大到一個軟件系統,都會有若干接口,實現不同模塊、不同系統之間的通信。
一般來講,每個接口都應該實現一個具體的功能,接口需要有明確的輸入,以及明確的輸出(有的時候輸出結果為空)。例如,調用客戶姓名查詢接口時,需要傳入客戶ID,執行后返回客戶姓名。
在跨團隊、跨模塊的軟件開發中,接口的設計規則需要在設計技術方案時就協商好,然后各方團隊各自開發,在約定的時間一起聯調,進行集成測試。
接口之間的調用模式分為同步調用模式和異步調用模式兩種,產品經理需要理解這兩種模式的區別,因為這不僅是技術問題,也會影響產品方案,我們通過兩個產品設計案例來理解這兩種模式。
同步調用模式
在同步調用模式下,接口的調用方會一直等待被調用方返回執行結果,除非調用超時,如下圖所示。同步調用模式是最常見的接口調用形式。
我們來看一個采用同步調用模式的數據文件查詢下載頁面的設計案例。在該頁面中,用戶查詢并下載csv文件,如下圖所示。
具體交互與系統處理步驟如下:
- 用戶設置好查詢條件,點擊“下載”按鈕;
- “下載”按鈕會以同步模式調用后臺數據查詢接口,將前端用戶填寫的日期作為參數傳遞給后端服務接口;
- 后端服務拼寫SQL查詢語句,執行SQL語句并等待數據庫返回結果;
- 數據庫返回結果后,后端服務接口組裝數據,生成csv文件,并返回給前端瀏覽器。在這個過程中,用戶在瀏覽器端一直處于等待狀態(瀏覽器左下角可能會有提示文字:等待服務器響應);
- 瀏覽器收到服務器返回的數據文件,彈出窗口,提示用戶選擇文件的保存位置,并執行文件下載操作。
異步調用模式
在異步調用模式下,接口調用方給被調用方發出指令,但不會等待結果,如下圖所示。
一般耗時比較長的處理工作會采用異步調用模式,調用方會給被調用方提供一個回調接口,意思是“你處理時間比較長,等你處理完以后,再調用這個回調接口,通知我結果吧!”
我們依然以文件查詢下載為例來看看異步調用模式下的產品設計。在上一個案例中,數據查詢有可能非常耗時,如果讓用戶停留在前端頁面等待,體驗并不友好,所以我們考慮對功能進行改進,通過異步調用模式重新設計功能,交互效果如下圖所示,具體執行步驟如下:
- 用戶設置好查詢條件,點擊“下載”按鈕。
- 前端提示“下載任務已提交,請耐心等待?!焙蠖说南螺d任務調度管理程序開始執行,在數據庫生成一條狀態是“處理中”的任務記錄,同時異步調用后端數據查詢服務接口,并提供回調接口。
- 后端服務接口拼寫SQL語句并執行,數據庫返回結果后,程序將數據處理成csv格式,保存在服務器,并調用回調接口,后端服務接口程序執行結束,將任務狀態更新為“成功”,并提供數據下載的鏈接。
- 如果后端服務接口長時間沒有得到數據庫返回結果,超過規定時間后,下載任務調度管理程序會將任務狀態更新為“失敗”。
希望本文能夠幫助你進一步感受技術原理與產品設計方案的相關性。
插播一條廣告
大家好,我是《決勝B端》作者楊堃,曾在VIPKID任產品總監一職。在工作中,遇見有很多優秀的B端產品經理,但缺少體系化、針對B端產品的實操訓練,在成長中走了許多彎路。
我努力將自己多年做B端產品的經驗提煉總結出來,和起點學院聯合打造了一門B端產品體系課——《To B產品實戰訓練營》希望能給需要的同學一些實質性的幫助。
幫助大家構建B端產品知識體系脈絡,掌握B端產品建設,從業務診斷、需求分析,到抽象建模、設計落地的全過程的方法思路,最終直接應用于工作實踐。
掃碼即可報名,還可為大家爭取到的專屬優惠~
立即搶座,報名成功后即可領取詳細課程資料!
#專欄作家#
楊堃,公眾號:PM楊堃(ID:pmYangKun)。人人都是產品經理專欄作家,《決勝B端》作者,11年互聯網研發、產品設計經驗,曾就職于傳統外資保險公司、百度,現就職于VIPKID。
本文原創發布于人人都是產品經理。未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
清晰~
是的,真的寫的太清晰了,厲害啊
B端產品對技術的要求很高嘛[捂臉]
通過案例,很好理解!
雙十一才把你的書買了