SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
SWAZoo - AIDA

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

  AIDA/Web
    demo
    architecture
    examples
  SWAZoo
    goals
  Discussion
AIDA/Web

  A Web server
  Framework for dynamic web applications
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
      ...
Competition

  Java
    IBM WebSphere
    ...
  Microsoft
AIDA/Web demo
Download it and try!

  http://www.eranova.si/aida
    complete source
    small demo
  Open source
Architecture

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

  Web of objects
    … connected by object references
  Web ob pages
    … connected by URLl links
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!)
MVC on Web

  Complete separation of presentation from
   domain model
  Observer pattern: domain object are not
   aware of presentation
MVC on Web

          domain
        a WebApp
           object

             observee


         domain
          object
MVC on Web

  Multiple Views of the same object
    discussions - hierarchical/cronological
  Registration of web print methods for
   different views
MVC on Web

  Web forms
    Input fields connected to domain object
     attributes with a pluggable adapter
    Submit button
    Action methods
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
Complete path of a WebRequest
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
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
Security

  SSL (Secure Socket Layer)
  SSLSocketAccessor
  Seamless integration in
   AIDA/Web
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
Smalltalk Server Pages

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


  <AIDA WebStatistics printCounter>
Examples
SWAZoo

  Smalltalk Web Application ZOO :-))
  a CampSmalltalk project
  Merging all Web related work together
    Commanche, Hydrogen, ByteSmiths toolkit,
     AIDA/Web
    VisualWave, VisualAge SST
Internet related CS projects

  Internet Client/Server framework
  Smalltalk Web Application Server
  SOAP
  XML
SWAZoo

  HTTP 1.1 server
  Virtual servers
  Resource hierarchy
  URL resolution
  HTTPRequest parsing
Discussion




    Smalltalk in e-commerce
    world?

Contenu connexe

Tendances

SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriage
Liam Cleary [MVP]
 
Ajax -a_new_approach_to_web_applications
Ajax  -a_new_approach_to_web_applicationsAjax  -a_new_approach_to_web_applications
Ajax -a_new_approach_to_web_applications
luongthuha
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
Kiril Iliev
 

Tendances (20)

Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014
 
SharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriageSharePoint Saturday The Conference DC - How the bcs saved my marriage
SharePoint Saturday The Conference DC - How the bcs saved my marriage
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
ASP.NET Lecture 1
ASP.NET Lecture 1ASP.NET Lecture 1
ASP.NET Lecture 1
 
Basics of Silverlight 1
Basics of Silverlight 1Basics of Silverlight 1
Basics of Silverlight 1
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
More object oriented development with Page Type Builder
More object oriented development with Page Type BuilderMore object oriented development with Page Type Builder
More object oriented development with Page Type Builder
 
Full stack devlopment using django main ppt
Full stack devlopment using django main pptFull stack devlopment using django main ppt
Full stack devlopment using django main ppt
 
Ajax -a_new_approach_to_web_applications
Ajax  -a_new_approach_to_web_applicationsAjax  -a_new_approach_to_web_applications
Ajax -a_new_approach_to_web_applications
 
AngularJs
AngularJsAngularJs
AngularJs
 
Blazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksBlazor certification training - Dot Net Tricks
Blazor certification training - Dot Net Tricks
 
Active Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBMActive Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBM
 
Building Cool apps with flex
Building Cool apps with flexBuilding Cool apps with flex
Building Cool apps with flex
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - ZaloniIntroduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Mvc
MvcMvc
Mvc
 
WaveMaker Presentation
WaveMaker PresentationWaveMaker Presentation
WaveMaker Presentation
 
Leveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page AppsLeveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page Apps
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
 
ASP .NET MVC - best practices
ASP .NET MVC - best practicesASP .NET MVC - best practices
ASP .NET MVC - best practices
 

En vedette (9)

Smalltalk and Corporate Cultures
Smalltalk and Corporate CulturesSmalltalk and Corporate Cultures
Smalltalk and Corporate Cultures
 
eXploratory Modelling xM
eXploratory Modelling xMeXploratory Modelling xM
eXploratory Modelling xM
 
Seaside Tutorial: Agenda
Seaside Tutorial: AgendaSeaside Tutorial: Agenda
Seaside Tutorial: Agenda
 
Bonding with Pango
Bonding with PangoBonding with Pango
Bonding with Pango
 
A Moribund Smalltalk Still Alive and Kicking
A Moribund Smalltalk Still Alive and KickingA Moribund Smalltalk Still Alive and Kicking
A Moribund Smalltalk Still Alive and Kicking
 
Unanticipated Integration of Development Tools using the Classification Model
Unanticipated Integration of Development Tools using the Classification ModelUnanticipated Integration of Development Tools using the Classification Model
Unanticipated Integration of Development Tools using the Classification Model
 
