Libwww, the W3C protocol library 29.06.2004 libwww - The W3C Protocol Library „Großes Schwerpunktseminar WI“ University of Applied Sciences Gießen-Friedberg.

Slides:



Advertisements
Similar presentations
Software Freedom Day th September 2007 Asia Pacific Institute of Information Technology Colombo, Sri Lanka. Nazly Ahmed Scripting The Web.
Advertisements

Interprocess Communications
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 JBus, A Platform Independent Publish/Subscribe Bus for CWave 2000 M.S. Thesis Defense Joseph W. Longson March 30, 2000.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
James Gollan d.o: gollyg twitter: gollyg. Overview Files in Drupal 7 The media suite of modules Site recipe: Adding media to your site.
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
Extensible Windows Desktop Utilities Performed By: Alexander Badyan Oren Shalgi Supervisor: Oved Itzhak Winter 2004/5.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
Windows audio architecture Win MM Application DirectSound Application SysAudio.SYS Kmixer.SYS WinMM.DLLDSound.DLL Device Drive Container USB Device Driver.
INTRODUCTION TO WEB DATABASE PROGRAMMING
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
Design for Senior Project December 05, 2007 Raytheon_Design_Review.ppt 1 of 19 Raytheon – Google Earth Roy Daniels, Marc Maciel, Rifina Pierre Department.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Chapter 1 Internet & Web Basics Key Concepts Copyright © 2013 Terry Ann Morris, Ed.D. Revised 1/12/2015 by William Pegram 1.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Web application architecture
C for Java Programmers Tomasz Müldner Copyright:  Addison-Wesley Publishing Company, 2000 Introduction to C Muldner, Chapters 1, 2.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Introduction to MINA A M ultipurpose I nfrastructure for N etwork A pplications April 2005, Trustin Lee, ASF.
Topics in Technology and Marketing In The Beginning.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
Indo-US Workshop, June23-25, 2003 Building Digital Libraries for Communities using Kepler Framework M. Zubair Old Dominion University.
Open Data Protocol * Han Wang 11/30/2012 *
Internet Web Publishing III. Intro to Cascading Style Sheets Patricia Roberts.
The Socket API Unit – Background 4.2 The Socket Metaphor In IPC
UNESCO ICTLIP Module 1. Lesson 61 Introduction to Information and Communication Technologies Lesson 6. What is the Internet?
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Web Client-Server Server Client Hypertext link TCP port 80.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
CS 158A1 1.4 Implementing Network Software Phenomenal success of the Internet: – Computer # connected doubled every year since 1981, now approaching 200.
Alternative Architecture for Information in Digital Libraries Onno W. Purbo
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Interprocess Communications
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
Developing Applications with the CSI Framework A General Guide.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
LCIO A persistency framework and data model for the linear collider CHEP 04, Interlaken Core Software, Wednesday Frank Gaede, DESY -IT-
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Basics of Web Based Computing. The Architecture The user’s system A Web Server What’s inside? Server software Apache or other Resources to be accessible.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
CS 6401 The World Wide Web Outline Background Structure Protocols.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Threads. Readings r Silberschatz et al : Chapter 4.
RSS Interfaces and Standards Chander Iyer. Really Simple Syndication (RSS) Web data format providing users with frequently updated content. Make a collection.
©2001 Priority Technologies, Inc. All Rights Reserved Meteor Status Miami Face to Face Meeting January 16 – 18, 2002.
COMP2322 Lab 1 Introduction to Wireshark Weichao Li Jan. 22, 2016.
Web Service Definition Language. Web Services: WSDL2 Web Service Definition Language ( WSDL ) What is a web service? [ F. Leymann 2003 ] A piece of code.
Introduction to the World Wide Web & Internet CIS 101.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
GROUP PresentsPresents. WEB CRAWLER A visualization of links in the World Wide Web Software Engineering C Semester Two Massey University - Palmerston.
1 Network Communications A Brief Introduction. 2 Network Communications.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Distributed Computing, M. L. Liu 1 Interprocess Communications Mei-Ling L. Liu.
Web Design Principles 5 th Edition Chapter 3 Writing HTML for the Modern Web.
KID - KLOE Integrated Dataflow
EE2E1. JAVA Programming Revision Lecture.
Trustin Lee Introduction to MINA Trustin Lee
Object-Orientated Programming
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Presentation transcript:

Libwww, the W3C protocol library libwww - The W3C Protocol Library „Großes Schwerpunktseminar WI“ University of Applied Sciences Gießen-Friedberg Stefan Sabatzki

