锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
銆銆public sealed class WebMethodAttribute : Attribute
銆銆閭d箞錛屽鏋滄垜浠渶瑕佸皢涓涓睘鎬т篃鍙戝竷鎴愪竴涓猈eb鏂規(guī)硶錛岃濡備綍鍋氬憿?鍦ㄨ璁鴻繖涓棶棰樹箣鍓嶏紝鍏堟潵鐪嬬湅涓轟粈涔堟垜浠渶瑕佸彂甯冨睘鎬т負涓涓猈eb鏂規(guī)硶?鍥犱負鏈変漢鍙兘浼氳繖涔堝憡璇変綘錛屼綘鍙互鎶婁綘鐨勫睘鎬ф敼鍐欐垚涓や釜瀵瑰簲鐨刧etXXXXX/setXXXXX鏂規(guī)硶鏉ュ垎鍒彂甯冩垚WebMethod銆傚摝錛屾槸鐨勶紝榪欎箞鍋氱湅浼煎彲浠ヨ揪鍒扮洰鐨勶紝浣嗘槸榪欐牱鍋氭崯瀹充簡鎴戜滑鐨勬帴鍙e畾涔夛紝浣垮緱鎴戜滑鏃犳硶浜彈灞炴т負鎴戜滑鎵甯︽潵鐨勫揩涔?璇蜂笉瑕侀棶鎴戞槸浠涔堝揩涔?錛屽叾瀹炴渶閲嶈鐨勪竴涓師鍥犲氨鏄棤娉曞畬鎴愬鎺ュ彛鐨勫疄鐜頒簡錛屾璇濇庤?涓旂湅涓嬮潰浠g爜(C#):
銆銆public interface IDataService
銆銆{
銆銆// 璇ュ睘鎬ф寚紺哄綋鍓嶄嬌鐢ㄧ殑鏄粈涔堟暟鎹簱緋葷粺(渚嬪:MS-SQLServer銆丱rcale銆両BM-DB2 絳夌瓑)
銆銆int DataProvider
銆銆{
銆銆get;
銆銆}
銆銆// 璇ユ柟娉曟墽琛屼竴孌墊寚瀹氱殑SQL鑴氭湰錛屽茍榪斿洖鍏剁粨鏋滈泦
銆銆System.Data.DataSet Execute(String sqlText);
銆銆// 璇ユ柟娉曞皢鎸囧畾鐨勬暟鎹泦淇濆瓨鍒版暟鎹簱涓?/p>
銆銆void Update(System.Data.DataSet dataSet);
銆銆}
銆銆鐜板湪鎴戜滑鍐欎竴涓?WebService 鍏墮渶瑕佸疄鐜?IDataService 鎺ュ彛錛屽繀欏誨湪璇?WebService 涓寘鍚茍鍙戝竷璇ュ睘鎬с傝繖鏃舵垜浠鎬庝箞鍔?鍛靛懙錛屼笖鐪?/p>
銆銆public class DataService : System.Web.Services.WebSerbice, IDataService
銆銆{
銆銆...
銆銆public int DataProvider
銆銆{
銆銆[WebMethod(MessageName="GetDataProvider")]
銆銆get
銆銆{
銆銆...
銆銆}
銆銆}
銆銆[WebMethod()]
銆銆public System.Data.DataSet Execute(String sqlText)
銆銆{
銆銆...
銆銆}
銆銆}
銆銆OK錛屽ぇ瀹剁湅鍒頒簡錛屽皢涓涓柟娉曞彂甯冩垚Web鏂規(guī)硶鏄湪鍏跺嚱鏁頒綋鍓嶆寚瀹?WebMethod 灞炴э紝鑰屽睘鎬у垯鏄湪鍏秅et鎴杝et鍣ㄤ箣鍓嶆寚瀹?WebMethod 灞炴э紝濡傛灉涓嶆寚瀹氬睘鎬х殑 MessageName 灞炴у鹼紝鍒欏彂甯冪殑灞炴х殑Web鏂規(guī)硶鍚嶅皢琚疆涓篻et_XXXXX鍜宻et_XXXXX銆?/p>
銆銆鍦ㄤ嬌鐢╒S.net鐢熸垚鐨?WebService 浠g悊綾?閫氳繃娣誨姞Web寮曠敤錛孯eference.cs)涓殑鎴愬憳閮芥槸鏂規(guī)硶錛屽洜姝ら渶瑕佹墜鍔ㄤ慨鏀逛唬鐞嗙被涓殑鐩稿叧鏂規(guī)硶涓哄睘鎬э紝渚嬪涓婁緥鐨勬湰鍦頒唬鐞嗙被鐨勭浉鍏充唬鐮佺湅璧鋒潵鏄繖鏍風殑:
銆銆[System.Web.Services.Protocols.SoapDocumentMethodAttribute(... ...)]
銆銆[return: System.Xml.Serialization.XmlElementAttribute("GetDataProviderResult")]
銆銆public int GetDataProvider()
銆銆{
銆銆object[] results = this.Invoke("GetDataProvider", new object[0]);
銆銆return (int)results[0];
銆銆}
銆銆閭d箞錛屼綘鍙渶灝嗚鏂規(guī)硶鐨勪富浣撻儴鍒嗗ぇ姒傛敼鎴愯繖涓牱瀛愬嵆鍙?
銆銆public int GetDataProvider
銆銆{
銆銆[System.Web.Services.Protocols.SoapDocumentMethodAttribute(... ...)]
銆銆[return: System.Xml.Serialization.XmlElementAttribute("GetDataProviderResult")]
銆銆get
銆銆{
銆銆object[] results = this.Invoke("GetDataProvider", new object[0]);
銆銆return (int)results[0];
銆銆}
銆銆}
銆銆褰撴湁鏀寔鑰呯‘璁や簡涓涓皟鏌ワ紝鍦ㄥ紑濮嬪氨 榪涜嫻嬭瘯騫朵笖閲囩敤鏁忔嵎鍘熷垯姣旂洿鍒版渶鍚庣殑寮鍙戦樁孌墊墠嫻嬭瘯鏇存湁濂藉錛屾垜浠殏涓斾笉綆¤繖浜涳紝鎴戜滑鍏堟妸鍏充簬浣曟椂鎶婃祴璇曞紩鍏ュ埌浣犲叿浣撶殑宸ョ▼涓幓鐨勮璁烘悂緗竴杈癸紝璁╂垜浠叧娉ㄤ竴涓嬪浣曡繘琛屾祴璇曘?/p>
銆銆嫻嬭瘯鍐充笉鏄竴涓畝鍗曠殑涓滆タ錛屾湁寰堝涓嶅悓鐨勬祴璇曠被鍨嬪彲浠ュ簲鐢ㄥ湪杞歡涓娿備緷鎹祴璇曠殑澶嶆潅鎬у拰棰嗗煙 錛屽嵆浣夸笓涓氱殑鍥㈤槦鈥斺擰A鍥㈤槦鈥斺斿彲浠ヨ闆囨潵瀹屾垚鐗瑰畾鐨勪換鍔★紝浣嗘槸鏄負浜嗙壒瀹氱殑鐩畾錛屾垜浠皢浼氬叧娉ㄤ袱縐嶇被鍨嬬殑嫻嬭瘯錛屼粬浠兘鐩稿瀹規(guī)槗鐨勫紑鍙?鍗曞厓嫻嬭瘯鍜屽帇鍔涙祴璇曘?/p>
銆銆鍗曞厓嫻嬭瘯鏄寚閫氳繃棰勫厛瀹氫箟鐨勪竴浜涘垪鏁版嵁闆嗗悎鏉ラ獙璇佷竴涓湇鍔$殑鏃㈠畾鐩殑鐨勮繃紼嬶紝榪欎釜鏁版嵁闆嗗悎鏄敤鏉ユā鎷熸樉紺轟笘鐣岀殑鐢ㄦ硶浠庤岃兘澶熷強鏃剁殑鏂瑰紡鏉ユ帰嫻嬪埌緙洪櫡銆傚綋涓轟綘鐨勬湇鍔¤繘琛屽崟鍏冩祴璇曠殑鏃跺欙紝 鍦ㄦ湇鍔¤鍙戝竷涓烘鏄殑浜у搧浠ュ墠浣犲彲浠ユ妸浠栦滑鐪嬫垚瀹夊叏淇濇姢緗戯紝鍥犱負浣犺兘澶熷湪瀹為檯鏁版嵁嫻佸湪榪欎釜緋葷粺榪愯涔嬪墠浣跨敤榪欎簺棰勫厛鐨勬暟鎹泦鍚堟潵嫻嬭瘯浣犵殑鏈嶅姟鐨勯昏緫銆?/p>
銆銆鍙﹀涓涓崟鍏冩祴璇曚負浣犵殑寮鍙戝甫鏉ョ殑閭d簺濂藉鍦ㄥ綋浣犵殑緋葷粺寮濮嬬敤涓婁簡涓孌墊椂闂翠箣鍚庡氨浼氭洿鍔犵獊鍑轟簡銆傚洜涓烘紨鍖栫殑鏈嶅姟鎰忓懗鐫搴曞眰閫昏緫鐨勪慨鏀癸紝榪欎簺淇敼鍙兘浼氱牬鍧忔湇鍔℃湰鏉ヨ甯屾湜蹇欒凍鐨勪竴浜涘叿浣撶殑浣跨敤璁懼畾銆傚敖綆″姝わ紝閫氳繃鐜版湁鐨勫崟鍏冩祴璇曞浠訛紝騫朵笖淇濊瘉涓鐩翠繚鎸佸悓榪欎簺嫻嬭瘯鐨勪竴鑷達紝淇濇姢浠諱綍浣跨敤浣犳湇鍔$殑渚濊禆閮ㄥ垎鍏嶅彈鍦ㄤ互鍚庡彲鑳芥柊鐨勪慨璁腑甯︽潵鐨勪換浣曠牬鍧?/p>
銆銆瀹為檯鐨勫崟鍏冩祴璇曠殑榪涜寰堝ぇ紼嬪害涓婁緷璧栦簬緙栫▼璇█鎴栬呬綘浣跨敤鏉ラ儴緗蹭綘鐨勬湇鍔$殑騫沖彴錛屼絾鏄洿鍔犲彲鑳界殑鎯呭喌鏄負浜嗚兘鏇村鏄撶殑榪涜嫻嬭瘯鐨勬姝ヤ負钀ワ紝紜鍜岄儴緗詫紝灝嗕細閫氳繃涓涓壒瀹氱殑妗嗘灦鏉ュ畬鎴愯繖浜?鈥斺旀崲涓鍙ヨ瘽璇村氨鏄紝 鑷姩鍖栫殑榪涜鎵鏈夌殑鑳藉浣垮緱鍗曞厓嫻嬭瘯鎴愪負蹇呴渶鐨勮繃紼嬨?/p>
銆銆鍦ㄦ墍鏈夌殑鏈嫻佽鐨勫崟鍏冩祴璇曠殑妗嗘灦涓湁:Java鐨凧Unit 鍜?NET鐨刄nit Testing Framework 錛孶nit Testing Framework 鏋勬垚浜哣isual Studio鐨勪竴閮ㄥ垎銆傚浜庢繁搴︾殑瑙i噴浠栦滑鐨勬鏋舵垨鑰呭叾浠栫殑涓浜涘崟鍏冩祴璇曞浠跺皢涓嶄細鍦ㄦ湰鏂囦腑璁ㄨ錛屼絾鏄垪琛?.1灞曠ず鐨勫氨鏄竴涓狫ava鏀寔鐨勬湇鍔$殑Junit嫻嬭瘯鏄庢牱鐨勩?/p>
銆銆鍒楄〃1.1 瀵笿ava綾繪瀯鎴愮殑Web Services鐨凧unit鍗曞厓嫻嬭瘯
import junit.framework.*;
public class PayrollTest extends TestCase {
聽聽聽 private Payroll basePayroll;
聽聽聽 private Employee accountingE;
聽聽聽 public PayrollTest(String type) {
聽聽聽聽聽聽聽 super(type);
聽聽聽 }
聽聽 protected void setUp() {
聽// Initialize Payroll object
聽聽聽聽聽聽聽 basePayroll = new Payroll();
聽 // Generate employee, assign to payroll
聽聽聽聽聽聽聽 accountingE = new Employee("John Smith", 5743.00);
聽聽聽聽聽聽聽 basePayroll.addEmployee(accountingE);
聽聽聽 }
聽聽聽 protected void tearDown() {
聽// Reinitialize Payroll object
聽聽聽聽聽聽聽 basePayroll = null;
聽聽聽 }
聽聽聽 public void testAddEmployee() {
聽聽聽聽聽聽聽 Employee contractE = new Employee("Auditor", 2843.00);
聽聽聽聽聽聽聽 basePayroll.addEmployee(contractE);
聽聽聽聽聽聽聽聽 double totalPayroll = accountingE.getSalary() + contractE.getSalary();
聽聽聽聽聽聽聽 assertEquals(totalPayroll, basePayroll.getTotal(), 0.0);
聽聽聽聽聽聽聽聽 assertEquals(2, basePayroll.countEmployees());
聽聽聽 }
聽聽聽 public void testEmptyPayroll() {
聽聽聽聽聽聽聽 basePayroll.emptyPayroll();聽聽聽
聽聽聽聽聽聽聽 assertTrue(basePayroll.emptyPayroll());
聽聽聽 }
聽聽聽聽聽聽 public void testEliminateEmployee() throws EmployeeNotFound {
聽聽聽聽聽聽聽 basePayroll.eliminateEmployee(accountingE);
聽聽聽聽聽聽聽 assertEquals(0, basePayroll.countEmployees());
聽聽聽聽聽聽聽 assertEquals(0.0, basePayroll.getTotal(), 0.0);
聽聽聽 }
聽聽聽聽 public static Test suite() {
聽聽聽聽聽聽聽 TestSuite suite = new TestSuite(PayrollTest.class);
聽return suite;
聽聽聽聽 }
聽聽聽 public static void main(String args[]) {
聽聽聽聽聽聽聽 junit.textui.TestRunner.run(suite());
聽聽聽 }
聽}
銆銆榪欎釜嫻嬭瘯鍒楄〃琛ㄧず鐨勬槸瀵逛袱涓皢浼氱敤鏉ユ瀯鎴愬喅瀹氳柂姘村唽鐨勬暟鎹殑Web service榪涜嫻嬭瘯鐨勪竴涓緥瀛愩傝娉ㄦ剰Payroll鍜孍mployee綾葷殑瀹炰緥鏄浣曞垱寤虹殑錛屽畠浠兘浼氳鍚庨潰鐨則estXXX()鍛藉悕鐨勬柟娉曟潵鎿嶇旱銆備竴鏃﹁榪欎簺鏂規(guī)硶鎿嶄綔錛岃娉ㄦ剰鐪嬪埌鏄氳繃涓嶅悓鐨勪互assertXXX()鍛藉悕鐨凧unit鏂規(guī)硶鏉ヨ皟鐢ㄧ殑銆?/p>
銆銆鐢ㄦ潵璋冪敤棰勫厛瀹氫箟鐨勬暟鎹潡鐨勪笉鍚岀殑鏂█鏂規(guī)硶鐨勫弬鏁板湪搴曞眰鐨勬湇鍔$被涔嬮棿浼犻掞紝鍦ㄨ繖浜涚被涓婅繘琛屽悓鎵鏈熸湜鐨勫艱繘琛屾瘮瀵癸紝榪欎釜姣斿鏄湪褰撴祴璇曟鏋剁粰鍑轟竴涓敊璇垨鑰呰繑鍥炰竴涓紜殑鎵ц鐨勬椂鍊欒繘琛屻?/p>
銆銆鍗曞厓嫻嬭瘯鏄敤鏉ラ獙璇佷竴涓湇鍔¢昏緫鐨勫畬鏁存э紝閲嶇偣嫻嬭瘯鏄敤鏉ュ喅瀹氫竴涓湇鍔″湪涓涓壒瀹氱殑鐢ㄦ埛闄勮澆鐨勬椂鍊欏簲璇ュ叿鏈変粈涔堟牱鐨勮涓猴紝瀹冩槸涓涓彲浠ュ府鍔╁喅瀹氬涓涓湇鍔$殑鍩虹鏋舵瀯鐨勯傚綋鏀寔鐨勮繃紼嬶紝榪欎簺鍩虹鏋舵瀯鍖呮嫭濡傜‖浠惰兘鍔涳紝搴旂敤紼嬪簭閰嶇疆鍜屽彲浠ヨ幏寰楃殑緗戠粶甯﹀錛屼互鍙婂叾浠栫殑涓滆タ銆?/p>
銆銆涓涓彲浠ュ府鍔╀綘榪涜鍘嬪姏嫻嬭瘯鐨勫伐鍏鋒槸JMeter 錛屽畠鏄竴涓敱Apache緇勭粐寮鍙戠殑涓涓紑婧愰」鐩傚敖綆meter鏄熀浜巎ava鐨勶紝瀹冨彲浠ヤ駭鐢烻OAP鍜孹MLRPC綾誨瀷鐨勮姹傦紝鏈夋晥鍦板彂鎸ヤ竴涓猈eb services瀹㈡埛绔殑鍔熻兘錛屾潵鍘嬪姏嫻嬭瘯浠諱綍鏈嶅姟绔殑閮ㄧ講銆傚浘1.1灞曠ず鐨勬槸涓涓嬌鐢ㄨ繖涓伐鍏瘋繘琛岀殑鍦⊿OAP/XML-RPC鏈嶅姟涓婄殑闄勮澆嫻嬭瘯銆?/p>
銆銆鍥?.1:Jmeter瀵筗eb services鐨勫帇鍔涙祴璇?/p>
銆銆鍦↗meter涓垱寤轟笂榪扮殑鍘嬪姏嫻嬭瘯鐨勮繃紼嬪涓?
銆銆1. 鍦↗meter鐨勪富鐣岄潰錛屽皢浣犵殑榧犳爣縐誨姩鍒癟est Plan鎸夐挳涓婂茍鐐瑰嚮鍙抽敭銆備粠寮瑰嚭鐨勮彍鍗曚腑閫夋嫨:Add 鈥?Thread Group銆俆hread Group鎸夐挳灝嗕細琚垱寤恒?/p>
銆銆2.瀹氫綅鍦═hread Group鎸夐挳涓婂乏杈圭殑紿椾綋涓皢浼氭樉紺轟笉鍚岀殑鍙傛暟銆傚弬鏁癗umber of threads 琛ㄧず鐨勬槸浣犵殑鍘嬪姏嫻嬭瘯灝嗕細瀵逛綘鐨勬湇鍔′豢鏁堢殑璇鋒眰鐨勬暟銆?/p>
銆銆3.涓嬩竴姝ワ紝褰撻紶鏍囧湪Thread Group鎸夐挳涓婄偣鍑誨彸閿紝浠庡脊鍑虹殑鑿滃崟涓夋嫨:Add 鈥?Sampler 鈥?SOAP/XML-RPC Request銆係OAP/XML-RPC璇鋒眰鎸夐挳灝嗕細琚垱寤恒?/p>
銆銆4.榧犳爣瀹氫綅鍦⊿OAP/XML-RPC璇鋒眰鎸夐挳錛屽乏杈圭殑紿椾綋涓皢浼氭樉紺轟笉鍚岀殑鍙傛暟銆傛湁鍏充簬浣犵殑Web service鐨刄RL鐨勪粙緇嶏紝浠ュ強浣犲笇鏈涘彂鍑虹殑姣忎竴涓姹傜殑杞借嵎銆?/p>
銆銆5.褰撻紶鏍囧湪SOAP/XML-RPC璇鋒眰鎸夐挳涓婃椂錛岀偣鍑誨彸閿紝浠庡脊鍑虹殑鑿滃崟涓夋嫨:Add 鈥?Listener 鈥?Monitor Results錛屽拰Add 鈥?Listener 鈥?View Results銆備袱涓樉紺哄帇鍔涙祴璇曠粨鏋滅殑鎸夐挳灝嗕細鐢熸垚銆傛敞鎰?濡傛灉闇瑕侊紝浣犲彲浠ユ坊鍔犳洿澶氱殑鐩戝惉鑰咃紝榪欐槸Jmeter榪涜鍘嬪姏嫻嬭瘯緇撴灉鐨勮〃紺烘湳璇?/p>
銆銆6.淇濆瓨浣犵殑嫻嬭瘯錛屽茍浠庢渶楂樺眰鐨勮彍鍗曚腑閫夋嫨Run-Start閫夐」寮濮嬩綘鐨勫帇鍔涙祴璇曘?/p>
銆銆7.鏈鍚庣Щ鍔ㄤ綘鐨勯紶鏍囧埌姣忎竴涓笉鍚岀殑Listener鎸夐挳涓婏紝 瑙傚療浣犲湪瀵逛綘鐨刉eb service榪涜鍘嬪姏嫻嬭瘯鏃惰幏寰楃殑鎬ц兘鍙傛暟銆?/p>
銆銆鍜屽崟鍏冩祴璇曟鏋剁浉綾諱技鐨勬湰璐紝瑙i噴Jmeter鐨勮澶氬鏉傗斺旀垨鑰呬換浣曞叾浠栧帇鍔涙祴璇曞伐鍏風殑榪欐柟闈㈢殑闂鈥斺斿皢浼氳秴鍑烘湰鏂囩殑鑼冨洿錛屼絾鏄疛meter鎻愪緵浜嗗叏闈㈠彲鐞嗚В鐨勫茍鍙嚜鐢辮幏鍙栫殑鏂囨。鏉ヨВ閲婁笉鍚岀殑鍘嬪姏嫻嬭瘯鍔熻兘銆?/p>
銆銆鎴戜滑鎬葷粨鎴戜滑瀵瑰湪Web services鐜涓嬪崟鍏冩祴璇曞拰鍘嬪姏嫻嬭瘯鐨勮璇嗭紝榪欐槸鍦ㄥ緢澶氱殑嫻嬭瘯榪囩▼涓綘鍙互鍦ㄤ綘鐨勯潰鍚戞湇鍔¤璁′腑鐨勪袱涓柟娉曪紝浠庤岃兘澶熺‘淇濅綘鐨勯儴緗茬殑瀹屾暣鎬у拰鍙祴閲忔?/p>
褰撶劧錛岄潰鍚戞湇鍔¤繕?gòu)茽缂哄緢澶氶潰鍚戝璞″凡鏈夌殑姒傚康鍜岀悊璁恒備笅琛ㄦ彁渚涗簡涓鑸殑闈㈠悜瀵硅薄鍘熷垯涓庡凡緇忚璁鴻繃鐨勯潰鍚戞湇鍔$殑鍘熷垯鐨勬瘮杈冦?/span>聽
聽
闈㈠悜鏈嶅姟鍘熷垯
|
闈㈠悜瀵硅薄鍘熷垯
|
鏈嶅姟鐨勯噸鐢?/span>
|
闈㈠悜瀵硅薄澶у鏁版儏鍐墊槸鍒涘緩鍙噸鐢ㄧ殑綾伙紝妯″潡鍖栧垎瑙g殑闈㈠悜瀵硅薄鍘熷垯鏄簲鐢ㄧ▼搴忕殑璁捐鏂瑰紡銆?/span>
鐩稿叧鐨勫師鍒欙紝濡傛娊璞★紝灝佽錛屾帴鍙e拰瀹炵幇閫昏緫鐨勫垎紱匯傛湇鍔¢噸鐢ㄦ槸榪欎釜鐩爣鐨勫歡緇?/span>
|
鏈嶅姟鐨勫綰?/span>
|
鏈嶅姟濂戠害鐨勯渶姹傚拰鏋勫緩闈㈠悜瀵硅薄搴旂敤涓殑鎺ュ彛鐩哥被浼箋傛帴鍙f彁渚涗簡涓縐嶆彁鐐肩被鎻忚堪鐨勬柟娉曪紝榪欏拰
WSDL
鐨勫畾涔夐潪甯哥浉浼箋備笌
SOA
榧撳姳鐨勨?/span>
WSDL
浼樺厛鈥濇柟娉曚竴鏍鳳紝鈥滄帴鍙d紭鍏堚濇柟娉曚篃琚涓烘槸闈㈠悜瀵硅薄鐨勬渶浣?jīng)_疄璺點?/span>
|
鏈嶅姟鐨勬澗鑰﹀悎
|
灝界鎺ュ彛鐨勫垱寤轟竴瀹氱▼搴︿笂灝嗙被浠庣被鐨勪嬌鐢ㄨ呰В鑰︼紝浣嗚﹀悎鏄潰鍚戞湇鍔′粠闈㈠悜瀵硅薄緇ф壙鍒扮殑涓昏鐗規(guī)с?/span>
鐩稿闈㈠悜鏈嶅姟璁捐鏂規(guī)硶錛岀戶鎵垮拰鍏朵粬闈㈠悜瀵硅薄鍘熷垯閫犳垚閫昏緫澶勭悊鍗曞厓涔嬮棿鐨勭揣鑰﹀悎銆?/span>
|
鏈嶅姟鐨勬娊璞?/span>
|
闈㈠悜瀵硅薄鐨勬娊璞″師鍒欒姹備竴涓被鎻愪緵涓涓帴鍙g粰澶栭儴涓栫晫錛屽茍閫氳繃榪欎釜鎺ュ彛鏉ヨ闂被銆傚皝瑁呴氳繃寤虹珛淇℃伅闅愯棌姒傚康鏉ユ敮鎸佽繖縐嶆柟寮忥紝閫氳繃鎺ュ彛鏆撮湶鐨勭被鍐呴儴鐨勪換浣曢昏緫閮戒笉鑳借澶栭儴鎵璁塊棶銆?/span>
鏈嶅姟鎶借薄鍙互鍩烘湰杈懼埌瀵硅薄鎶借薄鍜屽皝瑁呯殑紼嬪害銆傚畠鐨勭洰鏍囨槸闅愯棌鏈嶅姟鐨勫唴閮ㄧ粏鑺傦紝鍥犳鍙湁鏈嶅姟濂戠害鏄彲浠ュ緱鍒扮殑錛屾湇鍔$殑璇鋒眰鑰呬篃鍙鍏沖績鏈嶅姟濂戠害銆?/span>
|
鏈嶅姟鐨勭粍鍚?/span>
|
闈㈠悜瀵硅薄鏀寔鍏寵仈鐨勬蹇碉紝濡傝仛鍚堝拰緇勫悎銆傚湪鏉捐﹀悎鐨勪笂涓嬫枃涓紝榪欎簺姒傚康涔熻闈㈠悜鏈嶅姟鐨勬柟娉曟敮鎸併?/span>
渚嬪錛屽彲鐢ㄤ笌緇勫悎鎴愬璞″眰嬈$粨鏋勭浉鍚岀殑鏂規(guī)硶鏉ュ皢鍙粍鍚堢殑鏈嶅姟瑁呴厤鎴愭湇鍔″眰嬈$粨鏋勩?/span>
|
鏈嶅姟鐨勮嚜娌匯
|
鑷不鐨勭壒鎬у湪闈㈠悜鏈嶅姟璁捐涓瘮鍦ㄩ潰鍚戝璞℃柟娉曚腑鏈夋洿閲嶈鐨勪綔鐢ㄣ傚湪闈㈠悜鏈嶅姟涓紝閫氳繃鍒╃敤鏈嶅姟闂寸殑鏉捐﹀悎鍏崇郴錛屽彲浠ュ疄鐜伴昏緫澶勭悊鍗曞厓涔嬮棿鐨勭嫭绔嬫с?/span>
鍦ㄩ潰鍚戝璞¤璁′腑錛岃法瀵硅薄寮曠敤鍜岀戶鎵跨浉鍏崇殑渚濊禆鏀寔杈冧綆紼嬪害鐨勫璞$駭鑷不銆?/span>
|
鏈嶅姟鐨勬棤鐘舵?/span>
|
鐢辯被緇撳悎鍜屾暟鎹瀯鎴愮殑瀵硅薄澶╃敓灝辨槸鏈夌姸鎬佺殑銆傛湇鍔′腑鎻愬$殑鏃犵姸鎬佽秼鍚戜簬鑳岀鍏稿瀷鐨勯潰鍚戝璞¤璁°?/span>
灝界鍙互鍒涘緩鏈夌姸鎬佹湇鍔″拰鏃犵姸鎬佸璞★紝浣嗘棤鐘舵佸師鍒欐槸闈㈠悜鏈嶅姟涓氬父鏇村姞寮鴻皟鐨勩?/span>
|
鏈嶅姟鐨勫彂鐜?/span>
|
璁捐涓鑷寸殑鍜岃嚜鎻忚堪鐨勭被鎺ュ彛鏄彟涓涓潰鍚戝璞℃渶浣?jīng)_疄璺碉紝瀹冭兘鏀硅繘璇嗗埆鍜屽尯鍒昏緫澶勭悊鍗曞厓鏂規(guī)硶銆傝繖浜涚壒鎬т篃鍏佽綾昏鏇村鏄撳湴鍙戠幇銆?span lang="EN-US">
鍙彂鐜版ф槸闈㈠悜鏈嶅姟鑼冧緥涓己璋冪殑鍙︿竴涓師鍒欍傚畠榧撳姳鏈嶅姟濂戠害鐨勪氦浜掓敮鎸佸湪璁捐鍜岃繍琛屾椂鐨勫彲鍙戠幇鎬с?/font>
|
聽
鍙互鐪嬪埌錛岄潰鍚戝璞″拰闈㈠悜鏈嶅姟騫墮潪绔炰簤鑰呫傞潰鍚戞湇鍔℃樉鐒跺湪涓嶅皯鏂歸潰鏄互闈㈠悜瀵硅薄涓哄熀紜錛屽綋鍓嶅吀鍨嬬殑闈㈠悜鏈嶅姟鐨勮В鍐蟲柟妗堝皢鐢辨湇鍔★紙閬靛驚闈㈠悜鏈嶅姟鐨勫師鍒欙級鍜岄潰鍚戝璞$殑緇勪歡鏋勬垚銆傚湪鍚堢悊鐨勮璁′腑錛屾瘡涓師鍒欓兘鑳借閫傚綋鍦板鐞嗗茍鑳界浉浜掕ˉ鍏呫?/font>
1聽 鍙粠浼佷笟澶栭儴璁塊棶 B2B鍗忚
2聽 闅忔椂鍙敤
3聽 綺楃矑搴︽湇鍔℃帴鍙?/p>
4 鍒嗙駭錛岀矖綺掑害鐨勬湇鍔℃瘮緇嗙矑搴︾殑鏈嶅姟閲嶇敤鎬у樊錛屾墍浠ヨ閲囩敤涓嶅悓鐨勭矑搴︾瓑綰ф潵鍒涘緩鏈嶅姟銆?/p>
聽鍦ㄦ湇鍔″垎綰ф柟闈紝欏繪敞鎰忔湇鍔″眰鐨勫叕寮鏈嶅姟閫氬父鐢卞悗鍙扮郴緇燂紙BES's錛夋垨SOA騫沖彴涓幇鏈夌殑鏈湴鏈嶅姟緇勬垚銆傚洜姝ゅ厑璁稿湪鏈嶅姟灞傚垱寤虹鏈夋湇鍔℃槸闈炲父閲嶈鐨勩?/p>
5聽 鏉炬暎鑰﹀悎
聽鏈嶅姟鎺ュ彛浣滀負涓庢湇鍔″疄鐜板垎紱葷殑瀹炰綋鑰屽瓨鍦ㄣ傚ぇ澶氭暟鏉炬暎鑰﹀悎鏂規(guī)硶閮戒緷闈犲熀浜庢湇鍔℃帴鍙g殑娑堟伅銆傚熀浜庢秷鎭殑鎺ュ彛鑳藉鍏煎澶氱浼犺緭鏂瑰紡錛堝HTTP銆丣MS銆乀CP/IP銆丮OM絳夛級銆傚熀浜庢秷鎭殑鎺ュ彛鍙互閲囩敤鍚屾鍜屽紓姝ュ崗璁疄鐜般?/p>
聽褰撳鎴瘋皟鐢ㄦ秷鎭被Web鏈嶅姟鏃訛紝瀹㈡埛閫氬父浼氬彂閫佺殑鏄竴涓畬鏁寸殑鏂囨。錛堝閲囪喘璁㈠崟錛夛紝鑰岄潪涓緇勭鏁g殑鍙傛暟銆?/p>
6聽 鍙噸鐢ㄧ殑鏈嶅姟鍙婃湇鍔℃帴鍙h璁$鐞?/p>
7聽 鏍囧噯鍖栫殑鎺ュ彛
聽Web鏈嶅姟浣垮簲鐢ㄥ姛鑳藉緱浠ラ氳繃鏍囧噯鍖栨帴鍙o紙WSDL錛夋彁渚涳紝騫跺彲鍩轟簬鏍囧噯鍖栦紶杈撴柟寮忥紙HTTP鍜孞MS錛夈侀噰鐢ㄦ爣鍑嗗寲鍗忚錛圫OAP錛夎繘琛岃皟鐢ㄣ?/p>
8聽 鏀寔鍚勭娑堟伅妯″紡
聽鏃犵姸鎬佺殑娑堟伅銆佹湁鐘舵佺殑娑堟伅銆佺瓑騫傛秷鎭?/p>
9聽 綺劇‘瀹氫箟鐨勬湇鍔℃帴鍙?/p>
聽鎬諱箣錛孲OA鍙互鐪嬩綔鏄疊/S妯″瀷銆乆ML/Web Service鎶鏈箣鍚庣殑鑷劧寤朵幾銆係OA灝嗚兘澶熷府鍔╂垜浠珯鍦ㄤ竴涓柊鐨勯珮搴︾悊瑙d紒涓氱駭鏋舵瀯涓殑鍚勭緇勪歡鐨勫紑鍙戙侀儴緗插艦寮忥紝
瀹冨皢甯姪浼佷笟緋葷粺鏋舵瀯鑰呬互鏇磋繀閫熴佹洿鍙潬銆佹洿鍏烽噸鐢ㄦф灦鏋勬暣涓笟鍔$郴緇熴傝緝涔嬩互寰錛屼互SOA鏋舵瀯鐨勭郴緇熻兘澶熸洿鍔犱粠瀹瑰湴闈㈠涓氬姟鐨勬ュ墽鍙樺寲銆?br />