воскресенье, 4 декабря 2011 г.

Интерфейс

Узкое место любой системы, включающей в себя регламенты и технические средства - это интерфейс взаимодействия и граница соприкосновения регламентов и техники. Сегодня я убедился на собственном примере в том, что это действительно очень узкое место.

На ССиНМП (станциях скорой и неотложной медицинской помощи) существуют так называемые консультативные кардиопульты, куда бригады скорой помощи могут передавать снятые у пациентов кардиограммы посредством прикольного устройства типа модема, соединяющегося с другим устройством, похожим на рацию и большой смартфон одновременно (а можно и по обычному телефону). И там, на кардиопульте, дежурный кардиолог уточняет диагноз, поставленный врачами. То есть в идеале это работает так: человек вызывает "скорую помощь", она приезжает, бригада снимает ЭКГ, передаёт на кардиопульт, перекидывается страшными медицинскими терминами с кардиологом оттуда, и либо человека забирают в стационар, либо, соответственно, не забирают.

На деле это выглядит примерно так: приезжают, снимают кардиограмму, и... и сидят и названивают на кардиопульт. В течение сорока минут не могут дозвониться. Я предлагаю им чай, они нервничают и отказываются. Звонят ответственным, дежурным, и так далее, в итоге спустя ещё минут десять с кардиопульта перезванивают на домашний телефон пациента, прикольное устройство громко жужжит и пищит на радость соседям минуты две. Дежурный кардиолог подтверждает диагноз ("паникёр"), врачи "скорой" предлагают на прощание вколоть обезболивающее, я вежливо отказываюсь, они уезжают. Как раз к этому моменту вскипает чайник, чтоб можно было напоить врачей чаем.

Регламент требует передачи кардиограммы на кардиопульт; это и понятно, почему. Но техническая сторона вопроса слабовата и заставляет врачей сидеть и ждать по часу, пока наконец не будет передана кардиограмма. А проблема не в том, что все эти устройства медленные или устаревшие, не, с этим всё нормально и выглядит вообще на высочайшем уровне, как в сериале "ER", который шёл несколько лет назад. Проблема в том, что бригад много, а кардиопультов - мало. Это, кстати, само по себе следствие проблемного взаимодействия технического интерфейса и бюрократического.

Вывод какой из этого следует? Во всех программных продуктах надо искать и находить подобные узкие интерфейсы. Сокеты, соединения с БД или внешними службами - все эти интерфейсы взаимодействия двух сред и границы однородностей являются узкими местами, на которых могут быть затыки. Минимизация их количества и повышение качества и скорости их работы - одна из важнейших задач проектирования архитектуры ПО. Поэтому ради повышения скорости и отказоустойчивости можно выкидывать нахер всякие паттерны, дополнительные навороты, уровни абстракции и всё то, к чему обычно лежит душа. Правило простое: чем система проще, тем она надёжнее и быстрее.

Комментариев нет:

Отправить комментарий

Ублюдочный Гугл поломал форму комментариев. Извините.