Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Проектирование и реализация АСУТП

 

3.1. Язык программирования Java

 

Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет.

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

Java высвобождает мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый синтаксис с надежной и удобной в работе средой разработки. Это позволяет широкому кругу программистов быстро создавать новые программы и новые апплеты.

Java предоставляет программисту богатый набор классов объектов для ясного абстрагирования многих системных функций, используемых при работе с окнами, сетью и для ввода-вывода. Ключевая черта этих классов заключается в том, что они обеспечивают создание независимых от используемой платформы абстракций для широкого спектра системных интерфейсов.

Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента — языка программирования. Стало очевидным, что необходим платформонезависимый язык программирования, позволяющий создавать программы, которые не приходилось бы компилировать отдельно для каждой архитектуры и можно было бы использовать на различных процессорах под различными операционными системами.

Рождению языка Java предшествовала довольно интересная история. В 1990 году разработчик ПО компании Sun Microsystems Патрик Нотон (Patrick Naughton) понял, что ему надоело поддерживать сотни различных интерфейсов программ, используемых в компании, и сообщил исполнительному директору Sun Microsystems и своему другу Скотту МакНили (Scott McNealy) о своем намерении перейти работать в компанию NeXT. МакНили, в свою очередь, попросил Нотона составить список причин своего недовольства и выдвинуть такое решение проблем, как если бы он был Богом и мог исполнить все, что угодно.

Нотон, хотя и не рассчитывал на то, что кто-то обратит внимание на его письмо, все же изложил свои претензии, беспощадно раскритиковав недостатки Sun Microsystems, в частности, разрабатываемую в тот момент архитектуру ПО NeWS. К удивлению Нотона, его письмо возымело успех: оно было разослано всем ведущим инженерам Sun Microsystems, которые не замедлили откликнуться и высказать горячую поддержку своему коллеге и одобрение его взглядов на ситуацию в Sun Microsystems.

Обращение вызвало одобрение и у высшего руководства компании, а именно, у Билла Джоя (Bill Joy), основателя Sun Microsystems, и Джеймса Гослинга (James Gosling), начальника Нотона.

В тот день, когда Нотон должен был уйти из компании, было принято решение о создании команды ведущих разработчиков с тем, чтобы они делали что угодно, но создали нечто необыкновенное. Команда из шести человек приступила к разработке нового объектно-ориентированного языка программирования, который был назван Oak (дуб), в честь дерева, росшего под окном Гослинга.

Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания обладала интереснейшей концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании резко изменилась: был анонсирован броузер Mosaic - так родился World Wide Web, с которого началось бурное развитие Internet. Нотон предложил использовать Oak в создании Internet-приложений. Так Oak стал самостоятельным продуктом, вскоре был написан Oak-компилятор и Oak-браузер «WebRunner». В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию — любовь программистов к кофе). Когда Java оказалась в руках Internet, стало необходимым запускать Java-аплеты — небольшие программы, загружаемые через Internet. WebRunner был переименован в HotJava и компания Netscape встала на поддержку Java-продуктов.

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

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

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

Забавно наблюдать, как многочисленные новые диалекты старых языков безапелляционно объявляются объектно-ориентированными. Поскольку при разработке языка отсутствовала тяжелая наследственность, для реализации объектов был избран удобный прагматичный подход. Разработчики Java старались выдержать разумный компромисс между моделью пуристов — «все является объектами», и моделью хакеров — «уйди с моей дороги». Объектная модель в Java проста и легко расширяется, в то же время, ради повышения производительности, числа и другие простые типы данных Java не являются объектами.

Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источники ошибок, свойственных другим языкам программирования (строгая типизация, например). Большинство используемых сегодня программ «отказывают» в одной из двух ситуаций: при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных средах программирования распределение памяти является довольно нудным занятием — программисту приходится самому следить за всей используемой в программе памятью, не забывая освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще используется какой-либо частью программы. Исключительные ситуации в традиционных средах программирования часто возникают в таких, например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций (кроме Delphi). Java фактически снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и встроенные объектно-ориентированные средства для обработки исключительных ситуаций.

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

Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК и Макинтошами. Создатели Java наложили на язык и на среду времени выполнения несколько жестких требований, которые на деле, а не на словах позволяют, однажды написав, всегда запускать программу в любом месте и в любое время (где существует виртуальная Java-машина — броузеры на всех платформах, OS/2, Netware).

Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode). Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java. Большинство ранних систем, в которых пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) «на лету». При этом достигается очень высокая производительность (Symantec JIT встроен в Netscape Navigator).

Язык Java, хотя и более сложный чем языки командных интерпретаторов, все же неизмеримо проще для изучения, чем другие другие языки программирования, например JAVA. Черты языка станут казаться вам естественным путем для решения тех или иных задач и будут способствовать отработке хорошего стиля программирования. Поскольку объектная модель в Java одновременно проста и выразительна, вы скоро освоитесь с объектно-ориентированным стилем создания программ.

Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым придется иметь дело вашим программам. Основой популярности Java являются встроенные классы-абстракции, сделавшие его языком, действительно независимым от платформы. Библиотеки, подобные MFC/COM, OWL, VCL, NeXTStep, Motif и OpenDoc прекрасно работают на своих платформах, однако сегодня главной платформой становится Internet.

 

3.2. Концепция Business Engine

 

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

Рис. 3.1. Торговля как посредник

 

Предприятие, специализирующееся на оказании услуг, не нуждается в посредниках и поэтому работает напрямую с потребителем. Рассмотрим, как функционирует торговое предприятие и какую роль в нем будет занимать программа управления, построенная на базе Business Engine.

 

