Your SlideShare is downloading. ×
0
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Framework for Evaluating Distributed Smalltalk Interface
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Framework for Evaluating Distributed Smalltalk Interface

415

Published on

Framework for Evaluating Distributed Smalltalk Interface

Framework for Evaluating Distributed Smalltalk Interface

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
415
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×