Socket、Webservice和Json (二)
socket偏底層,效率高,但是開發成本大。
webservice效率低,但是開發成本低廉。
webservice,基於http協議,以xml為載體的通訊方式。
好處,一直觀,二標準,也方便異構系統的互動。
如果想提供對外的業務訪問的介面,可能需要瀏覽器,各種語言的客戶端等各種異構系統訪問,是首選。
socket,提供了tcp/ip或者udp的通訊的實現,如果做標準的伺服器,比如下載伺服器;或者語音通訊的程式,或者視訊,檔案傳輸……這些只能用socket。
單純用socket寫會很煩的,你要處理各種東西,協議的編解碼等等,所以這種情況下推薦mina,netty或者grizzly。
Json,本質來說它就是javascript片段描述物件,對瀏覽器很有用。如果要做一個ajax的功能的話,json是最簡單有效而且效能好。比如mtime的很多非同步功能都是用json方式傳遞的。json沒有什麼門檻,也可以用於異構系統互動,不過如果異構系統不僅僅是瀏覽器,那還是選擇webservice。jsonlib等庫都可以直接把一個物件轉為json字串,struts2也提供了json外掛,
相關推薦
Socket、Webservice和Json (二)
socket和webservice都有跨平臺的優點,但是: socket偏底層,效率高,但是開發成本大。 webservice效率低,但是開發成本低廉。 webservice,基於http協議,以xml為載體的通訊方式。 好處,一直觀
整合學習之boosting,Adaboost、GBDT 和 xgboost(二)
AdaBoost 演算法的訓練誤差分析 AdaBoost最基本的性質是它能在學習過程中不斷減少訓練誤差,即在訓練資料集上的分類誤差率。 定理:AdaBoost的訓練誤差界: 1
CoreJava讀書筆記--異常、斷言和日誌(二)--斷言和日誌
使用斷言 在一個具有自我保護能力的程式中,斷言很常用。 (一)斷言的概念 斷言機制允許在測試期間向程式碼中插入一些檢查語句。當代碼釋出時,這些插入的檢測語句將會被自動地移走。Java語言引入了關鍵字assert。assert有兩種形式: assert 條件; 和
備份/恢復系統BAREOS的安裝、設定和使用(二)
備份/恢復系統BAREOS的設定 本文將介紹如何設定bareos系統,將分別介紹Bareos系統主機設定(含Director Daemon、Storage Daemon和Storage Daemon)、客戶機安裝/設定和系統整合測試。 在介紹設定前,我們先簡單介
Sqoop1.99.7安裝、配置和使用(二)
本文將接上文,記錄Sqoop1.99.7基本使用。這裡我們使用sqoop2將MySQL中的一個數據表匯出到HDFS,都是最簡單的使用。 請確保Sqoop2伺服器已經啟動,並確保Hadoop啟動。其中Hadoop不僅要啟動hdfs(NameNode、DataNode),
【專案管理和構建】——Maven下載、安裝和配置(二)
前言 在上篇博文【專案管理和構建】——Maven簡介(一)中我們瞭解到maven是一種全新的專案構建方式,讓我們的開發更加簡單,高效。Maven主要做的是兩件事: 統一開發規範與工具 統一管理jar包 這兩件事情他都做到了,而且還做了更多的事情。Mav
安裝 Element、SCSS和axios(二)
隨機 rul .data otf com lose uppercase () data 1、安裝element-ui依賴。 npm i element-ui -S 2、項目導入 按照安裝指南,在 main.js 中引入 element,引入之後,main.js
JSON(二):伺服器端和客戶端的JSON處理
上面介紹瞭如何用 JSON表示資料,接下來,我們還要解決如何在伺服器端生成 JSON 格式的資料以便傳送到客戶端,以及客戶端如何使用 JavaScript 處理 JSON 格式的資料。 先來看看伺服器如何輸出JSON格式的資料吧。 以 Java 為例,我們將演示將一個Java 物件編
程序、執行緒、協程和GIL(二)
上一篇部落格講了程序、執行緒、協程和GIL的基本概念,這篇我們來說說在以下三點: 1> python中使用threading庫來建立執行緒的兩種方式 2> 使用Event對消來判斷執行緒是否已啟動 3> 使用Semaphore和BoundedSemaphore兩個類
Golang 奇葩的時間包之Json與struct物件之間互相轉換,JsonDate和JsonTime自定義型別如何實現json編碼和解碼(二)
本篇在專案中實用性極強,推薦珍藏 package main import ( "encoding/json" "fmt" "time" ) type JsonDate time.Time type JsonTime time.Time func (
用 JSON 表現樹的結構兼談佇列、堆疊的練習(二)
樹的查詢查詢,又叫作搜尋 search。查詢跟遍歷的概念不同,遍歷是全部的節點都要走一遍,而查詢,找到目標節點就立刻返回,不會繼續遍歷了。當然,如果什麼都沒查詢到,就是一次完整的遍歷過程了。查詢的依據是什麼?假設我們對 K/V 結構,也就是 Map,對其增加 id 欄位,用來
重學資料結構和演算法(二)之二叉樹、紅黑樹、遞迴樹、堆排序
[TOC] 最近學習了極客時間的《資料結構與演算法之美]》很有收穫,記錄總結一下。 歡迎學習老師的專欄:[資料結構與演算法之美](https://time.geekbang.org/column/intro/126) 程式碼地址:https://github.com/peiniwan/Arithmetic
Oracle學習筆記—Db_name、Db_domain、Global_name、Service_name、Instance_name和Oracle_SID(轉載)
安全 文件中 分布 好處 避免 名稱 detail 數據庫安全 自動 轉載自: Oracle中DB_NAME,SID,DB_DOMAIN,SERVICE_NAME等之間的區別 Db_name:對一個數據庫(Oracle database)的唯一標識。這種表示對於單個數據
Ubuntu 16.04.2 LTS 安裝 jdk1.6 和 tomcat6 (二)
pass set 命令 arc 記錄 variable ogr ant pat 上一篇記錄和分享了jdk1.6 在Ubuntu 16.04.2 環境下的安裝配置,本文開始安裝和配置tomcat 6 2 安裝tomcat http://tomcat.ap
小白學習安全測試——httrack的安裝和使用(二)
type mas track base launch 驗證 解決方案 我沒 ted httrack是一款免費的網站鏡像程序,簡單理解就是可以在網站結構(網頁及一些主要信息文件),下載到本地,可離線瀏覽,我是按照搭建成功後的console直譯過來的 下面說下安裝: 我都是在L
MongoDB的文檔、集合、數據庫(二)
一個數 說明 ava 雙向鏈表 upsert block 根據 和數 pat 為了理解MongoDB的名詞,可以將其於關系型數據庫進行對比: 一、文檔 概述 文檔是MongoDB的核心概念,是數據的基本單元,非常類似於關系數據庫中的行。在
(轉載)【項目管理和構建】——Maven下載、安裝和配置(一)
文檔 port 目標 軟件項目管理 strong mar temp mave work 原文鏈接: http://blog.csdn.net/jiuqiyuliang/article/details/41076215 在現實
目錄文件的瀏覽、管理及維護(二).作業
.cn file height image 維護 nom 列表 logs 刪除空目錄 1) 開啟Linux操作系統,要求以root用戶登錄GNOME圖形界面,右擊桌面打開終端 2) 使用命令切換到root用戶的家目錄 3) 確定當前用戶所在的工作目錄
多線程編程學習筆記——async和await(二)
處理 sync ext 操作 line cnblogs 編程 技術 容器 接上文 多線程編程學習筆記——async和await(一) 三、 對連續的異步任務使用await操作符 本示例學習如何閱讀有多個await方法方法時,程序
Java排序算法分析與實現:快排、冒泡排序、選擇排序、插入排序、歸並排序(二)
第一個元素 spa insert 循環 冒泡排序 author 高級算法 ins -s 一、概述: 上篇博客介紹了常見簡單算法:冒泡排序、選擇排序和插入排序。本文介紹高級排序算法:快速排序和歸並排序。在開始介紹算法之前,首先介紹高級算法所需要的基礎知識:劃分、遞歸,並順