Рис. 3.2. Функционирование торгового предпрриятия

 

Business Engine функционирует относительно подразделений предприятия по схеме клиент — операция — товар. Клиенты, взаимодействуя между собой, инициируют начало операций, которые приводят к перемещению товаров и денег или только денег. Каждая операция состоит из нескольких подопераций (транзакций), которые имеют свой набор и последовательность (например получил товар, перечислил деньги, отправил товар, выставил лот и т. д.). В свою очередь каждая транзакция инициирует перемещение денег по счетам и товаров по складам. В экономических отношениях каждый клиент имеет одну или несколько ролей, которые добавляют ему возможности осуществления различного рода операций. В нашей модели выделяют четыре роли (покупатель, продавец, финансовый посредник или платежная система, товарный посредник или почта). Каждый клиент может заводить счета и склады у любого другого клиента, если для них определена соответствующая роль. Также клиент имеет по умолчанию один счет и один склад, который они заводят сами у себя для возможности расчетов наличными (касса) и передача товара из рук в руки. Для наглядного изображения можно посмотреть рисунок 3.3. Счет открывается в одном из типов валют. В Business Engine представлены все основные типы валют, при надобности можно задать любую валюту. Чтобы переводить деньги с одного счета на другой, они должный быть одного типа или использовать посредника имеющего нужный тип счета. Для операций со складами характерно тоже самое. Вся мощь Business Engine заключается в том, что он представляет собой программно реализованную экономическую модель с необходимыми для всех торговых предприятий операциями. А вот на базе какого типа торговли, товара или структуры подразделений предприятия реализовать это программное решение — решать вам. Главная особенность такого подхода в том, что можно быстро предоставить вам программное решение именно по вашей бизнес-схеме. Все программ реализованные на Business Engine позволяют производить:

1) управление продажами (включая оптовую, розничную и комиссионную торговлю);

2) управление поставками;

3) планирование продаж и закупок;

4) мониторинг и анализ эффективности торговой деятельности;

5) управление складскими запасами;

6) управление заказами покупателей;

7) управление отношениями с клиентами;

8) анализ товарооборота предприятия;

9) валютно-обменные операции;

10) платежи и переводы;

11) анализ цен и управление ценовой Business Engine политикой.

Рис. 3.4. Business Engine

На сегодняшний день на базе Business Engine разработана программа для ведения торговли в интернет и на интернет-аукционах — Ecommerce Navigator.

 

3.3. Общее представление АСУТП

 

Полное наименование системы — Автоматизированная система управления торговым предприятием, подсистема — «Управление аккаунтом интернет-аукциона». Условное обозначение системы: АСУТП.

АСУТП создается в целях повышения эффективности и удобства управления торговым предприятиям.

Факторами повышения эффективности являются:

1) оптимизация выборки контрагентов для упорядочивания контактов и анализа совместной деятельности;

2) сокращение дублирования функций при ведении торговых операций как в интернет, так и на других торговых площадках;

3) актуализация базы данных путем синхронизации с аккаунтом интернет-аукциона;

4) повышение качества статистических данных за счет автоматизации процедур сбора, обработки и распространения данных (обеспечение полноты и своевременности обновления данных);

5) расширение услуг, предоставляемых пользователям АСУТП;

6) расширение системы показателей, разрабатываемых на основе АСУТП.

3.4. Основные технические решения

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


Таблица 3.1

Технологии, используемые при разработке АСУТП

Технология Описание
Java 6 Компилятор, виртуальная машина и вспомогательные библиотеки для разработки приложения на языке Java.
Swing Технология разработки GUI-приложений на языке Java. Разработана компанией SUN и входит в J2SDK.
JDBC (Java DataBase Connectivity) Технология доступа к БД из приложений на языке Java. Базовая технология, входящая в поставку Java.
Spring Application Framework Комплекс технологий, включающих в себя IoC-контейнер, механизмы работы с транзакциями, БД и O/R и т.д. Поставляется с открытым кодом. Подробнее см. http://www.springframework.org/
Hibernate Технология объектно-реляционного маппинга для доступа к БД. Поставляется с открытым кодом. Подробнее см. http://www.hibernate.org/

 

3.5. Структура системы

 

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

АСУТП состоит из следующих комплексов задач и подсистем:

1) комплекс задач по сбору и предоставлению данных о контрагентах;

2) комплекс задач по загрузке данных из аккаунтов интернет аукциона Ebay;

3) комплекс задач сопровождения справочников и классификаторов предназначен для актуализации справочников и классификаторов через интерфейсы системы;

4) подсистема формирования отчетности предназначена для выполнения задач формирования отчетов по данным торговых операций и текущим сделкам;

5) подсистема архивирования данных.

3.6. Взаимосвязь со смежными системами

Источники данных для системы АСУТП:

1) аукцион Ebay. Взаимодействие осуществляется путем подключения к удаленным web-сервисам по протоколу SOAP;

2) файлы БД Derby — хранилище информации для АСУТП. Взаимодействие осуществляться путем импорта файлов БД.

Получатели данных — аукцион Ebay. Осуществляется на уровне доступа к удаленным web-сервисам по протоколу SOAP.

Решения по взаимодействию системы АСУТП с информационными ресурсами других систем представлено на «Ошибка! Источник сылки не найден.». Подробное описание механизмов взаимодействия представлено в ПРИЛОЖЕНИИ 1. Сценарии использования АСУТП.

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

1) сервисы электронной почты;

2) сервисы файлов и печати.

3.7. Подсистемы

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...