How and Where in GLORP
How and Where in GLORPHow and Where in GLORP
How and Where in GLORP
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the Web
 
Design Principles Behind PATAGONIA
Design Principles Behind PATAGONIA	Design Principles Behind PATAGONIA
Design Principles Behind PATAGONIA
 

Similaire à SWAZoo - AIDA

SharePoint 2007 Presentation
SharePoint 2007 PresentationSharePoint 2007 Presentation
SharePoint 2007 Presentation
Ajay Jain
 
Introduction to widgets
Introduction to widgetsIntroduction to widgets
Introduction to widgets
Thomas Robbins
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash ry
marina2207
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
Spiffy
 

Similaire à SWAZoo - AIDA (20)

4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
 
SoCalCodeCamp SharePoint Server 2010 a Developer Platform
SoCalCodeCamp SharePoint Server 2010 a Developer PlatformSoCalCodeCamp SharePoint Server 2010 a Developer Platform
SoCalCodeCamp SharePoint Server 2010 a Developer Platform
 
Widget Platform
Widget PlatformWidget Platform
Widget Platform
 
Sharepoint2
Sharepoint2Sharepoint2
Sharepoint2
 
Web Development Competency Building
Web Development Competency Building Web Development Competency Building
Web Development Competency Building
 
Sharepoint Online
Sharepoint OnlineSharepoint Online
Sharepoint Online
 
SharePoint 2007 Presentation
SharePoint 2007 PresentationSharePoint 2007 Presentation
SharePoint 2007 Presentation
 
WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..
WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..
WSS 3.0 using asp.net 2.0 for extending pages,Server Farms etc..
 
Sharepoint
SharepointSharepoint
Sharepoint
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Web Development Skill Map
Web Development Skill MapWeb Development Skill Map
Web Development Skill Map
 
Lessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX ExperiencesLessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX Experiences
 
Lessons
LessonsLessons
Lessons
 
SharePoint Developer Education Day Palo Alto
SharePoint  Developer Education Day  Palo  AltoSharePoint  Developer Education Day  Palo  Alto
SharePoint Developer Education Day Palo Alto
 
Introduction to widgets
Introduction to widgetsIntroduction to widgets
Introduction to widgets
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash ry
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
 
Asp.net
Asp.netAsp.net
Asp.net
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
 
SPCA2013 - Building Windows Client Applications for SharePoint 2013
SPCA2013 - Building Windows Client Applications for SharePoint 2013SPCA2013 - Building Windows Client Applications for SharePoint 2013
SPCA2013 - Building Windows Client Applications for SharePoint 2013
 

Plus de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Plus de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 

SWAZoo - AIDA

  • 1. SWAZoo - AIDA A Smalltalk Web Application Server Janko Mivsek Eranova d.o.o. Ljubljana, Slovenia On the sunny side of the Alps
  • 2. Contents   AIDA/Web   demo   architecture   examples   SWAZoo   goals   Discussion
  • 3. AIDA/Web   A Web server   Framework for dynamic web applications
  • 4. 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   ...
  • 5. Competition   Java   IBM WebSphere   ...   Microsoft
  • 7. Download it and try!   http://www.eranova.si/aida   complete source   small demo   Open source
  • 8. Architecture   Original design ideas   MVC for the Web   WebElements   Session management   Security   Persistent everything   Smalltalk Server Pages
  • 9. Original design ideas   Web of objects   … connected by object references   Web ob pages   … connected by URLl links
  • 10. 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!)
  • 11. MVC on Web   Complete separation of presentation from domain model   Observer pattern: domain object are not aware of presentation
  • 12. MVC on Web domain a WebApp object observee domain object
  • 13. MVC on Web   Multiple Views of the same object   discussions - hierarchical/cronological   Registration of web print methods for different views
  • 14. MVC on Web   Web forms   Input fields connected to domain object attributes with a pluggable adapter   Submit button   Action methods
  • 15. 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
  • 16. Complete path of a WebRequest
  • 17. 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
  • 18. 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
  • 19. Security   SSL (Secure Socket Layer)   SSLSocketAccessor   Seamless integration in AIDA/Web
  • 20. 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
  • 21. Smalltalk Server Pages   Calls to Smalltalk from HTML static pages   Like ASP, JSP, …   <AIDA WebStatistics printCounter>
  • 23. SWAZoo   Smalltalk Web Application ZOO :-))   a CampSmalltalk project   Merging all Web related work together   Commanche, Hydrogen, ByteSmiths toolkit, AIDA/Web   VisualWave, VisualAge SST
  • 24. Internet related CS projects   Internet Client/Server framework   Smalltalk Web Application Server   SOAP   XML
  • 25. SWAZoo   HTTP 1.1 server   Virtual servers   Resource hierarchy   URL resolution   HTTPRequest parsing
  • 26. Discussion Smalltalk in e-commerce world?