Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Крючков Основы учёта,контроля 2007

.pdf
Скачиваний:
494
Добавлен:
16.08.2013
Размер:
9 Мб
Скачать
☆

кнопку меню на форме. Объектно–ориентированное программирование идет еще дальше. В объект включается процедура, реализующая некоторое действие, которое будет осуществляться при нажатии кнопки. Эта процедура называется методом. Причем доступ к ней возможен только из объекта. Таким образом, объект включает в себя не только данные, но и программный код. Если будет создано несколько кнопок, метод каждой из них будет связан с параметрами, т.е. свойствами именно этой кнопки.

Сформулируем основные понятия, связанные с ООП.

Объект – единица программы, содержащая в себе полное описание некоторой программируемой сущности, включая данные и программный код, позволяющий реализовывать определенные действия, свойственные объекту.

Свойства объекта – определяют суть объекта, для визуальных объектов это внешний вид, для объектов, связанных с базами данных – источник данных, например.

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

Метод – программный модуль (процедура, подпрограмма, функция), который выполняет обработку событий, связанных с объектом.

Класс – это шаблон для объекта. Конкретный объект с заполненными значениями свойств является экземпляром класса.

ООП характеризуется следующими понятиями:

инкапсуляция – объединение данных и программного кода в объекте и сокрытие способов их реализации от пользователя. Доступ к объекту пользователь может иметь только через соответствующие методы и события;

наследование – классы можно создавать на базе существующих классов, при этом методы и свойства передаются по наследству;

полиморфизм – порожденные объекты знают, какому именно методу надо передавать обработку события. Так потомок может иметь метод, имеющий название, совпадающее с названием метода родителя, но отличающееся в свойствах. Например – объект пло-

361

ская кнопка и 3D–кнопка могут иметь метод обработки события «нажим» одного имени, но графика отображения нажатия различна. Тогда если 3D–кнопка потомок, то будет вызываться именно его метод.

В настоящее время существует достаточно много систем программирования, использующих объектно–ориентированный подход. Это прежде всего системы, использующие в качестве языка программирования С++. Система программирования Delphi реали-

зует Object Pascal. Microsoft Visual Studio.NET имеет в своем соста-

ве Visual Basic 7, который, наконец, приобрел все свойства объект- но–ориентированного языка программирования.

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

Так, в условиях сертификации базового программного обеспечения на основе открытого кода появилась возможность использования средств разработки, функционирующих в этой среде. В качестве такого рода средств разработки может быть использована платформа программирования J2EE (Java2 Platform Enterprise Edition), использующая язык программирования Java. Рассмотрим далее понятие платформы программирования, возможности, которые она дает разработчику приложений баз данных.

Платформы программирования

В настоящее время существуют две конкурирующие платформы программирования: J2EE (Java2 Platform Enterprise Edition) [16],

созданная Sun Microsistem, и .NET [17] (читается «дот нет») производства Microsoft. Обе платформы дают возможность создания пользовательских приложений различной архитектуры. Прежде всего, это классические приложения клиент/сервер. Большинство

362

существующих компьютеризированных СУиК ЯМ используют именно такую архитектуру. Другая возможность – создание Web– приложений. При этом на рабочих станциях необходимо разместить только программу броузер, которая входит в большинство операционных систем. На Web–сервере осуществляется работа приложения, организуется связь с данными и формируются Web– страницы, которые передаются пользователю. Наконец, обе платформы программирования предлагают новую технологию разработки приложений, заключающуюся в создании и использовании Web–служб. Краеугольным камнем Web–служб является их способность передавать данные от поставщика к потребителю, используя стандартный HTTP протокол. В качестве формата данных используется XML. Использование стандартных средств форматирования и передачи данных позволяет создавать приложения не зависимые от аппаратных платформ. Пользовательское приложение осуществляет запрос, который передается Web–службе с помощью протокола HTTP. Результат выполнения запроса преобразуется в XML формат и передается пользователю. Язык разметки данных XML специально создан для передачи данных и легко преобразуется в форматы, которые могут быть просмотрены через броузеры. Обращение к Web–службам может быть осуществлено как из Web– приложения, так и из обычного программного приложения, функционирующего на рабочей станции.

