Введение

 

Цель книги

При создании книги мы преследовали единственную цель — научить Delphi-программистов создавать интерактивные Интернет- ресурсы. В книге охвачен большой круг вопросов, связанных с созданием серверных модулей, взаимодействующих с клиентской средой как посредством стандартных методов WWW, так и на базе гибких технологических решений — сокетов. Описанные технологии представляют собой ключевые базисные элементы любой распределенной системы, поэтому книга будет полезна программистам, создающим как интерактивные сайты, так и информационные системы, внедряемые на базе локальных и глобальных сетей.

 

Для кого создана эта книга

Поскольку программирование — это область, где обучение происходит от простого к сложному, то и мы, при изложении материала, рассчитывали на определенный уровень подготовки читателя. Для успешного овладения знаниями, содержащимися в книге, прежде всего, необходимо иметь элементарные навыки работы со средой Delphi, неважно какой версии. Эти навыки могут быть как самыми начальными — ориентирование в рабочей области Delphi, знание основ объектно-ориентированного программирования и языка Object Pascal, так и продвинутые в каком-либо направлении — например, работа с базами данных или окнами на уровне Windows API-функций.

В книге, кроме непосредственного описания процесса создания серверных модулей содержатся основы языков HTML, JavaScript. Причем этот материал максимально сжат с целью обеспечения фильтрации всей избыточной информации. Разумеется, эти главы не заменят, вполне, прочтения полноценных руководств или спецификации, но обращение к ним сбережет ваше время, поскольку подбор материала в них осуществлялся с единственным критерием — максимально быстро научиться делать Web-страницы любого уровня сложности.

 

Структура книги

Книга состоит из трех основных частей. Первая целиком посвящена описанию ряда технологий, которые нашли применение в локальных и глобальных сетях. Следует отметить, что в ней раскрываются только самые простые вопросы. Здесь нет описания последних достижений в области создания распределенных систем. Главное, что мы хотели описать, — это средства, которые будут использовать программисты, создавая интерактивные сайты и сетевые системы. Без них просто нельзя. В то же время, именно на понятиях и технологиях, описанных в этой книге, и базируются различные новшества, получившие путевку в жизнь в последние дни.

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

В главе 1 описаны вопросы самого общего характера, об устройстве сети Интернет, сайтах, протоколах и т. д.

Глава 2 содержит рекомендации по созданию Web-ресурсов. Здесь приведены советы по размещению информации на Web-страницах, а также планированию структуры сайта. Практический раздел данной главы включает описание процесса установки и настройки Web-сервера Apache.

Глава 3 целиком посвящена неотъемлемой стороне любого мало-мальски серьезного Web- pecypca — работе с базами данных. Здесь в сжатой, но очень информативной форме даны основы проектирования и создания баз данных, а также работы с ними. Более того, практический блок данной главы представляет собой описание языка SQL, с примерами готовых к использованию запросов и команд. Автор данной главы — ярый приверженец "чистого" программирования, научит вас работать с базами, используя только богатые возможности языка SQL. Это сделает ваши программы функциональными и гибкими, а исходный код — "прозрачным".

В процессе изложения дальнейшего материала мы будем обращаться к базам данных, применяя описанные в третьей главе сведения, уже на конкретных примерах, работающих в среде клиент-сервер. Следует отметить, что один раз сделав ставку на язык SQL, вы получаете мощный инструмент управления базами данных, практически не зависимо от того, какую конкретно СУБД вы используете, и более того, где она физически расположена — в соседней комнате или на другом континенте. Давайте вместе изучим SQL!

Глава 4 задумывалась как небольшой экскурс в технологию распределенных систем. Постепенно развиваясь и совершенствуясь, вы, скорее всего, скоро перешагнете уровень обычного Web-разработчика и станете писать программы, использующие последние разработки в области многозвенных систем и распределенной обработки информации. Мы всеми силами старались подготовить почву для такого роста. Пример этого — описание в третьей части реализации сервера, работающего с несколькими клиентами. Это уже выходит за рамки классического Web-программирования и является, по сути, созданием двухзвенной системы, распределенной в сети Интернет. В четвертой главе содержится описание основных современных технологий распределенной обработки данных, таких как COM, DCOM и CORBA.

Глава 5 призвана помочь разобраться, как начинать разработку собственных Web-систем. Прекрасно, если у вас есть опыт использования универсального языка моделирования (UML). Однако это достаточно специфичная область, которая не очень часто затрагивает интересы рядового программиста. Поэтому в данной главе поясняются основные конструкции языка UML и на примере информационной системы, фрагменты которой будут реализованы во второй и третьей частях, демонстрируются ключевые этапы проектирования программ. Здесь нет полного описания стадии проектирования, поскольку данная область достаточно сложна и работа с ней, как правило, возлагается на специальных людей в команде программистов.

