Kwiki Blog

 
Tue Jul 29 19:46:09 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 www.kwiki.org 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.

Fri Jul 18 07:21:43 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:58:19 2003 PlesPhp

Describe the new page here.

Thu Jul 17 13:57:40 2003 PlesPython

python-utils

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 """

PStub

PConfig

PUri

PResource

PRecordSet

PRecord

PHandler

PParser

PValidator

PStatus

Utility Classes

PDbTableField

PSqlQuery

PProtocol

PAddress

PParam

Dummy Classes (defined by the implementation language)

Legend

  • 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.