Cincom Systems, Inc. 
SiouX HTTP Server 
Jerry Kott, Senior Software Engineer 
1
Why SiouX? 
★ Established Cincom® VisualWorks® technology: VisualWorks 
Application Server (VWAS)! 
★ Applications served ...
Why SiouX? (continued) 
★ Based on older standards (HTTP 1.0)! 
★ Doesn’t allow to serve different technologies from the s...
What’s new? 
★ It’s light-weight, only a handful of classes! 
★ Minimum Http header fields parsing to improve performance!...
What’s new? (continued) 
★ Optional components to provide support for Session Management, 
Web Sockets & Servlets (backwar...
Architecture 
★ Key classes: 
- Server —> has listeners and responders 
- Listener —> accepts and manages connections 
- C...
Architecture (continued) 
★ HTTP-specific classes: 
- HttpRequest & HttpResponse 
- HttpListener & HttpConnection! 
★ HTTP...
Architecture (continued) 
Server 
8
Architecture (continued) 
Server 
8 
Listener on xxxx
Architecture (continued) 
Server 
8 
Responder: /path1 
Listener on xxxx
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Listener on xxxx
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Listener on xxxx 
xxxx listen
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
Listener on xxxx 
GET /pathX ...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
Listener on xxxx 
GET /pathX ...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
Listener on xxxx 
GET /pathX ...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
Listener on xxxx 
GET /pathX ...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
Listener on xxxx 
xxxx listen
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
…… 
Connection 
Listener on x...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
…… 
Connection 
Listener on x...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
…… 
Connection 
Listener on x...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
…… 
Connection 
Listener on x...
Architecture (continued) 
Server 
8 
Responder: /path1 
… 
Responder: /pathX 
… 
Connection 
…… 
Connection 
Listener on x...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Connection 
…… 
Connection ...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Connection 
…… 
Connection ...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Connection 
…… 
Connection ...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Listener on yyyy 
Connectio...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Listener on yyyy 
Connectio...
Architecture (continued) 
8 
Responder: /path1 
… 
Responder: / 
Server 
Responder: /pathX 
… 
Connection 
….. 
Connection...
Components 
★ Open Parcel Manager! 
★ Category: Web Development! 
★ Key Parcels: 
- SiouX-Server 
- SiouX-Http 
- SiouX-To...
Tools 
★ GUI and Web Based! 
★ Easy access from the Launcher 
10
Tools (continued) 
GUI: Web: 
11
Configuration 
★ From the GUI tool! 
★ From the Web based ServerMonitor tool (limited)! 
★ Programmatic, using pragmas and...
Configuration (continued) 
Configuration methods with pragmas: 
13
Demo time! 
14
Demo time! 
14
Demo time! 
14
Demo time! 
14
Thank you! 
★ Download from Cincom Smalltalk web site: 
- http://www.cincomsmalltalk.com/main/developer-community/trying-c...
Upcoming SlideShare
Loading in …5
×

SiouX HTTP Server

628 views

Published on

Title: SiouX HTTP Server
Speaker: Jerry Kott
Tue, August 19, 2:30pm – 3:00pm

Video Part1: https://www.youtube.com/watch?v=penLl8RJvs4
Video Part2: https://www.youtube.com/watch?v=t_-6sBhoj8o

Description
Abstract: In this presentation, Cincom engineer Jerry Kott will present an architectural overview, do a configuration walkthrough of Cincom VisualWorks’s HTTP server named ‘SiouX’, and demonstrate the new web application development framework named ‘AppeX’. SiouX and AppeX are built in our Cincom Smalltalk foundation and work in both Cincom ObjectStudio and VisualWorks.

With the upcoming release of VisualWorks 8.0 foundation, Cincom is providing new tools to enhance a developers' ability to develop rich behavior web applications. SiouX is a light-weight, high performance HTTP server with native streaming support. It is now the underlying server for all VisualWorks web components, replacing multiple servers. SiouX’s flexibility and scalability allows the easy integration of Seaside, Web Services and other web technologies all running on the same server.

Example applications that will be included in VisualWorks 8.0 will be used to demonstrate the different aspects of server configuration and integration of diverse applications in a single VW image.

Published in: Software
1 Comment
0 Likes
Statistics
Notes
  • Video Part1: https://www.youtube.com/watch?v=penLl8RJvs4
    Video Part2: https://www.youtube.com/watch?v=t_-6sBhoj8o
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

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

No notes for slide

SiouX HTTP Server

  1. 1. Cincom Systems, Inc. SiouX HTTP Server Jerry Kott, Senior Software Engineer 1
  2. 2. Why SiouX? ★ Established Cincom® VisualWorks® technology: VisualWorks Application Server (VWAS)! ★ Applications served via Smalltalk Server Pages, Servlets or VisualWave. ! ★ Uses Opentalk: a generic framework to develop distributed applications.! ★ Difficult to debug and maintain 2
  3. 3. Why SiouX? (continued) ★ Based on older standards (HTTP 1.0)! ★ Doesn’t allow to serve different technologies from the same server (e.g., Seaside + SSP + WS)! ★ Limited or no support for new technologies as streaming and chunked messages.! ★ Diverse and incompatible configuration tools! ★ etc… 3
  4. 4. What’s new? ★ It’s light-weight, only a handful of classes! ★ Minimum Http header fields parsing to improve performance! ★ Provides file & directory management, as well as multiple log formats! ★ Supports writing directly to the socket stream: - large objects don’t have to be held in memory - using Server-Sent Events becomes easy 4
  5. 5. What’s new? (continued) ★ Optional components to provide support for Session Management, Web Sockets & Servlets (backward compatibility)! ★ Includes fortification options (e.g., to set the rate at which new connections are accepted, request line and header limits)! ★ Integrated with SSL/TLS! ★ Configurable, extensible request filters 5
  6. 6. Architecture ★ Key classes: - Server —> has listeners and responders - Listener —> accepts and manages connections - Connection —> accepts and dispatches requests in a single process (one process per connection) - Responder - handles requests 6
  7. 7. Architecture (continued) ★ HTTP-specific classes: - HttpRequest & HttpResponse - HttpListener & HttpConnection! ★ HTTPS: - HttpsListener & HttpsConnection 7
  8. 8. Architecture (continued) Server 8
  9. 9. Architecture (continued) Server 8 Listener on xxxx
  10. 10. Architecture (continued) Server 8 Responder: /path1 Listener on xxxx
  11. 11. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Listener on xxxx
  12. 12. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Listener on xxxx xxxx listen
  13. 13. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection Listener on xxxx GET /pathX xxxx listen
  14. 14. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection Listener on xxxx GET /pathX xxxx listen dispatch
  15. 15. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection Listener on xxxx GET /pathX xxxx listen dispatch
  16. 16. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection Listener on xxxx GET /pathX xxxx listen respond dispatch
  17. 17. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection Listener on xxxx xxxx listen
  18. 18. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection …… Connection Listener on xxxx xxxx listen
  19. 19. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection …… Connection Listener on xxxx GET /wrong-path xxxx listen
  20. 20. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection …… Connection Listener on xxxx GET /wrong-path xxxx listen
  21. 21. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection …… Connection Listener on xxxx 404 - Not Found GET /wrong-path xxxx listen
  22. 22. Architecture (continued) Server 8 Responder: /path1 … Responder: /pathX … Connection …… Connection Listener on xxxx GET /wrong-path xxxx listen
  23. 23. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Connection …… Connection Listener on xxxx GET /wrong-path xxxx listen
  24. 24. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Connection …… Connection Listener on xxxx GET /wrong-path xxxx listen
  25. 25. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Connection …… Connection Listener on xxxx xxxx listen
  26. 26. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Listener on yyyy Connection …… Connection Listener on xxxx xxxx listen
  27. 27. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Listener on yyyy Connection …… Connection Listener on xxxx yyyy listen xxxx listen
  28. 28. Architecture (continued) 8 Responder: /path1 … Responder: / Server Responder: /pathX … Connection ….. Connection Listener on yyyy Connection …… Connection Listener on xxxx yyyy listen xxxx listen
  29. 29. Components ★ Open Parcel Manager! ★ Category: Web Development! ★ Key Parcels: - SiouX-Server - SiouX-Http - SiouX-Tools - plus more… 9
  30. 30. Tools ★ GUI and Web Based! ★ Easy access from the Launcher 10
  31. 31. Tools (continued) GUI: Web: 11
  32. 32. Configuration ★ From the GUI tool! ★ From the Web based ServerMonitor tool (limited)! ★ Programmatic, using pragmas and the Server / Responder API! ★ From an XML configuration file. The XML conf. file can be loaded using a command line into a headless image. 12
  33. 33. Configuration (continued) Configuration methods with pragmas: 13
  34. 34. Demo time! 14
  35. 35. Demo time! 14
  36. 36. Demo time! 14
  37. 37. Demo time! 14
  38. 38. Thank you! ★ Download from Cincom Smalltalk web site: - http://www.cincomsmalltalk.com/main/developer-community/trying-cincom-smalltalk/try-cincom-smalltalk/! ★ Contact:! • Suzanne Fortman: sfortman@cincom.com! • Arden Thomas: athomas@cincom.com! • Jerry Kott: jkott@cincom.com! ★ Q & A 15

×