Главное, что мы стремились достигнуть в этой главе, — не оставить разработчика один на один с технологиями реализации. Это очень важно, поскольку даже опытные программисты часто задаются вопросом — так с чего же собственно начинать? Чтобы такого вопроса не возникало, мы провели описание проектирования информационной системы, начиная с постановки общих целей, построения диаграмм вариантов использования и заканчивая диаграммой классов и требованиями к структуре используемой базы данных. Проведение такого анализа вселяет надежду, что у вас, дорогой читатель, в вашей первой и последующих собственных Web-разработках, этап реализации станет гармоничным следствием проекта, и в результате можно будет сказать — получилось то, что нужно!

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

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

С чего начинается Родина? Раньше каждый школьник знал ответ на этот вопрос. А с чего начинается Web? Наверное, как раз на этот вопрос теперь уверенно ответят большинство ребят — конечно же с HTML.

Этот язык является стандартом для разметки Web-страниц. Ввиду того, что именно он является основным средством передачи информации в среде Web, практическая часть этой книги начинается с описания языка HTML. В главе 6 представлен весь необходимый материал о методах создания Web-с границ любого уровня сложности — от простейших до состоящих из нескольких слоев. Акцент при изложении материала сделан на каскадные таблицы стилей, что избавит вас от осваивания ненужных знаний, касающихся устаревших методов форматирования, и сразу положит в основу создания Web-страниц правила хорошего тона: отделение содержательной составляющей от визуальной.

Глава 7 является продолжением изложения языка HTML, точнее — его конструкций, призванных обеспечивать интерактивное взаимодействие с клиентом. Поскольку книга призвана научить создавать интерактивные ресурсы, описание этих элементов языка выделено в отдельную главу, с целью детального их рассмотрения.

В связи с тем, что разработчики часто желают провести простые операции в рамках Web-взаимодействия на стороне клиента, в главе 8 имеется описание элементов языка JavaScript, которые предназначены для их выполнения. Вам не нужно "выуживать" информацию из различных источников. Здесь описаны наиболее часто используемые возможности этого языка.

Глава 9 представляет собой описание технологии CGI в контексте ее реализации на языке Object Pascal. Здесь представлены все сведения о программировании серверных модулей "на низком уровне". Это значит, что, прочитав эту главу, вы, дорогой читатель, сможете создавать качественные интерактивные ресурсы, не пользуясь различными внешними библиотеками. Преимущество такого подхода заключается в том, что на базе этих знаний можно создавать собственные классы, обеспечивающие взаимодействие с сервером. Кроме того, впоследствии, при освоении некоторых других знаний, вам будет просто создавать собственные Web-серверы.

В принципе, на этом изложение материала можно было бы закончить. К сожалению, многие авторы и останавливаются на уровне использования простого интерфейса. Однако этого недостаточно. Ведь для того, чтобы создавать профессиональные приложения, нужно владеть инструментами, которые обеспечивают:

В главе 10 описываются методы создания Web-систем с использованием возможностей среды Delphi. Особое внимание здесь уделено реализации примера, спроектированного в главе 5, что позволяет создавать собственные проекты, отталкиваясь от уже созданного примера. Несмотря на то, что пример, по сути, является учебным, в нем применены развитые возможности объектно-ориентированного программирования, что демонстрирует возможности глубокой интеграции собственных разработок и библиотек Delphi, предназначенных для работы с Web.

В главе 11 описан процесс отладки серверных модулей. Несмотря на тот факт, что этот процесс является достаточно трудоемким, мы уверены, что практически советы, полученные из собственного опыта, обязательно облегчат вам наладку собственных программ.

Материал третьей части целиком посвящен расширенным вопросам создания Web-систем. Минуя многие сложные аспекты, которые редко требуются рядовому Delphi-программисту, в главе 12 описана технология ActiveX, с готовым примером подготовки и печати счета на стороне клиента.

Глава 13 содержит руководство к созданию сетевых компонентов, обменивающихся между собой информацией через сокеты.

Глава 14 подводит итог проделанной работы по реализации задуманного примера, а затем здесь приводятся рекомендации к созданию некоторых распространенных элементов Web-сайтов.

В последней главе книги вы сможете прочитать, как проектировать собственные серверы, что позволит создавать действительно мощные Интернет- решения, не ограничивающиеся какой-либо серверной платформой.