Представление команд интерфейса командной строки в коде: реализация «базы данных», где запрос и результат получаются из проприетарных команд CLI - PullRequest
3 голосов
/ 21 февраля 2010

Проблемный домен:

Я работаю над новой версией Java-приложения, которое подключается через SSH к проприетарному интерфейсу командной строки (CLI) на платформе Linux. Все на платформе, что я хотел бы сделать или знать, доступно только через команды CLI и стандартный вывод.

Одна из доступных команд извлекает информацию из внутренней базы данных (без использования SQL) со следующими аргументами команды: запрос, подзапрос, формат результата и предпочтение сортировки.

Рассматриваемое решение:

Я хотел бы представить API, который инкапсулирует низкоуровневые подробности поведения SSH / CLI и достичь следующего:

  • Устранить текущий подверженный ошибкам метод встроенных строк запроса (в настоящее время очень подверженный опечаткам).
  • Сделайте API интуитивно понятным, поскольку текущие форматы запросов и команд не совсем понятны.
  • Предоставить непротиворечивую ошибку и результат ответов.

Я рассматриваю возможность создания построителя запросов и классов ответов на самом низком уровне, которые реализуют поведение SSH / CLI; затем создаем слой выше этого уровня, чтобы разрешить поиск атрибутов с платформы по категориям атрибутов (по сравнению с таблицами базы данных).

Вопрос:

Я копался в своей книге «Банды четырех» и других ресурсах, чтобы найти какие-либо разумные подходы, которые могли бы стать отправной точкой; также просматривает информацию о синтаксических деревьях.

Прежде чем я обнаружу, что внедряю «SQL для проприетарной платформы», я хотел узнать, есть ли у кого-нибудь какие-либо советы, аналогичный опыт, ресурсы или другие материалы для решения этой проблемы. Будем благодарны за любые мысли о реализации, доступных платформах, обработке CLI или других ресурсах.

Ответы [ 2 ]

1 голос
/ 24 февраля 2010

Я нашел то, что искал после того, как наткнулся на другой вопрос: ID 2068478 в Шаблон объекта запроса (Design Pattern) , что также привело меня к шаблону "Репозиторий":
http://martinfowler.com/eaaCatalog/repository.html

Здесь приведен пример шаблона объекта запроса с использованием C # и синтаксического дерева: http://www.lostechies.com/blogs/chad_myers/archive/2008/08/01/query-objects-with-the-repository-pattern.aspx

Примечание. Я попытаюсь обновить пример, если это возможно.

Спасибо,

-bn

1 голос
/ 21 февраля 2010

Не больно смотреть на руководство Sun / Oracle Для авторов писем . Даже если JDBC API не подходит, вы в конечном итоге придумаете что-то подобное. Вы даже можете использовать некоторые из множества существующих инструментов JDBC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...