Hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能。相比WebService,Hessian更簡單、快捷。采用的是二進制RPC協(xié)議,因為采用的是二進制協(xié)議,所以它很適合于發(fā)送二進制數(shù)據(jù)。
注意事項
在進行基于Hessian的項目開發(fā)時,應當注意以下幾點:
JAVA服務器端必須具備以下幾點:
包含Hessian的jar包。
設計一個接口,用來給客戶端調(diào)用。
實現(xiàn)該接口的功能。
配置web.XML,配好相應的servlet。
由于使用二進制RPC協(xié)議傳輸數(shù)據(jù),對象必須進行序列化,實現(xiàn)Serializable接口。
對于復雜對象可以使用Map的方法傳遞。
客戶端必須具備以下幾點:
Java客戶端包含Hessian.jar的包。C?中引用hessianC?dll。
具有和服務器端結構一樣的接口。包括命名空間都最好一樣。
利用HessianProxyFactory調(diào)用遠程接口。
服務器端
新建一個名EasyHessian的webProject項目,將Hessian.jar放入web-inf下的天秤座中
創(chuàng)建接口:
package app.demo;
public interface BasicAPI{
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
實現(xiàn)接口:
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");
}
}
創(chuàng)建一個實現(xiàn)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/XMLSchemainstance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/XML/ns/j2ee/web-app_2_4.xsd">
為了測試可以在編輯一個簡單的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());
%>
將一切配置成功后,將項目發(fā)布到web服務器上去,可以是tomcat,Rain等等。
進入
結果如下:
Hello:Hello,world
Hello:snoopy
Hello:showme
說明服務器端已經(jīng)編寫成功。
java客戶端
創(chuàng)建一個名為HessianClient的JAVAProject,載入hessian.jar包
創(chuàng)建與服務器端一樣的接口,及基礎類
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;
}
}
創(chuàng)建客戶端
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
網(wǎng)游
簡介
韓國首款線上軍事TPS游戲《Hessian》,經(jīng)過8月份的首次測試后,將于10月28日~11月1日展開二次測試,并且公開新的游戲內(nèi)容。
《Hessian》號稱能夠忠實地呈現(xiàn)軍事戰(zhàn)爭,讓玩家有戰(zhàn)略和戰(zhàn)術的規(guī)劃;世界觀設定為近未來發(fā)生的石油大戰(zhàn),采用真實性極高的游戲角色,透過次世代的游戲引擎,重現(xiàn)真實的戰(zhàn)爭場景。
一般的FPS游戲畫面,只會顯示槍口和槍,而本款號稱新型態(tài)TPS,擺脫FPS中的單純作戰(zhàn)方式,采用全面性的戰(zhàn)爭模式,玩家可以從直升機的空對地攻擊到自行火炮的遠距離炮擊等多種戰(zhàn)術和戰(zhàn)略的運用,更展現(xiàn)真實戰(zhàn)場的風貌。游戲中的武器分多個種類的部件,玩家可以進行裝備改裝,制定自己想要的武器。
《Hessian》不同于既有FPS的內(nèi)容,有高度真實感,尤其是利用掩蔽物躲避敵人攻擊,以預測射擊或牽制射擊等分散敵人主力,扭斷脖子等多種真實動作,都做得非常地有真實性。
游戲需求游戲配置為CPU P4 3.0GHz,RAM 2G,VGA Geforce7600GT,屬于中等級的要求。
公開新的游戲內(nèi)容
新內(nèi)容1:獨創(chuàng)的戰(zhàn)斗方式,通過CTS體驗的近戰(zhàn)戰(zhàn)斗樂趣
《Hessian》中的武器分為主武器、輔助武器、投擲武器、近戰(zhàn)武器。其中,最獨特的就是近戰(zhàn)武器。與一般FPS游戲的折刀概念不同,進入對方無法反抗的特定攻擊狀態(tài)。
一測中公開的悄悄靠近敵人身后的‘夾頭(HeadLock)’,受到玩家關注。此次二測將公開的近戰(zhàn)武器具有射擊游戲中所沒有的獨創(chuàng)戰(zhàn)斗方式近戰(zhàn)戰(zhàn)術支援(CTS:Close Tactical Support)。近戰(zhàn)偵察、近戰(zhàn)支援型的戰(zhàn)略游戲成為可能。
「近戰(zhàn)支援CTS」是以標記(紅色煙霧彈)指定坐標,后方多個地域發(fā)射迫擊炮給予支援的系統(tǒng)。
「近戰(zhàn)偵察CTS」是配備有紅外線傳感器的無人機(UAV)搜索指定區(qū)域,向我方傳遞敵人位置信息的系統(tǒng)。
新內(nèi)容2:新游戲任務「空襲任務」
一測時,《Hessian》公開殲滅任務和個人任務,二測將添加新游戲任務「空襲任務」。玩家為成功完成各種任務,殲滅敵人,在指定的地方鋪設炸彈,同時為在戰(zhàn)場中生存下來,與傭兵展開決戰(zhàn)。
空襲任務是在限定時間內(nèi),將中轉裝置GDT安裝在指定的區(qū)域,以成功完成導引空中攻擊的任務。安裝地區(qū)有2個區(qū)域,各區(qū)域安裝的陣營已指定。該任務以先勝制進行,特定陣營獲得整體一半以上場數(shù)的勝利,即視為獲勝,游戲結束。
新內(nèi)容3:使用第3人稱視角的多種演出
與既有FPS游戲不同,《Hessian》中的游戲角色具有利用地形地物的掩蔽,使用繩索移動于建筑物之間,通過固定武器攻擊敵人等多種攻擊。
新內(nèi)容4:電影般的演出
單機游戲中的視頻截取(Cut Scene)在《Hessian》中實現(xiàn)。擺脫FPS游戲的第1人稱視角,玩家能在游戲中飾演動作/戰(zhàn)爭電影中的主人公,過足戰(zhàn)斗癮。
新內(nèi)容5:新游戲角色安東尼奧
意大利出身的傭兵安東尼奧將在二測中登場。安東尼奧是意大利北部城市都靈的一個平凡地方公務員家庭的獨生子,在羅馬體育大學所學專業(yè)為歷史學,不明原因進入意大利國家憲兵隊(Carabinieri)反恐怖特別行動勤務組/大隊(GIS),成為一名PMC特工。
除新游戲角色外,《Hessian》還將公開SMG沖鋒槍(沖鋒槍)、AR(突擊步槍)、SR(狙擊來復槍)、防御武器、防具、STOG等新道具,玩家通過多種武器使用各種戰(zhàn)略戰(zhàn)術,體驗更為逼真的游戲。
矩陣
在數(shù)學中,海賽矩陣是一個自變量為向量的實值函數(shù)的二階偏導數(shù)組成的方塊矩陣,此函數(shù)如下:
如果f所有的二階導數(shù)都存在,那么f的海賽矩陣即:
H(f)ij(x)=DiDjf(x)
其中,即
(也有人把海色定義為以上矩陣的行列式)海賽矩陣被應用于牛頓法解決的大規(guī)模優(yōu)化問題。
混合偏導數(shù)和海賽矩陣的對稱性
海賽矩陣的混合偏導數(shù)是海色矩陣主對角線上的元素。假如他們是連續(xù)的,那么求導順序沒有區(qū)別,即
上式也可寫為
在正式寫法中,如果f函數(shù)在區(qū)域D內(nèi)連續(xù)并處處存在二階導數(shù),那么f的海賽矩陣在D區(qū)域內(nèi)為對稱矩陣。
在R^2→R的函數(shù)的應用
給定二階導數(shù)連續(xù)的函數(shù),海色矩陣的行列式,可用于分辨f的臨界點是屬于鞍點還是極值。
對于f的臨界點(x0,y0)一點,有,然而憑一階導數(shù)不能判斷它是鞍點、局部極大點還是局部極小點。海賽矩陣可能解答這個問題。
H>0:若,則(x0,y0)是局部極小點;若,則(x0,y0)是局部極大點。
H<0:(x0,y0)是鞍點。
H=0:二階導數(shù)無法判斷該臨界點的性質(zhì),得從更高階的導數(shù)以泰勒公式考慮。
參考資料 >