[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-19 Thread Arthur Pemberton

2009/3/19 Andreas Jung li...@zopyx.com:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 19.03.2009 6:49 Uhr, Arthur Pemberton wrote:


 SQLAlchemy needs a concept of Data Transfer Objects so that it can be
 easily transmitted and reconstituted as necessary and everyone doesn't
 have to reimplemented the idea themselves. There are many cases where
 one might want to transfer a model from a data source on a server side
 to a client, and vice verse.

 Which usecases? If you want to transfer objects over the wire from one
 app to another, you can also attach the database directly. You you work
 with serialized
 versions of the objects in some way...should be sufficient enough for most
 cases.


Any use case when the client doesn't have access to the database, but
the client app needs to manipulate the data of the model but not the
model itself.

Client requests something
Server uses SQLAlchemy to query data
Server sends resulting entity collection to client via some form of RPC
Only the entity data is transmitted
Client makes modification, and wants to save the changes
Model, with changes is sent back to server
Server remaps it and saves it

The client shouldn't be able to save the entity from their end. But
the developer shouldn't have to worry about making the entity lighter
every time as well.

I made two attempts at a similar question myself:
http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg10642.html
http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg12582.html

-- 
Fedora 9 : sulphur is good for the skin
( www.pembo13.com )

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-19 Thread Andreas Jung
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19.03.2009 8:32 Uhr, Arthur Pemberton wrote:
 2009/3/19 Andreas Jung li...@zopyx.com:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 19.03.2009 6:49 Uhr, Arthur Pemberton wrote:

 SQLAlchemy needs a concept of Data Transfer Objects so that it can be
 easily transmitted and reconstituted as necessary and everyone doesn't
 have to reimplemented the idea themselves. There are many cases where
 one might want to transfer a model from a data source on a server side
 to a client, and vice verse.
 Which usecases? If you want to transfer objects over the wire from one
 app to another, you can also attach the database directly. You you work
 with serialized
 versions of the objects in some way...should be sufficient enough for most
 cases.
 
 
 Any use case when the client doesn't have access to the database, but
 the client app needs to manipulate the data of the model but not the
 model itself.
 
 Client requests something
 Server uses SQLAlchemy to query data
 Server sends resulting entity collection to client via some form of RPC
 Only the entity data is transmitted
 Client makes modification, and wants to save the changes
 Model, with changes is sent back to server
 Server remaps it and saves it
 
 The client shouldn't be able to save the entity from their end. But
 the developer shouldn't have to worry about making the entity lighter
 every time as well.


As said: serialization is easy to implemented and JSON is your friend
for transfering stuff over the net.

Andreas
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAknB9YoACgkQCJIWIbr9KYxewACfdrBHZ82+gEbV8lGavkXe7zWe
RpIAoIXGlqhitwwiRFgWdVzGbT8sT/8P
=sbo+
-END PGP SIGNATURE-

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd.  Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:i...@zopyx.com
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-19 Thread Arthur Pemberton

On Thu, Mar 19, 2009 at 2:34 AM, Andreas Jung li...@zopyx.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 19.03.2009 8:32 Uhr, Arthur Pemberton wrote:
 2009/3/19 Andreas Jung li...@zopyx.com:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 19.03.2009 6:49 Uhr, Arthur Pemberton wrote:

 SQLAlchemy needs a concept of Data Transfer Objects so that it can be
 easily transmitted and reconstituted as necessary and everyone doesn't
 have to reimplemented the idea themselves. There are many cases where
 one might want to transfer a model from a data source on a server side
 to a client, and vice verse.
 Which usecases? If you want to transfer objects over the wire from one
 app to another, you can also attach the database directly. You you work
 with serialized
 versions of the objects in some way...should be sufficient enough for most
 cases.


 Any use case when the client doesn't have access to the database, but
 the client app needs to manipulate the data of the model but not the
 model itself.

 Client requests something
 Server uses SQLAlchemy to query data
 Server sends resulting entity collection to client via some form of RPC
 Only the entity data is transmitted
 Client makes modification, and wants to save the changes
 Model, with changes is sent back to server
 Server remaps it and saves it

 The client shouldn't be able to save the entity from their end. But
 the developer shouldn't have to worry about making the entity lighter
 every time as well.


 As said: serialization is easy to implemented and JSON is your friend
 for transfering stuff over the net.

I didn't say that that wouldn't work. I said that that is a common
enough need that it should probably be fitted into SQLAlchmey so
everyone doesn't have to reinvent it, So that I can transfer my
entities in TwistedMatrix as easily as in XML-RPC or JSON-RPC


-- 
Fedora 9 : sulphur is good for the skin
( www.pembo13.com )

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-19 Thread 一首诗

The actual reason why I need XML RPC is not because I need RPC.
Actaully I need XML.

I need to represent SA objects in text format so systems using
programming language other than python could decode them.

On Mar 19, 1:27 pm, Andreas Jung li...@zopyx.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 19.03.2009 5:24 Uhr, 一首诗 wrote:



  This is my ORM class definition:

  #=
  class User(Base):
  __tablename__ = 'b_taa_user'

  user_id = Column(Integer, primary_key=True, autoincrement=True,
  nullable=False) # 用户ID
  user_name = Column(Unicode(255), unique=True, nullable=False,
  server_default=) # 用户名称
  user_password = Column(Unicode(255), nullable=False,
  server_default=) # 用户密码
  email = Column(Unicode(255), nullable=False, server_default=) # 邮
  箱
  mobile = Column(Unicode(255), nullable=False, server_default=) #
  手机
  phone = Column(Unicode(255), nullable=False, server_default=) # 电
  话

  def __init__(self, user_name = ):
  self.user_name = username
  #=

  I made some debug by the code below:

  #=

  #!/usr/bin/python

  import xmlrpclib
  from blf.model import User

  u = User('333')
  s = xmlrpclib.dumps((u,), methodresponse=True, allow_none=True)
  print s
  #=

  Finally, I found that the first problem is :  xmlrpclib only serialize
  type *instance*.
  But to my surprise, when I check type of u, it's a *class* object.
  Don't know why ...

 Sending mapped instances over XMLRPC is basically nonsense. XMLRPC is
 designed for transporting elementary datatypes over the wire in order to
 invoke a remote method. It is not designed for sending instances of some
 class and not for sending Python pickles. No idea what you are trying to
 accomplish. Consider converting a mapped instance to dict and sending
 this dict serialized in JSON format to a remote XMLRPC server.

 - -aj
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.9 (Darwin)
 Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org/

 iEYEARECAAYFAknB17UACgkQCJIWIbr9KYwARgCeJ1VuU6Gi9p+GVkYQzZiVWMd3
 aJoAoMwJUc8lIyOBhDwJVq3/L3QzuRoK
 =aihX
 -END PGP SIGNATURE-

  lists.vcf
  1KViewDownload
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-18 Thread 一首诗

This is my ORM class definition:

#=
class User(Base):
__tablename__ = 'b_taa_user'

user_id = Column(Integer, primary_key=True, autoincrement=True,
nullable=False) # 用户ID
user_name = Column(Unicode(255), unique=True, nullable=False,
server_default=) # 用户名称
user_password = Column(Unicode(255), nullable=False,
server_default=) # 用户密码
email = Column(Unicode(255), nullable=False, server_default=) # 邮
箱
mobile = Column(Unicode(255), nullable=False, server_default=) #
手机
phone = Column(Unicode(255), nullable=False, server_default=) # 电
话

def __init__(self, user_name = ):
self.user_name = username
#=

I made some debug by the code below:

#=

#!/usr/bin/python

import xmlrpclib
from blf.model import User

u = User('333')
s = xmlrpclib.dumps((u,), methodresponse=True, allow_none=True)
print s
#=

Finally, I found that the first problem is :  xmlrpclib only serialize
type *instance*.
But to my surprise, when I check type of u, it's a *class* object.
Don't know why ...




On Mar 18, 6:50 pm, Noah Gift noah.g...@gmail.com wrote:
 On Wed, Mar 18, 2009 at 11:46 PM, 一首诗 newpt...@gmail.com wrote:

  Hi,

  I am trying to pass SqlAlchemy objects to client with XML RPC, but it
  seems that that's not very easy.

 It depends on what you are trying to do, and what error messages you are
 getting, for anyone to help.  I am using XML RPC with SQLAlchemy right now,
 and I am, in fact, passing objects in.  I wrote a metaclass that calls back
 to XML RPC, and takes the ugly nested dictionary and returns back a nifty
 class pre-populated with attributes I need to fill out.  When I set each
 attribute, it then populates __dict__.  At that point, I simply pass that
 back to XML RPC.  Works great.



  The reason why I have to do this is that my client is written in
  javascript and running on a web page.  So it could not use anything
  other than text based protocols, such as XML RPC, SOAP, or JSON.

  I tried pyamf, and it works pretty good with SA,  but I can't use amf
  with javascript.

  Is there any possible solutions with my problem?

 --
 Cheers,

 Noah
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-18 Thread Andreas Jung
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19.03.2009 5:24 Uhr, 一首诗 wrote:
 This is my ORM class definition:
 
 #=
 class User(Base):
 __tablename__ = 'b_taa_user'
 
 user_id = Column(Integer, primary_key=True, autoincrement=True,
 nullable=False) # 用户ID
 user_name = Column(Unicode(255), unique=True, nullable=False,
 server_default=) # 用户名称
 user_password = Column(Unicode(255), nullable=False,
 server_default=) # 用户密码
 email = Column(Unicode(255), nullable=False, server_default=) # 邮
 箱
 mobile = Column(Unicode(255), nullable=False, server_default=) #
 手机
 phone = Column(Unicode(255), nullable=False, server_default=) # 电
 话
 
 def __init__(self, user_name = ):
 self.user_name = username
 #=
 
 I made some debug by the code below:
 
 #=
 
 #!/usr/bin/python
 
 import xmlrpclib
 from blf.model import User
 
 u = User('333')
 s = xmlrpclib.dumps((u,), methodresponse=True, allow_none=True)
 print s
 #=
 
 Finally, I found that the first problem is :  xmlrpclib only serialize
 type *instance*.
 But to my surprise, when I check type of u, it's a *class* object.
 Don't know why ...
 
 

Sending mapped instances over XMLRPC is basically nonsense. XMLRPC is
designed for transporting elementary datatypes over the wire in order to
invoke a remote method. It is not designed for sending instances of some
class and not for sending Python pickles. No idea what you are trying to
accomplish. Consider converting a mapped instance to dict and sending
this dict serialized in JSON format to a remote XMLRPC server.

- -aj
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAknB17UACgkQCJIWIbr9KYwARgCeJ1VuU6Gi9p+GVkYQzZiVWMd3
aJoAoMwJUc8lIyOBhDwJVq3/L3QzuRoK
=aihX
-END PGP SIGNATURE-

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd.  Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:i...@zopyx.com
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard



[sqlalchemy] Re: Any one tried to use SqlAlchemy with XML RPC?

2009-03-18 Thread Andreas Jung
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19.03.2009 6:49 Uhr, Arthur Pemberton wrote:

 
 SQLAlchemy needs a concept of Data Transfer Objects so that it can be
 easily transmitted and reconstituted as necessary and everyone doesn't
 have to reimplemented the idea themselves. There are many cases where
 one might want to transfer a model from a data source on a server side
 to a client, and vice verse.

Which usecases? If you want to transfer objects over the wire from one
app to another, you can also attach the database directly. You you work
with serialized
versions of the objects in some way...should be sufficient enough for most
cases.

- -aj

- -- 
ZOPYX Ltd.  Co. KG - Charlottenstr. 37/1 - 72070 Tübingen - Germany
Web: www.zopyx.com - Email: i...@zopyx.com - Phone +49 - 7071 - 793376
Registergericht: Amtsgericht Stuttgart, Handelsregister A 381535
Gesch
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAknB3j4ACgkQCJIWIbr9KYysHQCfTuXFRZDIF4IBsL6UGA7ZYbEO
CPIAoOFK4wA3mAmfuoR6byTWh9ngUpGc
=U7aQ
-END PGP SIGNATURE-

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd.  Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:i...@zopyx.com
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard