是否有设计模式可以用来在 C++ 中实现 RPC(客户端-服务器)?
我正在开发一个个人项目,它是 C++ 中的 RPC(客户端-服务器)。 RPC 将通过 TCP/IP 或 HTTP 进行通信。 RPC 的规范在这里:
http://groups .google.com/group/json-rpc/web/json-rpc-2-0
我想知道是否存在现有的设计模式(或模式组合)可以帮助我生成一个干净的和灵活的设计。如果有代码示例、UML 图或文章,我将不胜感激。
谢谢。
I'm working on a personal project which is an RPC (client-server) in C++. The RPC will communicate over TCP/IP or HTTP. The spec of the RPC is here :
http://groups.google.com/group/json-rpc/web/json-rpc-2-0
I'm wondering if there is an existing design pattern (or a combination of pattern) that could help me to produce a clean and flexible design. I will appreciate to have code examples, UML diagrams, or articles.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我会选择《观察家》。
详细信息和图表。
I would go for Observer.
Details and diagrams.
目前尚不清楚您询问的是高级设计(观察者模式、JSON/XML 处理技术等)、低级设计(套接字、HTTP 客户端/服务器处理等)还是两者兼而有之。
如果对包括可扩展性在内的较低级别方面感兴趣,可能值得研究 ASIO 背后的设计和动机:http://think-async.com/Asio/asio-1.3.1/doc/asio/overview.html 。
It's not clear if you asking in regards to high level design (observer patterns, JSON/XML processing techniques, etc.), low level design (sockets, HTTP client/server handling, etc.), or both.
If interested in lower level aspects including scalability, it might be worthwhile to study the design and motivations behind ASIO: http://think-async.com/Asio/asio-1.3.1/doc/asio/overview.html .
您可能需要客户端上的 代理 来代表任何服务器端并使其可在本地调用您将调用的方法。
在幕后,抽象工厂可用于封装使用选择的具体网络连接的提供配置或请求的协议(TCP、HTTP)。
You are probably going to need a Proxy on the client to represent and make callable locally any server-side methods that you will be calling.
Under the covers, Abstract Factory could be useful to encapsulate provision of a concrete network connection that is selected using a configured or requested protocol (TCP, HTTP).