[Testgrid] [Client-Server communication protocol]

Kuznetsov Alexey jwarrior at ngs.ru
Sun Jan 22 16:21:40 NOVT 2006


Skipped content of type multipart/alternative-------------- next part --------------

				нОХЯЮМХЕ ТНПЛЮРНБ ГЮОПНЯНБ Б ЯХЯРЕЛЕ, НЯМНБЮММНИ МЮ J2EE.
				
	хЯРНПХЪ ХГЛЕМЕМХИ:
		22 ЪМБ. 2006Ц. - ВЕПМНБХЙ. [Kuznetsov Alexey.]
		

	=========================================== Auth ГЮОПНЯ. ===========================================

		дЮММШИ ГЮОПНЯ НРОПЮБКЪЕРЯЪ ЙКХЕМРНЛ ЯЕПБЕПС Я ОНЛНЫЭЧ HTTP-ЛЕРНДЮ POST. рХО 
		ЯНДЕПФХЛНЦН - "text/auth-xml". х ОПЕДЯРЮБКЪЕР ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
	
			<?xml version="1.0" encoding="UTF-8"?>
			<client>
				<ver>SupportedProtocolVersion</ver>
				<user_id>UID</user_id>
				<password>*****</password>
				<system>
					.... [Client's system parameters here] ....
				</system>
			</client>
		
			user_id 		- хДЕМРХТХЙЮРНП ОНКЭГНБЮРЕКЪ ЯХЯРЕЛШ. аНКЭЬНЕ ВХЯКН, ОНКСВЕММНЕ НР 
							  ЯЕПБЕПЮ ОНЯКЕ ГЮОНКМЕМХЪ ТНПЛШ ПЕЦХЯРПЮЖХХ СВЮЯМХЙЮ.
			password		- оЮПНКЭ ОНКЭГНБЮРЕКЪ ЯХЯРЕЛШ.
			system			- дЮММШИ ПЮГДЕК НОХЯШБЮЕР ОЮПЮЛЕРПШ ЯХЯРЕЛШ ЙКХЕМРЮ. дЕРЮКЭМНЕ НОХЯЮМХЕ
							  АСДЕР ДЮМН ОНГФЕ.
			ver				- мНЛЕП БЕПЯХХ ОПНРНЙНКЮ.					
							  
		нРБЕР ЯЕПБЕПЮ НОХЯЮМ Б ПЮГДЕКЕ "Auth НРБЕР".
	
	====================================================================================================
		
	============================================= Auth НРБЕР. ==========================================

		дЮММШИ НРБЕР НРОПЮБКЪЕРЯЪ ЯЕПБЕПНЛ ЙКХЕМРС Б НРБЕР МЮ Auth ГЮОПНЯ. рХО ЯНДЕПФХЛНЦН - 
		"text/auth-xml". х ОПЕДЯРЮБКЪЕР ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
	
			<?xml version="1.0" encoding="UTF-8"?>
			<server>
				<state>{Busy/Accepted/Refused/NotSubmitted}</state>
				<id>Number</id>
				<timeout>Time in millis</timeout>
				<handler>HandlerURL</handler>
			</client>
		
		гМЮВЕМХЪ ОЮПЮЛЕРПЮ state:
			
			"Busy"					- ЯЕПБЕП ОЕПЕЦПСФЕМ.
			"Accepted"     			- ЮБРНПХГЮЖХЪ СДЮКЮЯЭ. б ЩРНЛ ЯКСВЮЕ ОЮПЮЛЕРП id ДНКФЕМ ХЛЕРЭ
									  МЕМСКЕБНЕ ГМЮВЕМХЕ Х ЪБКЪРЭЯЪ ЙКЧВНЛ РЮАКХЖШ ад, Б ЙНРНПНИ 
									  ЯНУПЮМЕМЮ ХМТНПЛЮЖХЪ Н ЙНМТХЦСПЮЖХХ ЯХЯРЕЛШ ЙКХЕМРЮ.
			"Refused"   			- НРЙЮГЮМН Б ДНЯРСОЕ. оЮПЮЛЕРП id днкфем ХЛЕРЭ МСКЕБНЕ ГМЮВЕМХЕ.
			"NotSubmitted" 			- ЮДЛХМХЯРПЮРНП ЯХЯРЕЛШ МЕ ОНДРБЕПДХК ОПЮБЮ ОНКЭГНБЮРЕКЪ.
			
		оЮПЮЛЕРП id - ДНКФЕМ АШРЭ МЮГМЮВЕМ ЙКХЕМРС Б ЯКСВЮЕ СЯОЕЬМН ОПНИДЕММНИ ОПНЖЕДСПШ ЮБРНПХГЮЖХХ.
		дНКФЕМ ОПЕДЯРЮБКЪРЭ ЯНАНИ ЙЮЙ ЛХМХЛСЛ 64-АХРМНЕ ВХЯКН, ОНКСВЕММНЕ ЙПХОРНЦПЮТХВЕЯЙХ ЯРНИЙХЛ 
		НАПЮГНЛ Х ДНКФЕМ ГЮЛЕМЪРЭЯЪ ОПХ ОНБРНПМНИ ЮБРНПХГЮЖХХ.		
			
		оЮПЮЛЕРП timeout НГМЮВЮЕР БПЕЛЪ Б ЛХКХЯЕЙСМДЮУ, Б РЕВЕМХЕ ЙНРНПНЦН ЙКХЕМР ДНКФЕМ ЯДЕКЮРЭ 
		ЙЮЙНИ-КХАН ЙНППЕЙРМШИ ГЮОПНЯ МЮ ЯЕПБЕП.		
		
		оЮПЮЛЕРП handler НГМЮВЮЕР URL ЯЕПБКЕРЮ-НАПЮАНРВХЙЮ, ЦНРНБНЦН НАПЮАЮРШБЮРЭ ГЮОПНЯШ ЙКХЕМРЮ. нМ 
		ЛНФЕР ХГЛЕМЪРЭЯЪ Б ГЮБХЯХЛНЯРХ НР БЕПЯХХ ОПНРНЙНКЮ.
							  
	====================================================================================================
		
	====================================== Keep-alive ГЮОПНЯ. ==========================================
								
		дЮММШИ ГЮОПНЯ НРОПЮБКЪЕРЯЪ ЙКХЕМРНЛ ЯЕПБЕПС Я ОНЛНЫЭЧ HTTP-ЛЕРНДЮ POST. URL ГЮОПНЯЮ ДНКФЕМ
		ЯНБОЮДЮРЭ Я URL, ОНКСВЕММШЛ Б Auth НРБЕРЕ ЯЕПБЕПЮ. рХО ЯНДЕПФХЛНЦН - "text/keep-alive-xml".
			
		Keep-alive ГЮОПНЯ НРОПЮБКЪЕРЯЪ ПЕГХДЕМРМШЛ ЛНДСКЕЛ МЮ ЙКХЕМРЯЙНИ ЛЮЬХМЕ ОНЯКЕ БШОНКМЕМХЪ
		ОПНЖЕДСПШ ЮБРНПХГЮЖХХ МЮ ЯЕПБЕПЕ БМЕ ГЮБХЯХЛНЯРХ НР ЯБНЕЦН БМСРПЕММЕЦН ЯНЯРНЪМХЪ. яЕПБЕП, Б ЯБНЧ
		НВЕПЕДЭ, днкфем НРБЕРХРЭ МЮ keep-alive ГЮОПНЯ XML-ДНЙСЛЕМРНЛ, НОХЯЮММШЛ Б ПЮГДЕКЕ "Keep-alive 
		НРБЕР." гЮОПНЯ ОПЕДЯРЮБКЪЕР ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
				
			<?xml version="1.0" encoding="UTF-8"?>
			<client>
				<state>{Waiting/Working/Stopped}</state>
				<credit>Time in millis</credit>
				<id>Number</id>
			</client>
		
		оЮПЮЛЕРП id - МНЛЕП ЙКХЕМРЮ, МЮГМЮВЕММШИ ЯЕПБЕПНЛ ОПХ ЮБРНПХГЮЖХХ ЙКХЕМРЮ.
		
		гМЮВЕМХЪ ОЮПЮЛЕРПЮ state:
			
			"Waiting" - ЙКХЕМР НФХДЮЕР ГЮДЮМХИ НР ЯЕПБЕПЮ
			"Working" - ЙКХЕМР ХЯОНКМЪЕР ГЮДЮМХЕ Х МЕ ЛНФЕР ХЯОНКМЪРЭ ЯКЕДСЧЫЕЕ ГЮДЮМХЕ.
			"Stopped" - ЙКХЕМР НЯРЮМНБКЕМ ОНКЭГНБЮРЕКЕЛ Х БПЕЛЕММН МЕ ОПХМХЛЮЕР ГЮДЮМХЪ.
			
		оЮПЮЛЕРП credit днкфем ХЛЕРЭ МЕНРПХЖЮРЕКЭМНЕ ГМЮВЕМХЕ, ЕЯКХ ЙКХЕМР МЮУНДХРЯЪ Б ЯНЯРНЪМХХ 
		Waiting (гМЮВЕМХЕ ОЮПЮЛЕРПЮ state). нМ НГМЮВЮЕР БПЕЛЪ Б ЛХККХЯЕЙСМДЮУ, ЙНРНПНЕ ЛНФЕР АШРЭ 
		ГЮРПЮВЕМН ЙКХЕМРЯЙНИ ЛЮЬХМНИ МЮ БШОНКМЕМХЕ НВЕПЕДМНЦН ГЮДЮМХЪ.
			
	====================================================================================================
	
	======================================= Keep-alive НРБЕР. ==========================================
								
		дЮММШИ НРБЕР днкфем НРОПЮБКЪРЭЯЪ ЯЕПБЕПНЛ ЙКХЕМРС Б НРБЕР МЮ Keep-alive ГЮОПНЯ. рХО 
		ЯНДЕПФХЛНЦН - "text/keep-alive-xml". х ОПЕДЯРЮБКЪЕР ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
	
			<?xml version="1.0" encoding="UTF-8"?>
			<server>
				<state>{Busy/NoWork/WorkAvailable/ConnectionExpired}</state>
				<timeout>Time in millis</timeout>
			</server>
		
		timeout - БПЕЛЪ Б ЛХККХЯЕЙСМДЮУ, ОН ХЯРЕВЕМХЕ ЙНРНПНЦН, ЙКХЕМР ДНКФЕМ ЯБЪГЮРЭЯЪ Я ЯЕПБЕПНЛ.
			
		гМЮВЕМХЪ ОЮПЮЛЕРПЮ state:
			
			"Busy"     				- ЯЕПБЕП ОЕПЕЦПСФЕМ. 
			"NoWork"   				- ЯЕПБЕП МЕ ХЛЕЕР ГЮДЮМХИ, ДНЯРСОМШУ ДКЪ ДЮММНЦН ЙКХЕМРЮ.
			"WorkAvailable" 		- ЯЕПБЕП ЦНРНБ НРОПЮБХРЭ ГЮДЮМХЕ.
			"ConnectionExpired"		- РПЕАСЕРЯЪ ОНБРНПМЮЪ ЮБРНПХГЮЖХЪ МЮ ЯЕПБЕПЕ.
						
		б ЯКСВЮЕ, ЕЯКХ ЙКХЕМР МЕ ОПНЬЕК ОПНЖЕДСПС ЮБРНПХГЮЖХХ ЯЕПБЕП днкфем НРОПЮБХРЭ НРБЕР, 
		ЯНДЕПФЮЫХИ ConnectionExpired. рЮЙНИ НРБЕР лнфер АШРЭ НРОПЮБКЕМ ЯЕПБЕПНЛ, ЕЯКХ ЯНЕДХМЕМХЕ 
		ОНДДЕПДХБЮЕРЯЪ Keep-alive-ЯННАЫЕМХЪЛХ ДНЯРЮРНВМН ДКХРЕКЭМНЕ БПЕЛЪ, КХАН ЙКХЕМР МЕ НРОПЮБХК 
		МХ НДМНЦН ГЮОПНЯЮ Б РЕВЕМХЕ РЮИЛЮСРЮ, СЯРЮМНБКЕММНЦН ЯЕПБЕПНЛ (ОЮПЮЛЕРП timeout), КХАН АШК
		ОНКСВЕМ МЕ ЙНППЕЙРМШИ ГЮОПНЯ (МЮОПХЛЕП, МЕБЕПМНЕ ГМЮВЕМХЕ ОЮПЮЛЕРПЮ id).
									
	====================================================================================================
	
	======================================== WorkUnit ГЮОПНЯ. ==========================================
		
		дЮММШИ НРБЕР НРОПЮБКЪЕРЯЪ ЙКХЕМРНЛ Б НРБЕР МЮ Keep-alive НРБЕР ЯЕПБЕПЮ, Б ЙНРНПНЛ ОЮПЮЛЕРП 
		state ХЛЕК ГМЮВЕМХЕ WorkAvailable. б ЯКСВЮЕ, ЕЯКХ ЙКХЕМР ЦНРНБ ХЯОНКМЪРЭ МНБШЕ РЕЯРШ. нРОПЮБЙЮ
		ОПНХЯУНДХР Я ОНЛНЫЭЧ HTTP-ЛЕРНДЮ POST. рХО ЯНДЕПФХЛНЦН - "text/wu-xml". оПЕДЯРЮБКЪЕР 
		ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
	
			<?xml version="1.0" encoding="UTF-8"?>
			<client>
				<id>Number</id>
				<exec-limit>Time in millis</exec-limit>
			</client>
			
		оЮПЮЛЕРП id - МНЛЕП ЙКХЕМРЮ, МЮГМЮВЕММШИ ЯЕПБЕПНЛ ОПХ ЮБРНПХГЮЖХХ ЙКХЕМРЮ.
		
		оЮПЮЛЕРП exec-limit НГМЮВЮЕР ЛЮЙЯХЛЮКЭМНЕ БПЕЛЪ, ЙНРПНЕ ЙКХЕМРЯЙЮЪ ЯХЯРЕЛЮ ЦНРНБЮ ОНЯРПЮРХРЭ 
		МЮ ХЯОНКМЕМХЕ РЕЯРЮ. еЯКХ exec-limit ХЛЕЕР МСКЕБНЕ ГМЮВЕМХЕ, РН ЯЕПБЕП ЛНФЕР НРОПЮБХРЭ Б 
		НРБЕР ГЮДЮМХЕ Я КЧАШЛ ЛЮЙЯХЛЮКЭМШЛ БПЕЛЕЛ ХЯОНКМЕМХЪ.
		
		б НРБЕР МЮ ДЮММНЕ ЯННАЫЕМХЕ, ЯЕПБЕП ЛНФЕР НРОПЮБХРЭ МЕЯЙНКЭЙН БХДНБ НРБЕРНБ:
		
		1.	Keep-alive НРБЕР ЯН ГМЮВЕМХЕЛ ОЮПЮЛЕРПЮ state: {Busy/NoWork/ConnectionExpired}

				NoWork			
					пЮАНРЮ СФЕ ОЕПЕДЮМЮ ДПСЦНИ ЙКХЕМРЯЙНИ ЛЮЬХМЕ, КХАН МЕР ПЮАНРШ, ЙНРНПЮЪ ЛНФЕР АШРЭ
				БШОНКМЕМЮ ГЮ БПЕЛЪ, МЕ ОПЕБШЬЮЧЫЕЕ	exec-limit. б ЩРНЛ ЯКСВЮЕ ЙКХЕМРЯЙЮЪ ЛЮЬХМЮ ЛНФЕР
				ОНБРНПХРЭ ГЮОПНЯ Я АНКЭЬХЛ ГМЮВЕМХЕЛ exec-limit, КХАН НРОПЮБКЪРЭ Keep-alive ГЮОПНЯШ.
				
		2.	WorkUnit НРБЕР, НОХЯЮММШИ МХФЕ, ЯНДЕПФЮЫХИ БЯЕ МЕНАУНДХЛНЕ ДКЪ ГЮОСЯЙЮ РЕЯРХПНБЮМХЪ.
		
	====================================================================================================
		
	========================================= WorkUnit НРБЕР. ==========================================
		
		дЮММШИ НРБЕР днкфем НРОПЮБКЪРЭЯЪ ЯЕПБЕПНЛ ЙКХЕМРС Б НРБЕР МЮ WorkUnit ГЮОПНЯ. рХО 
		ЯНДЕПФХЛНЦН - "application/work-unit". х ОПЕДЯРЮБКЪЕР ЯНАНИ ДБНХВМШЕ ДЮММШЕ. оПЕДКЮЦЮЕРЯЪ
		ХЯОНКЭГНБЮРЭ ZIP-ЮПУХБ, ЯНДЕПФЮЫХИ НОХЯЮМХЕ ГЮДЮМХЪ, ПЮАНВХЕ ЛНДСКХ Х РЕЯРХПСЕЛШЕ ЙНЛОНМЕМРШ.
	
	====================================================================================================
	
	====================================== WorkUnit results ГЮОПНЯ =====================================
	
		дЮММШИ ГЮОПНЯ ОНЯШКЮЕРЯЪ ЙКХЕМРНЛ ЯЕПБЕПС ОНЯКЕ РНЦН, ЙЮЙ РЕЯР АШК БШОНКМЕМ. рХО ЯНДЕПФХЛНЦН - 
		"text/result-xml". оПЕДЯРЮБКЪЕР ЯНАНИ XML-ДНЙСЛЕМР ЯКЕДСЧЫЕЦН ТНПЛЮРЮ:
	
			<?xml version="1.0" encoding="UTF-8"?>
			<client>
				<id>Number</id>
				<time>Time in millis</time>
				<result>{TimedOut/Succeed/Failed/Crushed}</result>
				<code>Integer Code</code>
				<out>BASE64_ENCODED_STDOUT</out>
				<err>BASE64_ENCODED_STDERR</err>
			</client>
						
	====================================================================================================
	


More information about the Testgrid mailing list