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

 

Теперь конкретизируем  каждый элемент. Сначала нужно ввести соглашения о терминах.

  • Система -  часть программы, которая отвечает за какую-либо "глобальную" задачу. В  нашей программе выделяться четыре системы: сетевая, анализа и обработки,  отображения и управления. Системы между собой связаны единым стандартизированным интерфейсом. Этот интерфейс является высокоуровневым, и не зависит от нижнего, транспортного, уровня. То есть, он может быть поверх TCP/IP, быть соглашением на вызовы из DLL, СОМ - интерфейсом или любым сочетанием оных. Эта независимость позволяет организовать как одновременную работу всех систем в составе одного приложения (набор DLL и система управления как *.exe файл), так и полностью распределенную, когда каждая система работает на разных компьютерах и соединены любым сетевым протоколом, поверх которого реализован наш интерфейс. Причем допускается любое сочетание - каждая система на отдельном компьютере, две на одном, третья удаленная и т. д. Не накладывается никаких ограничений на среду в которой функционируют системы - Unix, Windows, Linux, DOS.

Системы в свою очередь состоят из модулей.

  • Модуль - часть системы, связанный с ней своим интерфейсом. Модуль функционирует подобно plug-in в обычных приложениях. Он отвечает за реализацию какой-то одной функции - HTTP, NNTP, SSL, Java, XML. Модуль должен самостоятельно "заявить" системе, что он "умеет", свою версию, и дополнительную служебную информацию. Допускается после "переговора" с системой непосредственная работа двух модулей между собой. Межмодульный интерфейс также должен допускать функционирование на удаленной машине.

Система отображения (рендеринга)

Система отображения состоит из следующих модулей:

  • Модуль отображения. Обеспечивает отображение графической и текстовой информации на устройстве вывода. В простейшем случае может быть просто экземпляром класса TCanvas (Delphi) или дескриптором окна (handle);
  • Модуль управления. Собирает информацию о доступных модулях, свойствах операционной системы и имеет интерфейс с системой управления. К модулю управления в первую очередь обращаются все другие модули, когда они присоединяются к системе, запрашивают данные о других доступных модулях и параметрах системы (ОС, в среде которой происходит функционирование системы). Координирует работу всех модулей.
  • Модули, которые отвечают за конкретные функции - рендеринг текста, поддержку конкретных API (Direct X, Glide, Open GL, X Window), отображения рисунков. Модули могут предлагать альтернативный способ отображения информации, например голосовой вывод, отображение в 3-D пространство.
  • Интерфейсный модуль обеспечивает интерфейс с другими системами и служит для доставки нужной информации из других систем к системе отображения. Также взаимодействует с системой управления.

Система анализа и обработки

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

  • Модуль обработки аналогичен модулю отображения - он просто сначала разделяет работу между различными модулями, а потом их результат собирает воедино и передает интерфейсному модулю для передачи в систему отображения.
  • Модули HTML, XML, CSS, Java, JPEG, GIF и другие обеспечивают обработку каждый своего типа информации.
  • Интерфейсный модуль также аналогичный.

Сетевая система

  • Модули, которые реализуют протоколы, зависят от конкретной ОС и связаны с ее сетевым интерфейсом.
  • Модуль обработки кодировок должен уметь перекодирововать на лету документ, автоматически распознавая кодировку исходного документа.
  • Обработка ошибок HTTP - например, если запрошенный документ не обнаружен, то, если возможно, подняться на уровень вверх (отобразить страницу по умолчанию) или провести поиск документа или домена.
  • Модель кеша должен обеспечить ускорение загрузки страниц, фоновою подкачку тех документов, которые могут понадобиться.
  • Локальный модуль DNS должен ускорить работу с наиболее часто посещаемыми узлами.

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

  • способность функционировать в данной ОС;
  • реализация заявленной функциональности;
  • обеспечение внешнего интерфейса;



 

  Copyright ©: 2001. Все права защищены, По всем вопросам обращайтесь Лозовюк Александр или Alex Strong