SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet...

26
SWAZoo - AIDA A Smalltalk Web Application Server Janko Mivsek Eranova d.o.o. Ljubljana, Slovenia On the sunny side of the Alps

Transcript of SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet...

Page 1: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

SWAZoo - AIDA

A Smalltalk Web Application Server Janko Mivsek Eranova d.o.o. Ljubljana, Slovenia On the sunny side of the Alps

Page 2: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Contents

  AIDA/Web   demo   architecture   examples

  SWAZoo   goals

  Discussion

Page 3: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

AIDA/Web

  A Web server   Framework for dynamic web applications

Page 4: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Where is usefull?

  Internet   web sites, portals, e-shops, e-commerce,

newspapers, discussion forums, …

  Intranet, Extranet   Web based business apps   B2B   CRM, Document systems, Unified messaging   ...

Page 5: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Competition

  Java   IBM WebSphere   ...

  Microsoft

Page 6: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

AIDA/Web demo

Page 7: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Download it and try!

  http://www.eranova.si/aida   complete source   small demo

  Open source

Page 8: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Architecture

  Original design ideas   MVC for the Web   WebElements   Session management   Security   Persistent everything   Smalltalk Server Pages

Page 9: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Original design ideas

  Web of objects   … connected by object references

  Web ob pages   … connected by URLl links

Page 10: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Original design ideas

  Every object should be able to represent itself as a web page

  Object references should be mapped to URL references and vice-versa (automatically!)

Page 11: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

MVC on Web

  Complete separation of presentation from domain model

  Observer pattern: domain object are not aware of presentation

Page 12: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

domain object

MVC on Web

a WebApp

domain object

observee

Page 13: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

MVC on Web

  Multiple Views of the same object   discussions - hierarchical/cronological

  Registration of web print methods for different views

Page 14: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

MVC on Web

  Web forms   Input fields connected to domain object

attributes with a pluggable adapter   Submit button   Action methods

Page 15: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

WebElements

  Smalltalk objects representing the elements of a web page   text, url links, images, tables, input fields, …

  Composite objects   nesting of web elements   reusable web components

Page 16: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Complete path of a WebRequest

Page 17: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Session management

  Sessions used to separate users from each other

  Web is stateless   Session identification   cookies   parameter in an URL

  Sessions are permanent and persistent

Page 18: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Security

  Access rights   who is allowed to view or update my object?   Access rights for each view   separate right for update (form submit)

  URL links to the prohibited objects are inactive

  Authentication

Page 19: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Security

  SSL (Secure Socket Layer)   SSLSocketAccessor   Seamless integration in

AIDA/Web

Page 20: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Persistent Everything

  Almost all objects of AIDA/Web are persistent   requests, sessions, security, …

  Gemstone or Versant ODB used   Lightweight TransactionMonitor   Caching on a AIDA/Web side   35.000 hits/h

Page 21: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Smalltalk Server Pages

  Calls to Smalltalk from HTML static pages   Like ASP, JSP, …

  <AIDA WebStatistics printCounter>

Page 22: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Examples

Page 23: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

SWAZoo

  Smalltalk Web Application ZOO :-))   a CampSmalltalk project   Merging all Web related work together   Commanche, Hydrogen, ByteSmiths toolkit,

AIDA/Web   VisualWave, VisualAge SST

Page 24: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Internet related CS projects

  Internet Client/Server framework   Smalltalk Web Application Server   SOAP   XML

Page 25: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

SWAZoo

  HTTP 1.1 server   Virtual servers   Resource hierarchy   URL resolution   HTTPRequest parsing

Page 26: SWAZoo - AIDA · AIDA/Web VisualWave, VisualAge SST . Internet related CS projects Internet Client/Server framework Smalltalk Web Application Server SOAP XML . SWAZoo HTTP 1.1 server

Discussion

Smalltalk in e-commerce world?