Thread

  1. creating a custom server

    Victor Ivanov <v0rbiz@icon.bg> — 2001-10-18T09:17:00Z

        Hi!
        
        First, sorry if this is off topic.  Second, WARNING: broken english
    ahead :)
    
        Is it possible to create a 'custom' server which can accept normal
    connections from normal clients, but use different language (or just
    'proxy' the queries to the real server)?  A friend of mine told me this
    is a feature of some commercial sql server.  What I acutaly want to do
    is to add another layer between the client and the server.
    
        For example, a client connects and issues a query like 'show sessions'.
    My server checks if the client has permission (according to a table in
    postgres) and then 'translates' the query to 'select * from sessions' or
    something else.  The result is then sent back to the client (possibly
    modified).
    
        Another way to do this is to get the communication library and use
    it in my application...
    
        Any ideas/hints/etc will be appreciated.
    
    -- 
    Players win and winners play
    Have a lucky day
    
    
  2. Re: creating a custom server

    Keary Suska <hierophant@pcisys.net> — 2001-10-18T18:01:04Z

    Off the top of my head, I don't recall any specific 'middleware'
    implementations that do this exactly, but it wouldn't be entirely difficult
    to make one of your own. If you are familiar with Perl or Python, making a
    parallel processing network server is not rocket science, and you have
    complete control over the desired protocol.
    
    Keary Suska
    Esoteritech, Inc.
    "Leveraging Open Source for a better Internet"
    
    > From: Victor Ivanov <v0rbiz@icon.bg>
    > Date: Thu, 18 Oct 2001 12:17:00 +0300
    > To: pgsql-general@postgresql.org
    > Subject: [GENERAL] creating a custom server
    > 
    > Hi!
    > 
    > First, sorry if this is off topic.  Second, WARNING: broken english
    > ahead :)
    > 
    > Is it possible to create a 'custom' server which can accept normal
    > connections from normal clients, but use different language (or just
    > 'proxy' the queries to the real server)?  A friend of mine told me this
    > is a feature of some commercial sql server.  What I acutaly want to do
    > is to add another layer between the client and the server.
    > 
    > For example, a client connects and issues a query like 'show sessions'.
    > My server checks if the client has permission (according to a table in
    > postgres) and then 'translates' the query to 'select * from sessions' or
    > something else.  The result is then sent back to the client (possibly
    > modified).
    > 
    > Another way to do this is to get the communication library and use
    > it in my application...
    > 
    > Any ideas/hints/etc will be appreciated.
    > 
    > -- 
    > Players win and winners play
    > Have a lucky day
    > 
    > ---------------------------(end of broadcast)---------------------------
    > TIP 6: Have you searched our list archives?
    > 
    > http://archives.postgresql.org
    > 
    
    
    
  3. Re: creating a custom server

    Alex Pilosov <alex@pilosoft.com> — 2001-10-18T22:01:15Z

    On Thu, 18 Oct 2001, Keary Suska wrote:
    
    > > First, sorry if this is off topic.  Second, WARNING: broken english
    > > ahead :)
    > > 
    > > Is it possible to create a 'custom' server which can accept normal
    > > connections from normal clients, but use different language (or just
    > > 'proxy' the queries to the real server)?  A friend of mine told me this
    > > is a feature of some commercial sql server.  What I acutaly want to do
    > > is to add another layer between the client and the server.
    > > 
    > > For example, a client connects and issues a query like 'show sessions'.
    > > My server checks if the client has permission (according to a table in
    > > postgres) and then 'translates' the query to 'select * from sessions' or
    > > something else.  The result is then sent back to the client (possibly
    > > modified).
    What your friend is talking about is probably Sybase Open Server.
    
    This is usually done using some sort of middleware, but in case of
    postgresql, you can do something similar to it using plperl.
    
    The idea here is not just translation of queries, but providing
    higher-level abstraction for client-server interaction, not just a query
    taking a finite number of arguments that returns recordset, but a request
    containing serialized data structure returning another serialized data
    structure. Each structure can be arbitrarily complex (hash of array of
    hashes, for example), as long is it can be serialized and deserialized.
    
    pl/perl is a perl programming language for postgresql, you can write a
    stored procedure that will accept a binary string that represents a
    serialized structure, and returns the same.
    
    
    Let me know if I can explain it further.
    
    -alex