Я ищу информацию о моей текущей архитектуре проекта. Есть три компонента: сервер, рабочий стол и мобильное устройство.
У меня 2 гола:
1) Отправка данных (приблизительно не более 100 КБ текста) с рабочего стола (многоплатформенное клиентское приложение, работающее в Windows XP / Vista / 7 и Mac OS X) на сервер (Windows Server 2008, IIS 7 WCF RESTful сервис) для сохранения в базе данных (Sql Server). Службы должны быть масштабируемыми, поскольку число настольных устройств и частота, с которой они отправляют данные, неизвестны.
2) Сервис для извлечения данных из базы данных (Sql Server) и отправки на мобильное устройство (приложение Iphone и Android. Размер сообщения не более 100 КБ текста). Служба должна быть масштабируемой, поскольку число мобильных устройств и частота, к которой они подключаются, неизвестны.
Мое предлагаемое решение:
Серверная часть (Sql Server и Windows Server 2008) :
Я рассматриваю службы WCF RESTful JSON для связи с настольными приложениями и мобильными приложениями. Мне нравится WCF, потому что я самый опытный в C #, у меня есть некоторый опыт внедрения WCF, после некоторых исследований выясняется, что все технологии, используемые для платформ (Windows XP / Vista / 7 и Mac OS X), могут легко взаимодействовать со службой WCF RESTful.
- Какие-либо фундаментальные проблемы высокого уровня со службой WCF в этом сценарии?
- Я реализовал WCF только на компьютере под управлением Windows Server 2003 с ~ 800 устройствами, подключающимися каждые 15 минут. Сервер был физическим внутренним сервером, работающим в частной сети. Мне нужно, чтобы это решение было размещено и масштабируемо. Какие-либо рекомендации для хостинга Windows Server 2008? Есть ли лучшая технология для размещения службы? (Я не очень знаком с тем, как работает облачный контент)
Службы будут сохранять и извлекать данные с сервера SQL. Я хотел бы использовать LINQ to SQL в качестве уровня доступа к данным. Насколько я понимаю, с SQL-сервером связаны большие лицензионные сборы, поэтому мне, возможно, придется перейти на SQL Server Express.
- Я бы предпочел, чтобы службы WCF и база данных размещались отдельно (2 разных компьютера). Любые рекомендации для хостинга сервера sql (или экспресс)? Есть ли хостинг, который может лучше масштабироваться для моей базы данных? Имеет ли смысл хранить их на двух разных машинах?
Рабочий стол (на стороне клиента)
Я должен разрабатывать для Windows XP / Vista / 7 и Mac OS X. Я планирую написать приложение .net для запуска на компьютерах с Windows. Я все еще в воздухе, если собираюсь написать (и выучить: P) XCode или попробовать моно. Любые кроссплатформенные идеи?
- Могу ли я ожидать каких-либо фундаментальных проблем при обращении настольных приложений к моим службам RESTful WCF?
Мобильные приложения
Требуется разработчик для iPhone и Android. Существует множество примеров выполнения вызовов службы WCF RESTful с использованием Objective C и Android SDK. Я рассматриваю возможность кроссплатформенности (т.е. Appcelerator). С высокого уровня кажется, что эти мобильные кроссплатформены создали слой сценариев Java, который работает как с IPhone, так и с Android!
Есть мысли об использовании кросс-платформенной технологии для написания ОДНОГО мобильного приложения для iPhone и Android?
Есть ли какие-либо фундаментальные проблемы с вызовом службы WCF RESTful в javascript?
Извините за довольно длинный пост. Я никогда не проектировал решение такого размера. Все отзывы приветствуются.
Спасибо!