- •Начальные сведения об объектно-ориентированном программировании (программа как динамический набор взаимодействующих объектов).
- •Классы и объекты (экземпляры класса), главные отличия класса от объекта.
- •Открытый интерфейс класса и его составляющие (свойства методы и события).
- •Инкапсуляция и ее назначение.
- •Понятие о полиморфизме, предназначение полиморфизма.
- •Наследование и его использование для реализации полиморфизма.
- •Понятие распределенного приложения. Клиенты и серверы.
- •Пятислойная архитектура распределенных приложений.
- •Архитектура, ориентированная на сервисы. Понятие об облачных вычислениях.
- •Локальные и глобальные компьютерные сети. Internet.
- •Сетевые протоколы и их роль в передаче данных.
- •Стандарт xml, языки разметки html и xhtml.
- •Дата-центры, провайдеры данных и прокси-серверы.
- •Базы данных и хранилища данных.
- •Понятие о сжатии информации и архивах. Примеры программ архивации Windows.
- •Защита информации путем разграничения доступа.
- •Защита информации путем шифрования.
- •Цифровая подпись и ее назначение.
- •Понятие о вредоносном программном обеспечении (вирусы и программы-шпионы).
- •Средства борьбы с вредоносным по (на примерах Kaspersky Internet Security и Microsoft Security Essentials).
- •Компьютер как средство связи. Коммуникаторы и смартфоны.
- •Электронная почта (на примерах Microsoft Outlook и Windows Live).
- •Понятие об электронной коммерции: интернет-магазины, платежные системы и т.П.
- •Понятие о по для решения бизнес-задач (на примерах Microsoft Office и 1с Предприятие).
Понятие распределенного приложения. Клиенты и серверы.
Архитектура клиент/сервер (двухуровневая – two-tier) предполагает разделение задачи между сервером (хранит, обрабатывает и поставляет данные) и клиентом (которому необходимы эти данные). В настоящее время эта архитектура вытесняется распределенными приложениями (distributed application).
Распределенное приложение обеспечивает совместное использование программного обеспечения различными пользователями. Бухгалтерское приложение для небольшой компании можно разделить между владельцем и его ассистентом. В больших организациях торговли по почте доступ к центральному приложению оформления заказа распределяется между сотнями операторов, общающихся с клиентами по телефону.
В традиционной архитектуре клиент/сервер обе части системы представляют собой специализированные приложения. Например, можно написать на Visual Basic серверное приложение, отсылающее по факсу заказ на обед в местный ресторан. Затем создать еще одно приложение (другой проект на Visual Basic), позволяющее сотрудникам обращаться к приложению заказа обеда и отсылать соответствующий запрос на сервер.
В этом случае возникает проблема с внедрением клиентской части системы на всех компьютерах компании. Потребуются программа установки приложения и инструкция по сетевой установке клиентской части. После того как коллеги установят клиентскую часть приложения, начнутся телефонные звонки, связанные с неправильной установкой и невозможностью запуска приложения.
Пятислойная архитектура распределенных приложений.
Быстрый рост количества пользователей и появившиеся вследствие этого дополнительные издержки стали снижать эффективность применения архитектуры приложения из трех слоев. Проблема состояла в том, что при добавлении дополнительного уровня представления или обновления хранилища данных приходилось вносить значительные изменения в предметную логику приложения. В некоторых случаях это вызывало ряд затруднений, и предметная логика состояла из различных частей, которые плохо взаимодействовали друг с другом. Единственным выходом из сложившейся ситуации было добавление новых уровней абстракции. Так появилась пятислойная архитектура распределенного приложения. В трехслойную архитектуру было введено два дополнительных слоя: контроллер/медиатор и слой сопоставления данных. Предназначение слоя контроллера заключается в том, что уровень представления обращается к слою контроллера за необходимыми порциями данных и полностью изолируется от логики предметной области. Таким образом, предметная логика могла быть сохранена для любого из представлений в неизменном виде. При добавлении нового представления достаточно было реализовать слой представления и реализовать дополнительный контроллер.
Архитектура, ориентированная на сервисы. Понятие об облачных вычислениях.
Се́рвис-ориенти́рованная архитекту́ра (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.
Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).
Интерфейсы компонентов в сервис-ориентированной архитектуре инкапсулируют детали реализации (операционную систему, платформу, язык программирования) от остальных компонентов, таким образом обеспечивая комбинирование и многократное использование компонентов для построения сложных распределённых программных комплексов, обеспечивая независимость от используемых платформ и инструментов разработки, способствуя масштабируемости и управляемости создаваемых систем.
Облачные вычисления (англ. cloud computing), в информатике — это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам — как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами и/или обращениями к провайдеру.
Потребители облачных вычислений могут значительно уменьшить расходы на инфраструктуру информационных технологий (в краткосрочном и среднесрочном планах) и гибко реагировать на изменения вычислительных потребностей, используя свойства вычислительной эластичности (англ. Elastic computing) облачных услуг.