Kwiki Blog

Thu Jul 17 13:57:40 2003 PlesPython


PyTCPWrap - TCP Wrapper for python

Thu Jul 17 13:57:11 2003 PlesPerl

Describe the new page here.

Thu Jul 17 13:56:42 2003 PlesUml

Class Hierarchy

Main Classes

IPlesInterface """











Utility Classes






Dummy Classes (defined by the implementation language)


  • The notation used does not comply with any specific 'standard' of UML notation
  • 'P' prefixed to class name = Ples class


Thu Jul 17 13:56:15 2003 PlesSpecification

ples intends to provide a common conceptual framework for developing REST interfaces to SQL databases in the Perl, Python and PHP scripting languages. The modules will first be designed and defined in terms of UML to provide a language independent framework to work from. The "UML" notation used doesn't necessarily comply with any recognised standard and has been modified so that it can easily be published and edited on-line.

The following basic functionality will be rendered by a ples database interface :

  1. Navigation from root data objects (databases) to tables and associated tables.
  2. Viewing of data from a table through the HTTP GET method.
  3. Addition of new data to a table through the HTTP PUT method.
  4. Updating of existing data in a table through the HTTP POST method.

Example of a Java REST interface to a SQL database

Have a look at the screen shots from sqlrest project to get an idea of how the interface should work.

Thu Jul 17 13:55:47 2003 PlesRoadMap
  • July 2003
    • ples project goes online at Source Forge
    • Launch mailing list and contact people
    • Project planning
  • August 2003
    • Specification finalised
    • UML completed
  • September 2003
    • The first ples implementation will be a REST interface written in Perl to interface with the PostreSQL database via the popular DBI::DBD modules obtainable from CPAN.
    • Coding of first ples interface (ples-pl.pgsql) commences
  • Oktober 2003
    • ples-pl.pgsql alpha released
  • November 2003
    • ples-pl.pgsql beta released
  • January 2003
    • Project status review
Thu Jul 17 13:55:11 2003 PlesWhatIsRest

REST is an acronym for "representational state transfer" - terminology coined for the first time by Roy Fielding in his dissertation. REST is neither a "standard" nor a "protocol" - it is an architectural style or convention. Paul Prescod defines a REST web service aptly as "a web service that delivers its functionality entirely as a set of URI-addressable resources using the syntax and semantics of the HTTP protocol" - visit for more information and some comparisons to SOAP and XML-RPC.

This project was inspired in part by sqlrest- a Java based REST project hosted at Source Forge.

The advantages of a REST based web service are simplicity, security and scalability. It doesn't rely on a special protocol layer such as SOAP or XML-RPC and exposes its API dynamically in terms of XML encoded data and links to XML encoded data. It uses a simplified set of semantics as defined in the HTTP protocol i.e. a reduced instruction set of GET, PUT, POST and DELETE. Simple firewall configurations can be used to protect and control access to data.



Thu Jul 17 13:54:30 2003 Home

What is ples? >> ples is a set of ReSTful HTTP interfaces to commonly used Open Source databases for the Perl, Python and PHP scripting languages. An application exposes its database to other applications as a REST web service i.e. URI-addressable resources. ples will provide a simple HTTP based mechanism for interoperability between applications and databases over networks and the Internet.

What is ples-utils? >> A hodgepodge of simple, small but very useful programs written in Perl, Python or PHP. For example - untill quite recently there was no way to access hosts.deny/allow from within Python - now we have PyTCPWrap, courtesy of the ples project.

Latest News

  • Change the license agreement for ples to LGPL on 2004-10-21.
  • Can't believe it - September 2004 and yet not one single line of code written. OK - that is if you don't count PyTCPWrap - a wrapper for libwrap (TCP wrappers) which is going to be hosted under ples-utils. Keep watching this space!
  • January 2004. I love to work on this project but - need a little help. The UML is complete (lets rather say good enough to start working) but I don't have time to cut any code. Contact me if you can give a hand!
  • It is mid October and we are little behind schedule. Hopefully the UML will be near complete by end October.
  • First UML framework published on 2003-07-29.
  • The ples project goes online on 2003-07-16.

Open Source Collaboration >> The following pages can be edited on-line (see the KwikiFormattingRules and visit to learn more about a fabulous Kwiki:)

  1. PlesWhatIsRest
  2. PlesSpecification
  3. PlesUml
  4. PlesPerl
  5. PlesPython
  6. PlesPhp.

Please help us to build a solid conceptual framework for this project. Also visit the Source Forge project page for the usual stuff about contacting and joining the development team.