Идеи шаблонов для веб-службы WCF REST на основе файлов данных - PullRequest
0 голосов
/ 15 марта 2011

У нас есть собственное проприетарное приложение для обработки данных, которое работает на одном из наших серверов, и мы хотим представить его в виде веб-службы, чтобы наши клиенты могли отправлять задания удаленно. По сути, система принимает набор параметров конфигурации и один или несколько файлов данных (количество файлов зависит от конкретного шаблона конфигурации, но обычная конфигурация - 2 файла). Затем приложение берет входные файлы, обрабатывает их и выводит один файл данных результата (все файлы имеют текстовый разделитель / CSV или табуляцию).

Теперь мы хотим представить этот процесс как сервис. Исходя из нашей текущей настройки и существующих платформ, мы довольно уверены, что хотим использовать WCF 4.0 в качестве платформы и, скорее всего, REST для формата сервиса, хотя в какой-то момент может потребоваться реализация SOAP.

Хотя я много читаю по SOA, WCF и REST, меня интересуют другие мысли о том, как смоделировать этот сервис. В частности, отношение работы «один ко многим» с необходимыми файлами для ввода. Кажется, довольно просто смоделировать «работу» в REST с помощью стандартных команд CRUD. Однако предопределенный параметр «тип задания» определяет количество файлов, которые должны быть включены. Тип задания «A» может вызывать два входных файла, в то время как «B» требует 3, прежде чем задание может быть запущено.

Учитывая это, как лучше всего смоделировать работу? Нужно ли включать несколько файлов при первоначальном создании задания? Создаю ли я задание, а затем использую метод «addFile», с помощью которого я могу загрузить необходимое количество файлов?

Затем задания должны будут выполняться асинхронно, поскольку они могут занимать время. После завершения лучше всего просто иметь поле состояния в объекте задания и требовать, чтобы клиент регулярно запрашивал в системе информацию о статусе задания, или, возможно, клиент предоставил URL-адрес для «ping» после завершения задания?

Мы находимся только на этапах планирования обслуживания, поэтому мы будем благодарны за любые идеи.

1 Ответ

1 голос
/ 15 марта 2011

Чтобы смоделировать это для REST, подумайте о ресурсах.Являются ли файлы частью ресурса задания или они являются отдельными ресурсами.

Если это отдельные ресурсы, у меня был бы способ загрузить их отдельно.Как они связываются, зависит от вас - чтобы вы могли иметь возможность связать файл с заданием, когда вы загружаете файл, или у вас есть способ создать ссылки (теперь они обрабатываются как отдельные ресурсы) между существующими файлами и заданиями.

Если ваши файлы не рассматриваются как отдельные ресурсы, я бы включил их в одно задание, как одно создание.

...