Upload
esug
View
215
Download
3
Embed Size (px)
DESCRIPTION
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.
Citation preview
SiouX HTTP ServerCincom Systems, Inc.
1
Jerry Kott, Senior Software Engineer
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
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
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
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
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
Architecture (continued)
★HTTP-specific classes:- HttpRequest & HttpResponse - HttpListener & HttpConnection!
★HTTPS:- HttpsListener & HttpsConnection
7
8
Server
Architecture (continued)
8
Server
Listener on xxxx
Architecture (continued)
8
Server
Responder: /path1
Listener on xxxx
Architecture (continued)
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxx
Architecture (continued)
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxx
Architecture (continued)
xxxx listen
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
Architecture (continued)
xxxx listen
GET /pathX
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
Architecture (continued)
xxxx listen
GET /pathXdispatch
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
Architecture (continued)
xxxx listen
GET /pathXdispatch
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
Architecture (continued)
xxxx listen
GET /pathXdispatchrespond
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
Architecture (continued)
xxxx listen
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
GET /wrong-path
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
GET /wrong-path
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
404 - Not Found
Architecture (continued)
xxxx listen
GET /wrong-path
8
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
GET /wrong-path
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
GET /wrong-path
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
GET /wrong-path
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Architecture (continued)
xxxx listen
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Listener on yyyy
Architecture (continued)
xxxx listen
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Listener on yyyy
Architecture (continued)
yyyy listen
xxxx listen
8
Responder: /
ServerResponder: /pathX
…
…
Responder: /path1
Listener on xxxxConnection
……
Connection
Listener on yyyyConnection
…..
Connection
Architecture (continued)
yyyy listen
xxxx listen
Components★Open Parcel Manager!
★Category: Web Development!
★ Key Parcels:- SiouX-Server- SiouX-Http - SiouX-Tools- plus more…
9
Tools
★GUI and Web Based!
★ Easy access from the Launcher
10
Tools (continued)
11
GUI: Web:
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
Configuration (continued)
13
Configuration methods with pragmas:
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-cincom-smalltalk/try-cincom-smalltalk/!
★Contact:!• Suzanne Fortman: [email protected]!• Arden Thomas: [email protected]!• Jerry Kott: [email protected]!
★ Q & A
15