Обе платформы программирования обладают примерно схожей функциональностью. Основные различия заключаются в межплатформенной переносимости приложений и поддержке различных языков программирования. Единственной средой разработки, обеспечивающей в настоящее время многоплатформенность, является J2EE. Microsoft практически всегда ориентируется на ОС своего производства.

С другой стороны, J2EE использует единственный язык разработки – Java, в то время как средство разработки Visual Studio.NET. включает в свой состав Visual Basic, C++, С# и Java. Если на предприятии используется базовое программное обеспечение производства Microsoft, то .NET дает возможность перехода на новые технологии с минимальными затратами. Программисты, использующие Visual Basic для разработки приложений баз данных, без труда пе-

363

рейдут к программированию Web–служб с помощью VB.NET, оставаясь в привычной среде разработки.

Переход же на операционные системы с открытым кодом потребует использования иных средств разработки. При этом выбор платформы программирования J2EE делается естественным.

Обеспечение связи прикладной программы с данными

Одним из основных требований отраслевого стандарта к инструментальным средствам программирования, требующимся для создания компьютеризированных СуиК ЯМ, является наличие специальных средств доступа к базам данных. Microsoft разработал целый ряд коллекций объектных классов, которые моделируют структуру базы данных и позволяют как непосредственно обрабатывать хранящиеся в базе данные, так и посылать на выполнение SQL запросы. Указанные коллекции объектов постоянно модернизируются, появляются новые. Одной из первых коллекций классов такого рода была DAO (Data Access Objects) [17]. С помощью этой коллекции классов программное приложение получало возможность манипулировать данными, с которыми возможно организовать взаимодействие с использованием языка запросов SQL. На рис. 7.6 представлена объектная иерархия, реализованная, в DAO.

Спомощью данной коллекции объектов, приложение, созданное

сиспользованием Microsoft Visual Studio, способно напрямую взаимодействовать с данными в форматах некоторых популярных СУБД и электронных таблиц, например Access и Excel. При этом открывается соединение с базой данных, которое поддерживается открытым весь сеанс работы приложения. Данные из таблиц или с помощью запросов SQL копируются в наборы данных – объект Recordset. Объекты Recordset имеют в своем составе достаточное количество методов, которые позволяют осуществлять навигацию по набору данных, осуществлять поисковые функции, модифицировать их, т.е. осуществлять все действия необходимые для работы с данными.

364

DBEngine

Workspace

Database

 

 

 

TableDef

 

QueryDef

 

 

 

Recordset

 

 

Container

 

 

 

Relation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Field

 

 

Field

 

 

 

 

Field

 

 

 

 

Document

 

 

 

Field

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Index

 

 

Parametr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Error

 

 

 

 

Field

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7.6. Иерархия объектов в коллекции объектных классов доступа к данным DAO

Тем не менее многие источники данных, например сертифицированные для использования в СУиК ЯМ MS SQL Server и Oracle, недоступны для прямой работы с DAO. Для доступа к данным в этих форматах существует более общий метод доступа к данным. В качестве стандарта работы с данными в различных форматах Microsoft использует ODBC (Open Database Connectivity).

ODBC представляет собой набор драйверов и интерфейсов, позволяющий связывать различные платформы и использовать стандартный язык запросов для различных типов организации данных. Для реализации доступа к данным, хранящимся в различных форматах, в операционной системе устанавливаются нужные драйверы, и конкретной базе данных в выбранном формате присваивается логическое имя набора ODBC. В дальнейшем разработчик приложения может не думать о конкретном представлении данных, ему достаточно использовать стандартные запросы SQL для создания в DAO наборов Recordset из баз данных любого формата. В дальнейшем приложение может манипулировать данными с помощью средств языка высокого уровня и, при необходимости, с помощью стандартных запросов SQL изменять данные в базе данных или добавлять новые.

365

