GemStone/S @ Vienna University

613 views
570 views

Published on

GemStone/S @ IT Services Vienna University of Technology. Georg Gollmann, (ESUG 2004, Koethen)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
613
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

GemStone/S @ Vienna University

  1. 1. GemStone/S @ IT Services Vienna University of Technology georg.gollmann@tuwien.ac.at
  2. 2. • Application • Implementation • Remarks • Q&A
  3. 3. Application: Swiss Army Knife • All administrative tasks of a support organisation with 25.000 customers. • Not a lot of data but a lot of dependencies. • Therefore business rules must be stored with the data and must be applied consistently. • Single part time developer.
  4. 4. Some Services • Campus Software • Student Software • Systems Support • Account Management • Authentication Service • White Pages & Mail Router Feed
  5. 5. Example Platform Product Computer CostCenter Organisation AccuSpecification Person SupportAgreement PostScriptPage Incident MailAgent ScheduleEvent
  6. 6. Implementation • GemStone/S • Persistence • Concurrent Transactions • Constraints • Class Versions • Access Control
  7. 7. Implementation • GemStone/S (cont) • Indexes • Namespaces • GeODE (1993-97)
  8. 8. Web Interface • Since early 1995 • Implemented inside GemStone/S • Message passing paradigm /receiver.message?param=value • Method must be in category „HTML Reply“
  9. 9. Web Interface (cont.) • One server process for the general public, separate ones for each internal user on different ports. • Mechanisms to avoid session hijacking. • Was ported to become one of the first web servers for Squeak.
  10. 10. Secure Web Interface • Since 1998 • Front end linking to SSLeay/OpenSSL • Uses RPC Gem to keep OpenSSL and GemStone in separate address spaces.
  11. 11. Development • Completely via the Secure Web Interface • Class Browser adapted to the Web: • System: classes by class category • Class: methods by method category • Category: methods including comments • Methodeditor
  12. 12. Development (cont.) • Method finder: • Implementors • Senders • References to • Substring
  13. 13. Development (cont.) • Only stack dumps for debugging • Mitigated by design for testability • Workspace
  14. 14. Display Framework • asLink (Object, Collection, String, Dictionary,...) • asHTML • title: • itemize: • tabulate:
  15. 15. Edit Framework • editForm • formHeaderFor: • label:id:value:size: • label:id:list:selected:size: • formFooter
  16. 16. Edit Framework (cont.) • Update Setup • field id • instance variable (constraintOn:) • getter method • setter method
  17. 17. Edit Framework (cont.) • doUpdate • authorization check • error handling • update: • updateList: • fromString:
  18. 18. Delayed Actions • GemStone/S is a transactional system • Some actions can´t be undone by an abort (e.g. sending mail) • Therefore delay them until after a successful commit • Implemented as a queue in the session state
  19. 19. Exception Handling • Catch all handler to keep the server alive • Only generic message for the user (hacker?) • Specific information by eMail for the maintainer
  20. 20. Code • 95 classes • 2505 methods • 26023 lines • 1012862 characters „On my most productive days, the number of lines of code goes down“. Trygve Reenskaug
  21. 21. Hardware • HP L1000 • dual 360 MHz CPU • 786 MB memory • Linux box for testing
  22. 22. Repository • ~1 million objects • ~100 MB net data • 200 MB SPC
  23. 23. Performance • up to 370.000 hits/month so far • mostly via SSL • machine is mostly idle :-) • some statistics could be faster...
  24. 24. Documentation • Documentation inside • Notes may reference any object • Thus always up to date
  25. 25. Remarks • Methodologies ? • Extreme Programming as a guideline • Small is efficient • Homogenous is efficient • Smalltalk throughout • Everything inside GemStone
  26. 26. Remarks (cont.) • Better development environment (change sets) • More SUnit Tests • Access rights errors are hardest to test for
  27. 27. Assessment • Stable • Efficient • Rapid Application Development • Extensive Change Support
  28. 28. Q&A

×