Я делаю концептуальное приложение, которое, возможно, однажды станет источником дохода.
Потоки данных диктуют, что должно быть клиент-сервер приложение, информация передаетсямежду клиентами и должны быть сохранены.
У меня есть опыт написания автономных приложений, я смоделировал приложение и написал клиент.Связь с сервером - только заглушка.
Так что теперь у меня есть протокол в виде интерфейса (C #) с вызовами методов.
Четыре из них предназначены для запроса информации, а два - для передачи данных.на сервер.
Данные в классах, которые я хотел бы заморозить и восстановить с другой стороны.
В будущем я хотел бы перенести клиент на другие ОС, поэтому я не хотел бы делать то, что мне нужно, чтобы переписать сервер с нуля, если я не могу избежать этого.
Я также хотел бы обновлять данные в клиенте с неопределенными интервалами.Сегодня я не знаю, как это сделать.
Мое приложение однопоточное, Windows Forms
Мои предположения таковы:
*Я буду использовать TCP / IP в какой-то форме ниже всего.Я должен настроить канал, установить IP-адреса и тому подобное, у меня есть идея, что мне нужно делать.
* Внешний интерфейс сервера будет многопоточным , чтобы разрешитьчтобы более чем один клиент мог общаться с сервером одновременно.Синхронизация будет внутренней по отношению к серверу.
* Прогнозируемый объем данных, максимум : текст 1000 * 1 Кбайт, 100 000 объектов с 4 состояниями.20 000 обновлений / день.Но это путь в будущее.
Может три самых больших вопрос -
1. Протокол связи .Как мне сопоставить вызовы моих методов, которые есть в интерфейсе, с чем-то, что я могу передавать по каналу TCP / IP?
2. Мне нужен совет по хорошему шаблону для сериализации чтенияи запись в «базу данных», база данных не обязательно должна быть сервером sql.
3. Могу ли я позволить серверу отправлять обновления клиенту, не делая его многопоточнымприложение с одним потоком, слушающее только сокет?
Я с радостью обновлю свой вопрос, если потребуется дополнительная информация.
Заранее спасибо.
Gorgen