Dyalog’09. Overview of MildServer Morten Kromberg Dyalog’09 – Princeton, NJ.

Slides:



Advertisements
Similar presentations
Presenter: James Huang Date: Sept. 29,  HTTP and WWW  Bottle Web Framework  Request Routing  Sending Static Files  Handling HTML  HTTP Errors.
Advertisements

HTTP HyperText Transfer Protocol. HTTP Uses TCP as its underlying transport protocol Uses port 80 Stateless protocol (i.e. HTTP Server maintains no information.
Skills: none Concepts: protocol, hypertext transfer protocol, standard This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike.
CS320 Web and Internet Programming Generating HTTP Responses
How the web works: HTTP and CGI explained
CSE 190: Internet Commerce Lecture 4: Web Servers.
1 Web Search Interfaces. 2 Web Search Interface Web search engines of course need a web-based interface. Search page must accept a query string and submit.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
CSC 2720 Building Web Applications Servlet – Getting and Setting HTTP Headers.
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Computer Concepts 2014 Chapter 7 The Web and .
Basics of the HTTP Protocol and Apache Web Server Brandon Checketts.
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
Web technologies and programming cse hypermedia and multimedia technology Fanis Tsandilas April 3, 2007.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Session 11: Security with ASP.NET
What are Web Services? Definition of web service A web service is a distributed unit of business logic that can be accessed over Internet standard web.
SUNY Polytechnic Institute CS 490 – Web Design, AJAX, jQuery Web Services A web service is a software system that supports interaction (requesting data,
Krerk Piromsopa. Web Caching Krerk Piromsopa. Department of Computer Engineering. Chulalongkorn University.
Comp2513 Forms and CGI Server Applications Daniel L. Silver, Ph.D.
WEB SECURITY WEEK 3 Computer Security Group University of Texas at Dallas.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
FTP (File Transfer Protocol) & Telnet
CSC 2720 Building Web Applications Getting and Setting HTTP Headers (With PHP Examples)
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Application Layer 2 Figures from Kurose and Ross
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Copyright 2000 eMation SECURITY - Controlling Data Access with
Browser Web Server Users DB 2a. Redirect to login page plugin 1. access a protected page Login Web Server (https) aislogin.cern.ch edh.cern.ch 3a. Set.
WWW, HTTP, GET, POST, Cookies Svetlin Nakov Telerik Corporation
URails Meeting 001. HTTP Old/Young guys with beards decided “We need to communicate. Let’s use text!” Hypertext Transfer Protocol HTTP is just sending.
表單 (Form)
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 10: Web 10/6/20151Distributed Systems - COMP 655.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Securing a Microsoft ASP.NET Web Application.
CS320 Web and Internet Programming Handling HTTP Requests Chengyu Sun California State University, Los Angeles.
Towards Industrial Strength Web Applications Brian Becker, Dyalog LTD. APL Tools Group.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Dr. Mustafa Cem Kasapbaşı Security in ASP.NET. Determining Security Requirements Restricted File Types.
WildHeart.HTTPListener an open source Web Server for Dyalog APL v11.0 Stefano “WildHeart” Lanzavecchia.
World Wide Web (WWW) A Distributed Document- Based System Group E Ricky Tong (D-A0-1611) Eddy Leong (D-A0-1623) Dick Lei (D-A0-1658)
Module 5: Configuring Internet Explorer and Supporting Applications.
Web Spiders Dan Reeves Bill Walsh HDIW EECS February 2000.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
HTTP1 Hypertext Transfer Protocol (HTTP) After this lecture, you should be able to:  Know how Web Browsers and Web Servers communicate via HTTP Protocol.
Web Database Programming Week 7 Session Management & Authentication.
A Little Bit About Cookies Fort Collins, CO Copyright © XTR Systems, LLC A Little Bit About Cookies Instructor: Joseph DiVerdi, Ph.D., M.B.A.
1-1 HTTP request message GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr request.
Web Technologies Interactive Responsiveness Function Hypertext Web E-Publishing Simple Response Web Fill-in Forms Object Web « Full-Blown » Client/Server.
WEB SERVER Mark Kimmet Shana Blair. The Project Web Server Application  Receives request for web pages or images from a client browser via the internet.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
Fall 2000C.Watters1 World Wide Web and E-Commerce Clients & Client Side Processing.
HTTP How the Internet servers and clients communicate.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
5 th ed: Chapter 17 4 th ed: Chapter 21
1 10/19/05CS360 Windows Programming ASP.NET. 2 10/19/05CS360 Windows Programming ASP.NET  ASP.NET works on top of the HTTP protocol  Takes advantage.
Overview of Servlets and JSP
PHP Security Ryan Dunn Jason Pack. Outline PHP Overview PHP Overview Common Security Issues Common Security Issues Advanced Security Issues Advanced Security.
Overview of Previous Lesson(s) Over View  ASP is a technology that enables scripts in web pages to be executed by an Internet server.  ASP.NET is a.
The OWASP Foundation OWASP Education Computer based training The Basics Nishi Kumar IT Architect Specialist, FIS Chair, Software Security.
表單 (Form). … Ex. … method  method="get"  URL:  HTTP message entity: none  不可超過 256 個字元  method="post"
PHP: Further Skills 02 By Trevor Adams. Topics covered Persistence What is it? Why do we need it? Basic Persistence Hidden form fields Query strings Cookies.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Distributed Web Systems Cookies and Session Tracking Lecturer Department University.
Fiddler and Your Website Robert Boedigheimer. About Me Web developer since 1995 Columnist for aspalliance.com Pluralsight Author 3 rd Degree Black Belt,
z/Ware 2.0 Technical Overview
Web Systems Development (CSC-215)
Presentation transcript:

Dyalog’09

Overview of MildServer Morten Kromberg Dyalog’09 – Princeton, NJ

Goals and Philosophy The goal is to make it possible for ”ordinary” APL developers to develop web pages The ”MildServer” is an experimental platform for this work. What’s the problem, anyway? MildServer OverviewDyalog’09 - Princeton3

What’s the Problem? POST /linreg.dyalog HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms- application, application/vnd.ms-xpsdocument, application/xaml+xml,... blah blah blah... Accept-Language: da Content-Type: multipart/form-data; boundary= d UA-CPU: x86 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1;... blah blah... Content-Length: 2198 Connection: Keep-Alive Cache-Control: no-cache Cookie: UserId=mkrom; Session=dOiEkOvDgxAVdTpXZMRhpwCxpalFAI5p2pvbbhTHHAA= d Content-Disposition: form-data; name="Degree" d Content-Disposition: form-data; name="X" d Content-Disposition: form-data; name="Y" 2 MildServer OverviewDyalog’09 - Princeton4

The Desired Answer... HTTP/ OK Content-Length: 2515 content-type: text/html; charset=utf-8 Demo Server Linear Regression Degree of polynomial MildServer OverviewDyalog’09 - Princeton5

What’s The Problem (again)? Decode the HTTP Headers and Data –Make data available to the application developer (Detect and) Manage ”Sessions”: Persistence of data from one request to the next –A ”Cookie” is a bit of data stored on your PC, which is transmitted to the server with every request –A session cookie tracks a user from one page to the next Provide Security: Identify the User and Restrict Access to parts of the Web Site Help the application developer generate HTML –And a bit later (perhaps), more complex controls MildServer OverviewDyalog’09 - Princeton6

BIG Thanks to ”WildHeart” I have been allowed to steal code from the ”WildServer” and other servers Stefano Lanzavecchia has built –(all the tricky bits about decoding HTTP!) WildServer is a more complete, ”more object- oriented” HTTP server developed by Stefano MildServer is Mortens ”watered down” environment ”Anyone who is able to write an APL function should be able to turn it into a web page” ™ MildServer OverviewDyalog’09 - Princeton7

A MildServer Page Each page is a class which must derive from MildPage It must have a public function called Render which takes an instance of HTTPRequest as its argument Render must end by calling one of: –Request.Return (HTML) –Request.ReturnFile (FileName) –Request.Fail (HTTPCode) MildServer OverviewDyalog’09 - Princeton8

Page Data For each user session, an instance of the page class is made (object orientation is a good tool for this ) If your page has Public Fields or Properties, MildServer will move data from the HTTP request into your page if the HTTP element has the same name Any data inside the instance will survive until the session ends (times out after inactivity or user LogOut) MildServer OverviewDyalog’09 - Princeton9

Page Data – Example... MildServer OverviewDyalog’09 - Princeton10

Source Code Management... MildServer is also a demonstration of the ”new way” of developing Dyalog applications ALL the code is in UTF-8 text files, managed by SALT (the Simple APL Library Toolkit) SubVersion (a free source code management system) is used to manage the source code It is available as a download from the APL Wiki This does not compromise the way that you develop APL applications at all... MildServer OverviewDyalog’09 - Princeton11

MildServer Components MildServer is a TCP/IP server which accepts connections, incoming data, and returns output HTTPRequest is a class which decodes an HTTP Request into APL data SimpleAuth is a basic security provider which uses the HTTP Challenge protocol based on XML input SimpleSessions is a simple cookie-based session manager which preserves application data for the duration of a session MildServer OverviewDyalog’09 - Princeton12

MildServer Configuration MildServer OverviewDyalog’09 - Princeton13

Open, Modular Design Note that the Session Handler and Authentication components are configurableSession Handler Authentication Each one is defined in a script file; you can enhance them or replace them Over time, more and more of the MildServer should become configurable The idea is that the community will build a more sophisticated shared web framework in APL MildServer OverviewDyalog’09 - Princeton14

My Own ”To Do” List Make HTMLInput Class ExtensibleHTMLInput Add optional Authentication HandlersAuthentication –Combine SSL and certificates with passwords –Provide a more elegant security plugin using an HTML subform rather than the HTTP Challenge protocol Error Logging and Reporting module prototypedError Logging Run MildServer as a Windows Service (autostart when Windows starts) MildServer OverviewDyalog’09 - Princeton15

Conclusion Proposition: –MildServer is sufficient for many ”simple” applications –Anyone who can write an APL function can implement a web site using MildServer –Scripted code does not compromise the ”APL Way” NO additional components needed (IIS/Apache) It is an experiment (but already in ”production” use in simple applications)... –Please take a look and comment, and contribute! MildServer OverviewDyalog’09 - Princeton16