2010-11-03 1 views
1

Я работаю над личным проектом, который является RPC (клиент-сервер) на C++. RPC будет обмениваться данными через TCP/IP или HTTP. В спецификации СРП здесь:Есть шаблоны проектирования, которые я могу использовать для реализации RPC (клиент-сервер) в C++

http://groups.google.com/group/json-rpc/web/json-rpc-2-0

мне интересно, если есть существующий шаблон дизайна (или сочетание рисунка), которые могли бы помочь мне, чтобы получить чистый и гибкий дизайн. Я буду признателен за примеры кода, UML-диаграммы или статьи.

Спасибо.

+0

В чем смысл этого? Вы используете неправильный формат сериализации (не мыло) и неправильную среду выполнения (без отражения). Конкурентоспособность C++ просто не имеет значения, когда у вас есть миллисекунды сетевой латентности. –

+1

1) Неверная сериализация: потому что мне больше нравится синтаксис JSON, чем XML (менее подробный). 2) Неверное время выполнения (без отражения): я буду использовать Qt (http://doc.qt.nokia.com/4.7/metaobjects.html) –

+1

>> В чем смысл этого? Как я писал: я делаю это для личного проекта. Итак, главное - узнать что-то новое (Networking, RPC). –

ответ

3

Возможно, на клиенте вам понадобится Proxy, чтобы представлять и разрешать локально любые методы на стороне сервера, которые вы будете вызывать.

Под обложками Abstract Factory может быть полезен для инкапсуляции конкретного сетевого соединения, которое выбирается с использованием сконфигурированного или запрошенного протокола (TCP, HTTP).

0

Это не ясно, если вы спрашиваете в отношении дизайна высокого уровня (модели наблюдателя, методы JSON/XML обработки и т.д.), дизайн низкого уровня (сокеты, обработка клиент/сервер HTTP и т.д.) , или оба.

Если вы заинтересованы в аспектах более низкого уровня, включая масштабируемость, возможно, стоит изучить дизайн и мотивацию ASIO: http://think-async.com/Asio/asio-1.3.1/doc/asio/overview.html.

+0

Это более высокий уровень. Я буду повторно использовать существующую библиотеку для обработки JSON. –

Смежные вопросы