С использование коллекции DAO было создано огромное количество приложений баз данных. В частности, компьютеризированные СУиК ЯМ, разработанные в Лос–Аламосской Национальной Лаборатории, LANMAS и ее локализованная для России и СНГ версия COREMAS при работе с данными используют DAO.

Говоря об объектах, предназначенных для организации доступа к базам данных, надо упомянуть также о коллекции классов RDO (Remote Database Objects), которая оптимизирована для работы в приложениях клиент/сервер. Она так же как и DAO, использует ODBC для связи с удаленными источниками данных. С использованием этой коллекции объектных классов разработчиками Курчатовского института создана компьютеризированная СУиК ЯМ КИМАКС.

По мере развития информационных технологий менялись архитектуры информационных систем. И, прежде всего, появились программные приложения доступные через Интернет. Потребовались новые объекты доступа к данным, которые могли бы быть использованы в Web–приложениях. Кроме того, развитие электронных средств поддержки бизнеса потребовало возможности доступа к нереляционным данным – электронным документам, письмам и т.п. Для обеспечения этих возможностей была разработана новая технология доступа к данным разного рода – OLE DB (Object Linking and Embeding) и новая коллекция объектных классов ADO (ActiveX Data Objects) [17]. В отличие от ODBC, OLE DB способен связы-

вать приложения с данными в любом формате. В частности, он так же может использовать драйвера ODBC для связи с реляционными базами данных. Чтобы использовать OLE DB, необходимо воспользоваться услугами OLE DB–провайдера, который должен быть установлен для каждого типа источников данных. OLE DB– провайдеры поставляются вместе с операционной системой и СУБД. Таким образом, используя ADO c OLE DB–провайдером для ODBC можно получить ту же функциональность, что и с помощью DAO и RDO. Вместе с тем, объекты ADO не образуют такой жесткой иерархической структуры, как DAO, и позволят более гибко работать с данными различных форматов. На рис. 7.7 представлена схема классов коллекции ADO.

366

 

 

 

 

 

 

 

 

Collection

 

 

 

 

 

 

 

 

 

Command

 

Parameter

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Otional)

 

 

(Otional)

 

 

 

Execute

 

Source

 

 

 

 

 

 

 

 

 

 

 

 

Execute

 

 

 

 

 

 

 

 

Collection

 

 

 

Connection

 

 

 

 

Recordset

 

 

Field

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Connection

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Error (Optional)

Рис. 7.7. Коллекция объектных классов доступа к данным ADO

До последнего времени ADO являлась основным компонентом доступа к данным в приложениях, работающих на платформе Windows. Эти компоненты поддерживались рядом программных продуктов сторонних разработчиков, например Borland Delphi. Ввиду важности этих компонент для создания приложений баз данных, рассмотрим их более подробно.

Все объекты ADO, за исключением Error и Field, могут быть открыты независимо. Объекты Command, Error и Parameter являются не обязательными. Объект Connection инкапсулирует в себе связь с источником данных. Он обладает методом Execute, который возвращает в результате выполнения запроса объект Recordset, содержащий выборку данных. Объект Recordset является сердцевиной ADO. Он может быть создан также независимо от других объектов. Он позволяет осуществлять навигацию по наборам записей, добавлять, удалять, редактировать записи, осуществлять поиск и фильтровать информацию. Основные методы объекта рассмотрим на примерах.

Пусть в ODBC сконфигурирован источник данных, имя которого хранится в строковой переменной myDSN. Тогда следующая последовательность команд на VB установит соединение с указанным набором данных. Далее, с помощью запроса SQL создается объект Recordset, содержащий данные таблицы Titles:

Dim myADOConnection As New ADODB.Connection Dim myRecordset As ADODB.Recordset

367

MyADOConnection.Open myDSN

Set myRecordset = MyADOConnection.Execute(«Select * from titles»)

Далее, используя методы и свойства объекта Recordset, можно манипулировать выбранной информацией. В табл. 7.1 приведены методы объекта Recordset, а в табл. 7.2 его основные свойства.

 

