Hessian

輕量級的remoting onhttp工具

Hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能。相比WebService,Hessian更簡單、快捷。採用的是二進位RPC協議,因為採用的是二進位協議,所以它很適合於發送二進位數據。

注意事項


在進行基於Hessian的項目開發時,應當注意以下幾點:
JAVA伺服器端必須具備以下幾點:
包含Hessian的jar包。
設計一個介面,用來給客戶端調用。
實現該介面的功能。
配置web.xml,配好相應的servlet
由於使用二進位RPC協議傳輸數據,對象必須進行序列化,實現Serializable介面。
對於複雜對象可以使用Map的方法傳遞。
客戶端必須具備以下幾點:
Java客戶端包含Hessian.jar的包。C#中引用hessianCSharp.dll。
具有和伺服器端結構一樣的介面。包括命名空間都最好一樣。
利用HessianProxyFactory調用遠程介面。

伺服器端


新建一個名EasyHessian的webProject項目,將Hessian.jar放入web-inf下的lib中
創建介面:
package app.demo;
public interface BasicAPI{
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
實現介面:
package app.demo;
public class BasicService implements BasicAPI{
private String_greeting="Hello,world";
public void setGreeting(String greeting){
_greeting=greeting;
System.out.println("set greeting success:"+_greeting);
}
public String hello(){
return_greeting;
}
public User getUser(){
return new User("prance","meshow");
}
}
創建一個實現Serializable的projo類也可以是Bean
package app.demo;
import java.io.Serializable;
public class User implements Serializable{
String userName="snoopy";
String password="showme";
public User(Stringuser,String pwd){
this.userName=user;
this.password=pwd;
}
public String getUserName(){
return userName;
}
public String getPassword(){
return password;
}
}
接下來是配置web.xml
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
hello
com.caucho.hessian.server.HessianServlet
service-class
app.demo.BasicService
hello
/hello
為了測試可以在編輯一個簡單的test.jsp
<%@pageimport="com.caucho.hessian.client.HessianProxyFactory,
app.demo.BasicAPI"%>
<%@page language="java"%>
<%
HessianProxyFactory factory=newHessianProxyFactory();
String url=("http://"+request.getServerName()+":"+request.getServerPort()+
request.getContextPath()+"/hello");
out.println(url);
BasicAPI basic=(BasicAPI)factory.create(BasicAPI.class,url);
out.println("Hello:"+basic.hello());
out.println("Hello:"+basic.getUser().getUserName());
out.println("Hello:"+basic.getUser().getPassword());
%>
將一切配置成功后,將項目發布到web伺服器上去,可以是Tomcat,Rain等等。
進入
結果如下:
Hello:Hello,world
Hello:snoopy
Hello:showme
說明伺服器端已經編寫成功。

java客戶端


創建一個名為HessianClient的JAVAProject,載入hessian.jar包
創建與伺服器端一樣的介面,及基礎類
public interface BasicAPI{
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
import java.io.Serializable;
public class User implements Serializable{
String userName="snoopy";
String password="showme";
public User(Stringuser,String pwd){
this.userName=user;
this.password=pwd;
}
public String getUserName(){
return userName;
}
public String getPassword(){
return password;
}
}

創建客戶端


importcom.caucho.hessian.client.HessianProxyFactory;
public class BasicClient{
public static void main(String[]args)
throwsException
{
String url="http://127.0.0.1:8080/Hessian/hello";
HessianProxyFactory factory=new HessianProxyFactory();
BasicAPI basic=(BasicAPI)factory.create(BasicAPI.class,url);
System.out.println("Hello:"+basic.hello());
System.out.println("Hello:"+basic.getUser().getUserName());
System.out.println("Hello:"+basic.getUser().getPassword());
basic.setGreeting("HelloGreeting");
System.out.println("Hello:"+basic.hello());
}
}
運行結果:
Hello:Hello,world
Hello:prance
Hello:meshow
Hello:Hello Greeting

網游


簡介
韓國首款線上軍事TPS遊戲《Hessian》,經過8月份的首次測試后,將於10月28日~11月1日展開二次測試,並且公開新的遊戲內容。
《Hessian》號稱能夠忠實地呈現軍事戰爭,讓玩家有戰略和戰術的規劃;世界觀設定為近未來發生的石油大戰,採用真實性極高的遊戲角色,透過次世代的遊戲引擎,重現真實的戰爭場景。
一般的FPS遊戲畫面,只會顯示槍口和槍,而本款號稱新型態TPS,擺脫FPS中的單純作戰方式,採用全面性的戰爭模式,玩家可以從直升機的空對地攻擊到自行火炮的遠距離炮擊等多種戰術和戰略的運用,更展現真實戰場的風貌。遊戲中的武器分多個種類的部件,玩家可以進行裝備改裝,制定自己想要的武器。
《Hessian》不同於既有FPS的內容,有高度真實感,尤其是利用掩蔽物躲避敵人攻擊,以預測射擊或牽制射擊等分散敵人主力,扭斷脖子等多種真實動作,都做得非常地有真實性。
遊戲需求遊戲配置為CPU P4 3.0GHz,RAM 2G,VGA Geforce7600GT,屬於中等級的要求。
公開新的遊戲內容
新內容1:獨創的戰鬥方式,通過CTS體驗的近戰戰鬥樂趣
《Hessian》中的武器分為主武器、輔助武器、投擲武器、近戰武器。其中,最獨特的就是近戰武器。與一般FPS遊戲的折刀概念不同,進入對方無法反抗的特定攻擊狀態。
一測中公開的悄悄靠近敵人身後的‘夾頭(HeadLock)’,受到玩家關注。此次二測將公開的近戰武器具有射擊遊戲中所沒有的獨創戰鬥方式近戰戰術支援(CTS:Close Tactical Support)。近戰偵察、近戰支援型的戰略遊戲成為可能。
「近戰支援CTS」是以標記(紅色煙霧彈)指定坐標,後方多個地域發射追擊炮給予支援的系統。
「近戰偵察CTS」是配備有紅外線感測器的無人機(UAV)搜索指定區域,向我方傳遞敵人位置信息的系統。
新內容2:新遊戲任務「空襲任務」
一測時,《Hessian》公開殲滅任務和個人任務,二測將添加新遊戲任務「空襲任務」。玩家為成功完成各種任務,殲滅敵人,在指定的地方鋪設炸彈,同時為在戰場中生存下來,與傭兵展開決戰。
空襲任務是在限定時間內,將中轉裝置GDT安裝在指定的區域,以成功完成導引空中攻擊的任務。安裝地區有2個區域,各區域安裝的陣營已指定。該任務以先勝制進行,特定陣營獲得整體一半以上場數的勝利,即視為獲勝,遊戲結束。
新內容3:使用第3人稱視角的多種演出
與既有FPS遊戲不同,《Hessian》中的遊戲角色具有利用地形地物的掩蔽,使用繩索移動於建築物之間,通過固定武器攻擊敵人等多種攻擊。
新內容4:電影般的演出
單機遊戲中的視頻截取(Cut Scene)在《Hessian》中實現。擺脫FPS遊戲的第1人稱視角,玩家能在遊戲中飾演動作/戰爭電影中的主人公,過足戰鬥癮。
新內容5:新遊戲角色安東尼奧
義大利出身的傭兵安東尼奧將在二測中登場。安東尼奧是義大利北部城市都靈的一個平凡地方公務員家庭的獨生子,在羅馬大學所學專業為歷史學,不明原因進入義大利國家憲兵隊(Carabinieri)反恐怖特別行動勤務組/大隊(GIS),成為一名PMC特工。
除新遊戲角色外,《Hessian》還將公開SMG(衝鋒槍)、AR(突擊步槍)、SR(狙擊來複槍)、防禦武器、防具、STOG等新道具,玩家通過多種武器使用各種戰略戰術,體驗更為逼真的遊戲。

矩陣


在數學中,海賽矩陣是一個自變數為向量的實值函數的二階偏導數組成的方塊矩陣,此函數如下:
如果f所有的二階導數都存在,那麼f的海賽矩陣即:
H(f)ij(x)=DiDjf(x)
其中,即
(也有人把海色定義為以上矩陣的行列式)海賽矩陣被應用於牛頓法解決的大規模優化問題。
混合偏導數和海賽矩陣的對稱性
海賽矩陣的混合偏導數是海色矩陣主對角線上的元素。假如他們是連續的,那麼求導順序沒有區別,即
上式也可寫為
在正式寫法中,如果f函數在區域D內連續並處處存在二階導數,那麼f的海賽矩陣在D區域內為對稱矩陣
在R^2→R的函數的應用
給定二階導數連續的函數,海色矩陣的行列式,可用於分辨f的臨界點是屬於鞍點還是極值。
對於f的臨界點(x0,y0)一點,有,然而憑一階導數不能判斷它是鞍點、局部極大點還是局部極小點。海賽矩陣可能解答這個問題。
H>0:若,則(x0,y0)是局部極小點;若,則(x0,y0)是局部極大點。
H<0:(x0,y0)是鞍點。
H=0:二階導數無法判斷該臨界點的性質,得從更高階的導數以泰勒公式考慮。
  • 目錄