GAE是一个PaaS,因此像RMI(或者它在python中的等价物)这样的东西目前还不存在。我目前正在使用一种自定义标记语言来保存基本数据类型并帮助解析器验证数据。它是一个简单的键值结构,如下所示:"key/subkey1/.../subkeyn":()"value";
解析器读取键、值和数据类型,并创建一个嵌套对象的层次结构,该结构复制响应中的层次结构(目的是通过请求obj对对象“key/../subkeyn”进行同步访问)_键.obj_1……生成对象层次结构中的对象)。数据类型用于在创建对象结构期间验证和描述该数据
这可以进一步扩展。例如(我用Java术语,抱歉)我可以创建一个“Sendable”接口,该接口包含A)以串行和可发送的形式放置对象,B)从响应重构对象所需的所有方法。然后,任何实现Sendable的对象都可以通过该协议发送并重建。
例如,假设Sendable接口定义如下(在伪代码中):
^{pr2}$
想象一下有一个类用户(在伪代码中)class User implements Sendable{
string username;
string hash;
string toSendableString(){
return "\"user/username\":(string)\"" + username + "\";"
+ "\"user/hash\":(hash)\"" + hash + "\"";
}
void fromSendable(Object h){
username = h.getvalue("username");
hash = h.getvalue("hash");
}
}
然后在数据类型中,您可以指定类型User,并且解析器在任何时候发现用户数据类型都可以检查它是否是有效的类型(如果它实现Sendable),然后通过调用专用函数创建一个对象。(显然,它必须只传递包含对象的子层次结构)。在