Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Технико-эксплутационные характеристики

Поиск

После проектирование, разработки и интеграции Подсистемы в ИС «ЭПОС», с целью тестирования Подсистема была запущена в эксплуатацию на предприятиях ООО «Юганскнефтегаз» без прекращения функционирования предыдущих способов работы сотрудников ОК. По предварительным результатам тестирования наблюдаются следующие эффекты в работе сотрудников объединения:

· время поиска событий для расследования сократилось до 1 минуты благодаря автоматическому оповещению пользователя о Событиях;

· время запроса коррекции и дополнения данных сократилось до 1 минуты благодаря возможности создавать и оправлять запросы в Подсистеме;

· время дополнения и коррекции данных сократилось до 4 часов благодаря наличию достаточных сведений в заявке;

· время до возобновления расследования после выполнения запроса сократилось до 1-4 минут благодаря автоматическому оповещению пользователя о Событиях.

Как видно из рис. 28 снижение затрат времени даже при пессимистичной оценке значительное. Время на поиск ответственных за ввод данных больше не требуется, так как запросы автоматически направляются лицам ответственным за ввод данных. Таким образом, суммарное время, затраченное от момента обнаружения некорректных или неполных данных по событиям до конца расследования, составляет 3-11 часов (1,53-5,61% от предыдущего значения).

Рис. 28. Снижение затрат времени

То есть задержку в работе сотрудников отдела качества удалось снизить на 94,39-98,47 % от предыдущего значения.

Заключение

В ходе данной дипломной работе:

· изучена предметная область;

· изучена ИС «ЭПОС»;

· проведен обзор существующих подсистем оповещений в различных ИС;

· разработано техническое задание на Подсистему;

· разработан контур Подсистемы;

· разработана инфологическая модель предметной области;

· разработана Подсистема;

· интегрирована Подсистема с ИС «ЭПОС».

В результате данной работы была спроектирована, разработана и внедрена подсистема оповещения в ИС «ЭПОС», тем самым цель работы достигнута. Подсистема обладает всеми требуемыми функциями для устранения недостатков в ИС «ЭПОС».

Подсистема в настоящее время работает в тестовом режиме на предприятиях ООО «Юганскнефтегаз». По предварительным данным наблюдается значительное сокращение задержек в работе отдела качества. По сравнению с предыдущими временными затратами, использование подсистемы оповещения дает значительную экономию времени.

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

Список использованных источников

1. Байков Н. Перспективы российской нефтегазовой промышленности и альтернативных источников энергии // Мировая экономика и международные отношения. – 2008. - №6. – С.49-56.

2. Научно-исследовательский Центр CALS – «Прикладная логистика» «МЕТОДОЛОГИЯ ФУНКЦИОНАЛЬНОГО МОДЕЛИРОВАНИЯ IDEF0». ГОССТАНДАРТ РОССИИ Москва РД IDEF 0 - 2000

3. Нугаев Р. Я. «Безопасная эксплуатация нефтепромысловых объектов» - 1990 год

4. Техническое задание на ИС «ЭПОС».

5. Карпычев В. Ю. Методология IDEF1Х и программный продукт ERWin: Учебно-методическое пособие 2007 год

6. Диго С. М. «Базы данных. Проектирование и создание» учебно-методический комплекс М.:ЕАОИ, 2008. – 171с.

7. Кириллов В. В. ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ – учебное пособие Санкт-Петербургский Государственный институт точной механики и оптики (технический университет) Кафедра вычислительной техники

8. Роберт Д. Шнайдер Microsoft SQL Server Проектирование высокопроизводительных баз данных. Издательство «ЛОРИ», 1998

9. http://www.eos.ru/eos_products/eos_delo/opovesch.php - описание подсистемы оповещения и уведомления системы «Дело»

10. http://program-line.ru/produkt - описание конфигурации «Програм Лайн: Уведомления о событиях»

11. http://www.bssys.com/solutions/financial-institutions/dbo-bs-client-x64/online-statement/ - описание подсистемы «Выписка Он-лайн» в системе «ДБО BS-Client»

12. http://www.bssys.com/solutions/financial-institutions/spetsializirovannye-resheniya/server-notifikatsii/ - описание Сервера Нотификации

13. http://www.microsoft.com/ru-ru/download/details.aspx?id=21 – описание framework 3.5

14. http://technet.microsoft.com/ru-ru/library/ms175887(v=sql.105).aspx – описание компонента SQL Server – Database Mail

Приложение 1

Листинг класса EventNotifications

class EventNotifications

