сеть для стахановцев ПАЛАГИН АНТОН AKA TONY Спецвыпуск: Хакер, номер #065, стр. 065-012-5 mono Львиная доля этой статьи потрачена на обзоры технологий Microsoft, но только не думай, что только они заботится о будущем технологий распределенных систем. В качестве своей базы все описанные технологии используют открытый стандарт SOAP. Доступ к web-службам возможен с любой платформы и любого инструментального средства. Для их разработки совсем не обязательно пользоваться технологиями MS. Вот, пожалуйста — бери решения от IBM или Apache. Повышенный интерес системных интеграторов к .NET и возможностям, предоставляемым этой платформой, связан с надеждами на проект mono. Следовательно, он связан и с возможностью использовать технологию с открытым кодом для разработки современных кросс-платформенных распределенных приложений. Напомню, Mono — это кросс-платформенная реализация .NET, С# и CLI, совместимая с .NET Framework 1.1. Последняя версия 1.1.13 датируется 11 января 2006 года, поддерживает ADO.NET, позволяет создавать приложения ASP.NET, используя в качестве хоста Apache. Разработка Mono стала возможной благодаря тому, что технологии .NET стандартизированы ECMA. В отношении будущей коммуникационной технологии Indigo (а также графического ядра Avalon) Microsoft придерживается закрытой стратегии и, скорее всего, будет заставлять разработчиков портов лицензировать эти технологии. xml-rpc Если особенности выбранных аппаратных или программных платформ не позволяют использовать ни одну из современных технологий построения распределенных приложений, можно использовать стандарт XML-RPC, отпочковавшийся от SOAP, — облегченный вариант сериализации данных о методах, вызываемых на стороне сервера, и возвращаемых ими данных. Приведу пример пакетов, которыми обмениваются клиент с сервером при вызове уже описанного метода hello() (использован XML-RPC): <? xml version="1.0"?> <methodCall> <methodName>hello</methodName> <params> </params> </methodCall> Получив этот пакет XML, сервер пропарсит его, найдет и вызовет метод hello, после чего вернет следующий пакет. <? xml version="1.0"?> <methodResponse> <params> <param> <value> <string>Hello world!!!</string> </value> </param> </params> </methodResponse> В качестве типов данных можно использовать: строковый тип (тег string), целый тип (int), логический (bool), с плавающей точкой (double), временной штамп (dateTime.iso8601), двоичные данные (base64), структуры (struct) и массивы (array). Если в ходе работы вызываемого метода произошла ошибка, то можно вернуть XML-документ следующего содержания. <? xml version="1.0"?> <methodResponse> <fault> <value> <string>Поздороваться невозможно в связи с наступлением Апокалипсиса</string> </value> </fault> </methodResponse> Если функциональность, предоставляемая XML-RPC, кажется тебе недостаточной, разрабатывай собственную спецификацию, а основой для нее станут изложенные мной идеи |