410 likes | 421 Views
Framework for Evaluating Distributed Smalltalk Interface. Jan Lukeš xlukesj @fel.cvut.cz Czech Technical University. Contents. Framework Intention Distributed Systems User Interface Measurements Results Visualization Implementation Summary Future Work. Framework Intention.
E N D
Framework for Evaluating Distributed Smalltalk Interface Jan Lukeš xlukesj@fel.cvut.cz Czech Technical University
Contents • Framework Intention • Distributed Systems • User Interface • Measurements • Results Visualization • Implementation • Summary • Future Work
Framework Intention • control measurement with GUI • start and terminate VM and ORB on other machines • results collected and saved on one place with good structure • visualization of results in charts • show results during measurements • get limits and characteristics from results
Distributed Systems • Distributed Smalltalk (DST) • CORBA in Smalltalk • generating IDL from Smalltalk code • different programming languages • Implicit Invocation Interface (I3) • alternative marshaler for DST • no IDL definitions • only Smalltalk-Smalltalk
Distributed Systems II. • OpenTalk (OT) • framework for distributed system • implementation of St-St protocol • GemStone (GS) • object database - object security, users, access rights, transactions, replication • large number of objects and large objects, optimized queries
Distributed Smalltalk (DST) • register object for lifecycleprotection against garbage collection • register object in naming serviceusing name instead of direct object reference • look up the object in naming servicereceived proxy object • send messages to proxy object
Implicit Invocation Interface (I3) • alternative marshaler fo DST • no IDL definitions necessary • passing objects by value / by reference • setting pass mode per class, instance or instance variable • classes passed just by name • no methods are passed, just data
OpenTalk (OT) • general framework for distributed system • on top of TCP and UDP • several protocols including St-St protocols • unicast, multicast and broadcast protocol • own implementation of services - naming, event, multiplexing • broker with services provides interface between Smalltalk and network
GemStone (GS) • large shared object repository • multiuser environment with sessions • concurrent environment with locks • replication, forwarding, maintaining integrity • class versions, history, migration of instances • transactions, restoring • security - users with access rights, ownership, profiles, groups • security, authorization on object level • object database, optimized queries, storing more and larger objects
How It Works • add names to list of free nodes • start VM+ORB on selected machine • node registred in naming service and control node appears started nodes • choose test to start on selected nodes • watch results in charts
How It Works 1 4 3 2
Measurements I. • Services: • data transfer , no services • life cycleregistration and unregistration • naming serviceregistration, unregistration and lookup
Measurements II. • Data transfer • simple data types • Array/Sequence/String - different sizes • complex structures Char Char Char Char | Char | Char Char | Char | Char Char Char Char
Measurements III. • Parallelism • no parallelism1 client, 1 server • par. on servermany clients , 1 server • par. on clientmany servers, 1 client
Measurements IV. • Direction of data transfer • from client to server as a message argument • from server to client as a message result • both argument and result • oneway messages msg: arg msg result msg: arg result msg: arg
Measurements V. • Number of ORBs • no ORB just standard message passing • one ORB simulation within one ORB • two ORB real communication between ORBs
Measurements VI. • Locality • local several images on one machine • remote each one on different machine
Measurements VII. • Interface • DST - Distributed Smalltalk • I3 - Implicit Invocation Interface • (OpenTalk) • (GemStone) • (other programming languages)
Saving Results • hierarchy of directories • data - text, boss • images - gif, postscript • reports - tex, dvi, postscript, pdf, html+gif • archives - tar+gzip • links to last version in case of repeated measurement
Results - Files I. [jan@jan test_NS]$ echo $PWD /home/jan/vw7nc/results/Sun_Ray/Smalltalk/local/with_two_ORB/test_NS [jan@jan test_NS]$ ls -sh total 312K 899 data_xy_speed(number_of_objects)_1.bos 521 data_xy_speed(number_of_objects)_1.txt 901 data_xy_speed(number_of_objects)_2.bos 524 data_xy_speed(number_of_objects)_2.txt 890 data_xy_time(number_of_objects)_1.bos 480 data_xy_time(number_of_objects)_1.txt 892 data_xy_time(number_of_objects)_2.bos 483 data_xy_time(number_of_objects)_2.txt
Results - Files II. 14K chart_xy_speed(number_of_objects)_1.eps 16K chart_xy_speed(number_of_objects)_1.gif 13K chart_xy_speed(number_of_objects)_2.eps 16K chart_xy_speed(number_of_objects)_2.gif 13K chart_xy_time(number_of_objects)_1.eps 16K chart_xy_time(number_of_objects)_1.gif 13K chart_xy_time(number_of_objects)_2.eps 16K chart_xy_time(number_of_objects)_2.gif 19 names_of_files.bos -> names_of_files1.bos 1.7K names_of_files1.bos
Results - Files III. 11 report.dvi -> report1.dvi 12 report.html -> report1.htm l10 report.ps -> report1.ps 11 report.tex -> report1.tex 11 report.txt -> report1.txt 118 report1.aux 5.9K report1.dvi 3.8K report1.html 3.5K report1.log 96K report1.ps 4.7K report1.tex 2.2K report1.txt
Implementation I. • Developing environment • Cincom Smalltalk VisualWorks 5i.4 ( - 7.1) • SunRay • Sun Blade 1000, 2 x UltraSparcIII 750MHz, 1GB RAM, OS Solaris 8, Ethernet 100Mb/s • Solaris • SparcStation 4, 64MB RAM, Sun OS 5.7, Ethernet 10Mb/s
Implementation II. • Java Laboratory • Sun Ultra 5, UltraSparcIIi 400MHz, 128MB RAM, OS Solaris 8, Ethernet 100Mb/s • Standalone • PC AMD K6-2 450MHz, 256MB RAM, OS Red Hat Linux 8.0, standalone
Results - Summary [jan@jan results]$ du -sh * 159M AMD_450 148M Java 146M Solaris 154M Sun_Ray
Summary • automated framework with GUI • complex tests on group of computers • visualization of results immediately • limits, characteristics of particular interface
Future Work • include OpenTalk and GemStone tests • more testing of complex structures • other programming languagesand several ORB vendors • optimizations of distributed interface • transfer of behaviour (code in methods)
Questions Jan Lukeš xlukesj@fel.cvut.cz