{

private static TimeSpan minRefreshPeriod = new TimeSpan(0, 1, 0);

 

private UI.Main.FormMain formMain_;

 

private string connectionString_;

private string schema_;

 

private int notificationsRefreshPeriod_;

 

private DateTime nextRefreshTime_;

private TimeSpan refreshPeriod_;

 

private System.Windows.Forms.NotifyIcon notifyIcon_;

System.Drawing.Icon[] icons_ = null;

 

public IdleHandler_EventNotifications(

UI.Main.FormMain formMain,

string server,

string sid,

string schema,

string user,

string password)

{

formMain_ = formMain;

 

{

int indexOfColon = server.IndexOf(':');

string optionalPort = ((indexOfColon >= 0)? string.Format(@"Port={0};", server.Substring(indexOfColon + 1)): "");

 

connectionString_ = string.Format(

"Server={0};Sid={1};User Id={2};Password={3};Pooling=False;Direct=True;{4}",

((indexOfColon >= 0)? server.Substring(0, indexOfColon): server),

sid, user, password, optionalPort);

}

 

schema_ = schema;

 

notificationsRefreshPeriod_ = 0;

 

nextRefreshTime_ = DateTime.Now;

 

notifyIcon_ = null;

icons_ = null;

 

if (formMain_!= null) formMain_.setRefreshEventNotifyIconDelegate(refreshNotifyIcon);

}

 

public bool onIdle()

{

if (formMain_!= null)

{

if (DateTime.Now >= nextRefreshTime_)

{

int notificationsRefreshPeriod = formMain_.eventNotificationsRefreshPeriod();

if (notificationsRefreshPeriod_!= notificationsRefreshPeriod)

{

notificationsRefreshPeriod_ = notificationsRefreshPeriod;

 

refreshPeriod_ = new TimeSpan(

notificationsRefreshPeriod / 60,

notificationsRefreshPeriod % 60,

0);

 

if (notifyIcon_ == null)

{

notifyIcon_ = new System.Windows.Forms.NotifyIcon();

notifyIcon_.Text = @"ЭПОС: Оповещения о событиях";

}

 

if (icons_ == null)

{

icons_ = new System.Drawing.Icon[]

{

new System.Drawing.Icon("Resources/notify_round_00.ico"),

new System.Drawing.Icon("Resources/notify_round_01.ico"),

new System.Drawing.Icon("Resources/notify_round_02.ico"),

new System.Drawing.Icon("Resources/notify_round_03.ico"),

new System.Drawing.Icon("Resources/notify_round_04.ico"),

new System.Drawing.Icon("Resources/notify_round_05.ico"),

new System.Drawing.Icon("Resources/notify_round_06.ico"),

new System.Drawing.Icon("Resources/notify_round_07.ico"),

new System.Drawing.Icon("Resources/notify_round_08.ico"),

new System.Drawing.Icon("Resources/notify_round_09.ico"),

new System.Drawing.Icon("Resources/notify_round_10.ico"),

};

}

}

 

refreshNotifyIcon();

}

 

return true;

}

 

return false;

}

Приложение 2

Листинг класса RequestNotifications

class RequestNotifications

{

 

private UI.Main.FormMain formMain_;

 

private string connectionString_;

private string schema_;

 

private int notificationsRefreshPeriod_;

 

private DateTime nextRefreshTime_;

private TimeSpan refreshPeriod_;

 

private System.Windows.Forms.NotifyIcon notifyIcon_;

System.Drawing.Icon[] icons_ = null;

 

public IdleHandler_RequestNotifications(

UI.Main.FormMain formMain,

string server,

string sid,

string schema,

string user,

string password)

{

formMain_ = formMain;

 

{

int indexOfColon = server.IndexOf(':');

string optionalPort = ((indexOfColon >= 0)? string.Format(@"Port={0};", server.Substring(indexOfColon + 1)): "");

 

connectionString_ = string.Format(

"Server={0};Sid={1};User Id={2};Password={3};Pooling=False;Direct=True;{4}",

((indexOfColon >= 0)? server.Substring(0, indexOfColon): server),

sid, user, password, optionalPort);

}

 

schema_ = schema;

 

notificationsRefreshPeriod_ = 0;

 

nextRefreshTime_ = DateTime.Now;

 

notifyIcon_ = null;

icons_ = null;

 

if (formMain_!= null) formMain_.setRefreshRequestNotifyIconDelegate(refreshNotifyIcon);

}

 

public bool onIdle()

{

if (formMain_!= null)

{

if (DateTime.Now >= nextRefreshTime_)

{

int notificationsRefreshPeriod = formMain_.requestNotificationsRefreshPeriod();

if (notificationsRefreshPeriod_!= notificationsRefreshPeriod)

{

notificationsRefreshPeriod_ = notificationsRefreshPeriod;

 

 

if (notifyIcon_ == null)

{

notifyIcon_ = new System.Windows.Forms.NotifyIcon();

notifyIcon_.Text = @"ЭПОС: Оповещения о запросах";

}

 

if (icons_ == null)

{

icons_ = new System.Drawing.Icon[]

{

new System.Drawing.Icon("Resources/notify_square_00.ico"),

new System.Drawing.Icon("Resources/notify_square_01.ico"),

new System.Drawing.Icon("Resources/notify_square_02.ico"),

new System.Drawing.Icon("Resources/notify_square_03.ico"),

new System.Drawing.Icon("Resources/notify_square_04.ico"),

new System.Drawing.Icon("Resources/notify_square_05.ico"),

new System.Drawing.Icon("Resources/notify_square_06.ico"),

new System.Drawing.Icon("Resources/notify_square_07.ico"),

new System.Drawing.Icon("Resources/notify_square_08.ico"),

new System.Drawing.Icon("Resources/notify_square_09.ico"),

new System.Drawing.Icon("Resources/notify_square_10.ico"),

};

}

 

refreshNotifyIcon();

}

}

 

return true;

}

 

return false;

}

 

private bool refreshData(ref int requestsCount)

{

bool isDataRefreshed = false;

 

using (Devart.Data.Oracle.OracleConnection connection = new Devart.Data.Oracle.OracleConnection(connectionString_))

{

connection.Open();

 

isDataRefreshed = refreshData(connection, ref requestsCount);

 

connection.Close();

}

 

return isDataRefreshed;

}

 

private bool refreshData(Devart.Data.Oracle.OracleConnection connection, ref int requestsCount)

{

bool isDataRefreshed = false;

 

using (Devart.Data.Oracle.OracleCommand oracleCommand = new Devart.Data.Oracle.OracleCommand(schema_ + ".notification.get_data_requests_count", connection))

{

oracleCommand.CommandType = System.Data.CommandType.StoredProcedure;

 

try

{

oracleCommand.Parameters.Add(new Devart.Data.Oracle.OracleParameter("CNT", Devart.Data.Oracle.OracleDbType.Number, System.Data.ParameterDirection.Output));

 

oracleCommand.ExecuteNonQuery();

 

object objRequestsCount = oracleCommand.Parameters[0].Value;

if ((objRequestsCount!= null) &&!(objRequestsCount is DBNull))

requestsCount = Convert.ToInt32(objRequestsCount);

 

isDataRefreshed = true;

}

catch (Devart.Data.Oracle.OracleException ex)

{

if (ex.Code!= 4068)

{

System.Windows.Forms.MessageBox.Show(Sys.Utils.textOracleUserExc(ex), "Ошибка",

System.Windows.Forms.MessageBoxButtons.OK,

System.Windows.Forms.MessageBoxIcon.Exclamation);

 

if (ex.Code == 6550) {

requestsCount = 0; isDataRefreshed = true;

}

}

}

}

 

return isDataRefreshed;

}

 

public void refreshNotifyIcon()

{

int requestsCount = 0;

Devart.Data.Oracle.OracleConnection connection = Sys.DB.DBManager.getConnection();

bool isDataRefreshed = ((connection!= null) && refreshData(connection, ref requestsCount));

if (!isDataRefreshed) isDataRefreshed = refreshData(ref requestsCount);

if (isDataRefreshed)

{

if ((refreshPeriod_ == null) || (refreshPeriod_ < minRefreshPeriod))

 

 

if (notifyIcon_!= null)

{

bool showNotifyIcon = ((notificationsRefreshPeriod_ > 0) && (refreshPeriod_!= null));

if (notifyIcon_.Visible!= showNotifyIcon) notifyIcon_.Visible = showNotifyIcon;

 

if (showNotifyIcon)

{

if ((icons_!= null) && (icons_.Length > 0))

{

System.Drawing.Icon icon = icons_[Math.Min(requestsCount, icons_.Length - 1)];

if ((icon!= null) && (icon!= notifyIcon_.Icon)) notifyIcon_.Icon = icon;

}

}

}

}

}

 

public void hide()

{

if ((notifyIcon_!= null) && notifyIcon_.Visible) notifyIcon_.Visible = false;

}

}

 



Поделиться:


Последнее изменение этой страницы: 2016-07-11; просмотров: 80; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.0.255 (0.008 с.)