Таблица 7.1

 

Методы объекта Recordset

 

Описание

 

Метод

 

AddNew

Добавление записи в набор

 

Close

Закрывает текущий набор

 

Delete

Уничтожает текущую запись

 

GetRows

Возвращает количество строк

 

Move

Переводит на специфицированную запись

 

MoveFirst

Переводит на первую запись

 

MoveLast

Переводит на последнюю запись

 

MoveNext

Переводит на следующую запись

 

MovePrevious

Переводит на предыдущую запись

 

NextRecordset

Возвращает следующий набор, если результатом выполнения

 

 

запроса являются множественные наборы

 

Update

Сохраняет изменения в текущей записи

 

 

Таблица 7.2

 

Свойства объекта Recordset

 

Описание

 

Свойство

 

BOF

Возвращает True, если текущая запись на начале

 

Bookmark

Устанавливает или возвращает значение записи в качестве

 

 

закладки

 

CursorType

Устанавливает или определяет тип курсора:

 

 

3 – статичный курсор, не позволяет видеть изменения, вно-

 

 

симые другими пользователями;

 

 

2 – динамичный курсор, показывает изменения, вносимые

 

 

другими пользователями;

 

 

1 – keyset курсор, изменения и удаления других пользовате-

 

 

лей видны, добавления нет

 

EOF

Возвращает True, если текущая запись в конце

 

Filter

Специфицирует значение фильтра

 

RecordCount

Возвращает число записей в наборе

 

368

Дальнейшее развитие технология ADO получила при создании платформы программирования Microsoft.NET в виде ADO.NET [18]. При разработке этой модели доступа к данным упор делался на ее использовании в Web–приложениях, хотя она будет столь же успешно функционировать и в традиционных Windows приложениях. ADO.NET отличается от своей предшественницы двумя основными чертами: во–первых, она способна работать с данными в отрыве от источника данных; во–вторых, для обмена данными используется язык XML.

Первое свойство чрезвычайно важно при работе с данными в Интернете. Каждое соединение с сервером потребляет его ресурсы. При определенном количестве пользователей, обратившихся к серверу, существует возможность резкого снижения его эффективности. Интернет–приложения, где потенциальное число пользователей велико, должно учитывать это обстоятельство. По этой причине ADO.NET подключает приложение к базе данных на короткое время, необходимое для получения выборки информации или обновления базы данных. После предоставления набора данных или выполнения команды связь прерывается, и дальнейшая обработка полученных данных происходит на клиенте без связи с сервером.

Использование XML в качестве формата для передачи данных делает приложения, созданные с использованием ADO.NET более гибкими, поскольку XML является техническим стандартом для передачи данных. Если приложение функционирует в сетях Интернет/Интранет, оно делается независимым от платформы клиента. На рис. 7.8 приводится схема модели доступа к данным в

ADO.NET.

Для реализации концепции обработки данных в отрыве от источника данных, в отличие от ADO, ADO.NET формирует не Recordset, а DataSet. RecordSet представлял собой выборку из одной или нескольких таблиц базы данных, осуществленную с помощью запроса SQL. DataSet представляет собой частичную копию базы данных, может состоять из нескольких таблиц с установленными отношениями.

369

Приложение клиент

Win Form

Бизнес логика

 

DataSet

Данные

DataSet

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XML

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data

 

 

Data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

adapter

 

 

connection

 

 

Web Form

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data

 

 

Data

 

 

 

 

 

 

 

 

 

 

 

 

adapter

 

 

 

connection

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DataSet

Рис. 7.8. Модель доступа к данным в ADO.NET

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

7.4. Прикладное программное обеспечение

Рассмотрим современное состояние дел с созданием компьютеризированных СУиК ЯМ на предприятиях, имеющих в обращении ядерные материалы. Модернизация учета, контроля и физической защиты ЯМ в РФ начались в 1996 г. при финансовой и организационной поддержке Департамента энергетики США в рамках межправительственного соглашения. Со стороны РФ в сотрудничестве

370