38
SiouX HTTP Server Cincom Systems, Inc. 1 Jerry Kott, Senior Software Engineer

SiouX HTTP Server

  • 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

Page 1: SiouX HTTP Server

SiouX HTTP ServerCincom Systems, Inc.

1

Jerry Kott, Senior Software Engineer

Page 2: SiouX HTTP Server

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

Page 3: SiouX HTTP Server

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

Page 4: SiouX HTTP Server

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

Page 5: SiouX HTTP Server

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

Page 6: SiouX HTTP Server

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

Page 7: SiouX HTTP Server

Architecture (continued)

★HTTP-specific classes:- HttpRequest & HttpResponse - HttpListener & HttpConnection!

★HTTPS:- HttpsListener & HttpsConnection

7

Page 8: SiouX HTTP Server

8

Server

Architecture (continued)

Page 9: SiouX HTTP Server

8

Server

Listener on xxxx

Architecture (continued)

Page 10: SiouX HTTP Server

8

Server

Responder: /path1

Listener on xxxx

Architecture (continued)

Page 11: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxx

Architecture (continued)

Page 12: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxx

Architecture (continued)

xxxx listen

Page 13: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

Architecture (continued)

xxxx listen

GET /pathX

Page 14: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

Architecture (continued)

xxxx listen

GET /pathXdispatch

Page 15: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

Architecture (continued)

xxxx listen

GET /pathXdispatch

Page 16: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

Architecture (continued)

xxxx listen

GET /pathXdispatchrespond

Page 17: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

Architecture (continued)

xxxx listen

Page 18: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

Page 19: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

GET /wrong-path

Page 20: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

GET /wrong-path

Page 21: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

404 - Not Found

Architecture (continued)

xxxx listen

GET /wrong-path

Page 22: SiouX HTTP Server

8

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

GET /wrong-path

Page 23: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

GET /wrong-path

Page 24: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

GET /wrong-path

Page 25: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Architecture (continued)

xxxx listen

Page 26: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Listener on yyyy

Architecture (continued)

xxxx listen

Page 27: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Listener on yyyy

Architecture (continued)

yyyy listen

xxxx listen

Page 28: SiouX HTTP Server

8

Responder: /

ServerResponder: /pathX

Responder: /path1

Listener on xxxxConnection

……

Connection

Listener on yyyyConnection

…..

Connection

Architecture (continued)

yyyy listen

xxxx listen

Page 29: SiouX HTTP Server

Components★Open Parcel Manager!

★Category: Web Development!

★ Key Parcels:- SiouX-Server- SiouX-Http - SiouX-Tools- plus more…

9

Page 30: SiouX HTTP Server

Tools

★GUI and Web Based!

★ Easy access from the Launcher

10

Page 31: SiouX HTTP Server

Tools (continued)

11

GUI: Web:

Page 32: SiouX HTTP Server

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

Page 33: SiouX HTTP Server

Configuration (continued)

13

Configuration methods with pragmas:

Page 34: SiouX HTTP Server

Demo time!

14

Page 35: SiouX HTTP Server

Demo time!

14

Page 36: SiouX HTTP Server

Demo time!

14

Page 37: SiouX HTTP Server

Demo time!

14

Page 38: SiouX HTTP Server

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