Libwww, the W3C protocol library Contents 1.Introduction 2.Structure libwww 3.Programming with libwww 4.Conclusion

Libwww, the W3C protocol library Contents 1.Introduction –What is libwww? –Why libwww? 2.Structure libwww 3.Programming with libwww 4.Conclusion

Libwww, the W3C protocol library What is libwww? Generic framework for building web applications Written in C Pluggable modularity Means to provide most common Internet access methods Transmit data in many different media formats Dataflow to and from the server

Libwww, the W3C protocol library What is libwww? (2) First version implemented 1992 by Tim Berners-Lee Development at CERN 1994 libwww moved from CERN to W3C 1998 released as opensource As of September 2003 W3C stopped work on libwww As of January 2004 libwww officially belongs to the „Open Source Community“

Libwww, the W3C protocol library Why libwww? Experimenting and prototyping Performance, modularity and extensibility Free and open source code Mailing lists and active community

Libwww, the W3C protocol library Contents 1.Introduction 2.Structure libwww –Design Model –Request/Response Paradigm –Data Flow –Threads, Eventloops and Filters –Modules as Statemachines 3.Programming with libwww 4.Conclusion

Libwww, the W3C protocol library Design Model Layering as design model

Libwww, the W3C protocol library Design Model (2) More demonstrative

Libwww, the W3C protocol library Request/Response Paradigm Application issues request Libwww fulfills request Presented to application on arrival Simultaneous requests handled by Librarycore

Libwww, the W3C protocol library Data Flow Streams are used to transport data Derived from generic stream –Protocol streams –Converters –Presenters –I/O streams –Basic streams

Libwww, the W3C protocol library Data Flow (2) Structured streams –Derived from generic stream –Accepts structured document –Ordered tree-structured arrangement of data –Each instance is associated with SMGL parser –Each instance is associated with corresponding DTD

Libwww, the W3C protocol library Data Flow (3) Cascaded streams –Stream chains –Setup before data arrives

Libwww, the W3C protocol library Data Flow (4) –Setup after data arrives

Libwww, the W3C protocol library Threads, Eventloops and Filters Not thread-save Implements pseudo-thread model –Uses non-blocking sockets –Based on callback functions Before/After-Filter –Global and local filters –Registered at runtime

Libwww, the W3C protocol library Threads, Eventloops and Filters (2)

Libwww, the W3C protocol library Modules as Statemachines Since libwww 3.0 Protocol modules implemented as statemachines Part of thread-model Keep track of current state in communication interface

Libwww, the W3C protocol library Modules as Statemachines (2)

Libwww, the W3C protocol library Contents 1.Introduction 2.Structure libwww 3.Programming with libwww –C++ Simulation –APIs and Library Interfaces –Simple Example –More Complex Example 4.Conclusion

Libwww, the W3C protocol library C++ Simulation Construction/destruction –*_new / *_delete (HTRequest_new / HTRequest_delete) Data hiding Inheritance –Explicit pointer casting PRIVATE, PUBLIC Makros

Libwww, the W3C protocol library APIs and Library Interfaces Set of APIs called packages Win32: DLLs Unix: separate static libraries Package interface exported via single include file: WWW*.h Some important packages –Basic Utility Packages –Core Packages –Initialization Packages –Transport Packages –Protocol Packages –Parser Packages

Libwww, the W3C protocol library Simple Example Displays all links in document Applicable to text, html/xml tags, etc. // snippet... HText_registerLinkCallback(foundLink);. HTEventList_loop(request);... foundLink (...) { HTAnchor * dest = HTAnchor_followMainLink(...); char * address = HTAnchor_address(dest); HTPrint("Found link `%s\'\n", address); HT_FREE(address); }

Libwww, the W3C protocol library More Complex Example Rudimentary commandline browser See project

Libwww, the W3C protocol library Contents 1.Introduction 2.Structure libwww 3.Programming with libwww 4.Conclusion –What‘s missing? –Facts about libwww –Personal Opinon

Libwww, the W3C protocol library What‘s missing? Not thread-safe No cookie-jar, only parsing/generation Consistent usage of RegEx C++ representation

Libwww, the W3C protocol library Facts about libwww Who uses libwww? No one? Sample applications on project homepage No reviews, benchmarks, comparisons Not ‚bug free‘ ‚Competitors‘ (mostly UNIX) –WinInet –Libghttp –Libcurl –Libhttp –Neon

Libwww, the W3C protocol library Personal Opinion Typical opensource project Tricky installation ‚Feels‘ old IS old Desperate attempt to reach OOP Non-trivial usage, but very flexible and potent

Libwww, the W3C protocol library Thank you for your attention ?