SiouX HTTP Server

Preview:

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: sfortman@cincom.com!• Arden Thomas: athomas@cincom.com!• Jerry Kott: jkott@cincom.com!

★ Q & A

15

Recommended