• No results found

After the application was nished, it was deployed on a publicly accessible server, and its address was sent to members of CellStore team and of Aida/Web community.

The server was run on a low-end machine, and no performance testing was reasonable.

But several users tried the the user interface and no serious defects were reported.

There were only some complaints concerning support for various web browsers, which was correct. Current implementation supports only Firefox browser. That is to say, debugging with multiple browsers is not far easy, and members of CellStore team agreed that Firefox support is sucient for now.

Chapter 10

Conclusion

At the beginning, there was an idea of creating a web client for CellStore, a new promising native XML database.

Then, because there was no ready-to-use solution, we had to nd a suitable basis that we can build on - an application server and a web framework. After some research, Swazoo and Aida turned to be the best options (section 2.3). Hence I ported them, together with Sport - Smalltalk portability layer, to Smalltalk/X system.

After an introduction to Aida/Web library (chapter 3) and CellStore database (chap-ter 4), we could start analysing what the web client should oer and how it is supposed to look like. We let ourselves inspire by existing clients for alternative databases and by XML:DB API. The analysis showed that an interface similar to web clients for relational databases would be proper (chapter 5).

Because of a certain primary hesitation, two designs were prepared. The rst (section6.1) one was partly implemented, but the application was missing some modern features. The client was redesigned, so that it could oer full AJAX support and more responsive behaviour.

But it still remained independent on modern browsers and could be displayed even in text-based browsers (section 6.2).

The Aida framework was not intended to be used for building single-page web applica-tions. Its behaviour was, therefore, changed and some new elements were added. Most of new elements use block closures for specifying how they should react to user actions or other events. New algorithm for automatic detection of updated elements was integrated, as well as extended form data processing (chapter 7).

The nal implementation provides considerable part of CellStore/XML API. Users of the new web client can browse collections and delete or create new items. They can also view contents of XML resources, view denitions and results of XQuery resources, and evaluate, store and edit XQuery expressions. That means that the requirements stated in the task description were fullled.

I personally nd the work very rewarding, since it let me explore internals of an appli-cation server, made me learn a little more of Smalltalk, and gave me the chance to work in an outstanding team and community. Furthermore, the community appreciated the ports to a new Smalltalk dialect and some ideas used in the implementation of the web client (appendix B).

61

Bibliography

[Aid] Aida/Web Framework Home Page. http://www.aidaweb.si/.

[Cel] Cellstore project site. http://cellstore.felk.cvut.cz/.

[Des] Design Patterns Reference. http://www.oodesign.com/.

[exi] eXist Project Site. http://exist.sourceforge.net/.

[Fit] Julian Fitzell's article on Smalltalk continuations.

http://http://blog.tzell.ca/2009/01/seaside-partial-continuations.html/.

[MNP+08] Irena Mlýnková, Martin Ne£aský, Jaroslav Pokorný, Karel Richta, Kamil Toman, and Vojt¥ch Toman. XML technologie. Grada Publishing, a.s., U Pr·honu 22, 170 00 Praha 7, the Czech Republic, 2008.

[mys] MySQL Project Site. http://www.mysql.com/.

[pgs] PostgreSQL Project Site. http://www.postgresql.org/.

[Pro] Prototype.js JavaScript Framework Project Page. http://www.prototypejs.org/.

[P°09] Karel P°íhoda. Database-level Cache Management For CellStore Project. Mas-ter's thesis, ƒeské vysoké u£ení technické v Praze, Fakulta elektrotechnická, Jan-uary 2009.

[Sea] Seaside Framework Home Page. http://www.seaside.st/.

[StW] Seaside Wikipedia Page. http://en.wikipedia.org/wiki/Seaside.

[STX] Smalltalk/X Site. http://www.exept.de/.

[Swa] Swazoo Web Server. http://www.swazoo.org/.

[Xml] XML Database Wikipedia Page. http://en.wikipedia.org/wiki/XML_database.

63

Appendix A

List of Abbreviations

AJAX Asynchronous JavaScript and XML API Application Programming Interface CSS Cascading Style Sheets

DOM Document Object Model HTML HyperText Markup Language HTTP Hyptertext Transfer Protocol MVC Model-View-Controller

RDBMS Relational Database Management System RPC Remote Procedure Call

SOAP Simple Object Access Protocol

XDBMS XML Database Management System XHTML EXtensible Hyptertext Markup Language XML EXtensible Markup Language

65

Appendix B

Comments

B.1 Comments by Herbert König, member of Aida mailing list

Hi Jaroslav,

JH> It is a web client for the XML database, that introduces some JH> interesting (I hope) things that can be done with Aida.

thank you very much for sharing this. I've read it from cover to cover and will have to revisit it. I feel you have covered some very

important parts in making a web application (stress on application) and clearly pointed out the weak points.

Aida's slogan "This is how the Web works" is nothing an application user wants to hear if his application which happens to run in a browser behaves unexpectedly. Your work is a good step towards alleviating this.

Are you aware of the work being done by Alex Baran on the problem you state in 3.3.3.1?

JH> - support for complete AJAX updating (callback links, automatic JH> detection of updated elements, unlimited number of elements updated JH> after single AJAX request)

JH> - integration of reallysimplehistory into Aida (back button support JH> for AJAX applications)

JH> - form elements with custom conversion, validation and failure handling JH> - AJAX form submitting

JH> - support for both modern and text browsers

These IMO are very valuable extensions for Aida! Maybe only from my point of view who wants to create a web _application_ but I think the

67

concept, that the programmer does not need to care about which elements to update is of general usefulness.

JH> Download page for document that describes the web client, the most JH> important part is chapter 7 - Implementation:

JH> http://cellstore.felk.cvut.cz/browser/doc/

JH> graduate_theses/Jaroslav_Havlin/havlin_thesis.pdf JH> (I'm sorry for my English)

In your initial chapters you give a good overview and some valuable details on Aida, actually I think this is a part that is still missing in Aida documentation. I was missing such a thing. Thank you!

JH> Source code:

JH> http://sites.google.com/site/jaroslavhavlin/cellstore, JH> http://cellstore.felk.cvut.cz/browser/service_http/trunk

Is there a way to get the whole source instead of picking it from the page in small pieces? BTW I just downloaded STX, it seems from there I can directly get at your code.

JH> I will be glad if you let me know what you think.

Great! Though I haven't groked it fully it will have influence on my own app.

Cheers, Herbert

Thanks to Mr. König for allowing me to publish his message.

Appendix C

Content of Included CD

This appendix lists the content of the CD included in this diploma thesis.

text

this text in pdf format text_sources

source codes of this text for LATEX source_codes

source codes of WWW client smalltalk_image

image of Smalltalk with integrated WWW client

69

Related documents