Пояснительная записка к диплому (1228397), страница 3
Текст из файла (страница 3)
Все технологии, основанные на Java так или иначе будут заимствовать достоинства и недостатки языка программирования Java, а потому следует описать их, для возможности вынести комплексное и адекватное решение касательно применимости технологии в разработке АРМ.
Достоинства языка программирования Java:
– типобезопасность, обеспечивающая отсутствие в приложении сложно обнаруживаемых проблем, вызванных неверной интерпретацией выделенной под переменные памяти;
– платформонезависимость, обеспеченная набором разработки Java в который встроен компилятор Javac, осуществляющий компиляцию в машинно-независимый байт-код. Для запуска программы достаточно запустить данный байт-код в среде запуска;
– наличие сборки мусора, что защищает от неправильного использования указателей и избавляет программиста от необходимости работать с динамической памятью;
– возможность использования интерфейсов для определения методов классов, что позволяет обеспечить безопасность программиста от сложных для поиска и понимания ошибок, связанных с неправильной реализацией множественного-наследования;
– большой набор чётко определённых стандартов, например, стандартов на ввод/вывод, графику, геометрию, доступ к базам данных и др.
Недостатки языка программирования Java:
– сборщик мусора, хоть и в значительной степени позволяет облегчить процесс разработки, в процессе эксплуатации, при неправильном проектировании, нередко приводит к неработоспособности системы из-за ошибок распределения динамической области памяти;
– платформонезависимость достигается за счёт наличия на целевой платформе JVM, что приводит незначительному замедлению вычислений и практической невозможности использовать некоторые особенности аппаратной архитектуры;
– наличие жёстких стандартов, может заставить прибегнуть к сторонним решениям и библиотекам для реализации функционала, не предполагаемого существующими стандартами.
Сама по себе технология Java не предназначена для использования при веб-разработке, однако она имеет специальное издание – Java EE, которое содержит в себе ряд технологий таких как java server pages (JSP), java server faces (JSF), Java servlet и др. позволяющих вести разработку веб-приложений. Помимо этого, технология содержит в себе ряд других, решений которые могут быть применены в ходе разработки, например, технология для работы с базами данных и так далее.
В целом же технология Java весьма неплоха для разработки АРМ. Она лишена платформозависимости присущей многим предшествующим технологиям, а также имеет средства, упрощающие работу программиста, такие как сборщик мусора и упрощённая работа с указателями. Однако за эти улучшения приходится платить, так, например, платформонезависимость обходится ценой снижения скорости исполнения кода, а средства которые по идее должны упрощать жизнь разработчика, накладывают на него определённые обязательства в плане оптимальной организации приложения для избежание возможных ошибок при работе с динамической памятью. В то же время преимущества языка явно довлеют над его недостатками. Также технологии веб-разработки, входящие в состав Java EE представляют из себя набор удобных инструментов, а также фреймворк поддерживающий MVC подход к программированию, что положительным образом сказывается на процессе разработки и дальнейшем развитии, и поддержке приложения.
1.2.3 Общая характеристика технологии C#
Технология программирования C Sharp (C#) состоит из языка программирования C# и платформы представленной .NET Framework от Microsoft и компилятора в байт-код. .NET Framework – это фреймворк включающий в себя большую библиотеку классов Framework class library (FCL), предоставляющий возможность межязыкового взаимодействия (возможность для каждого языка использовать код написанный на других языках) среди нескольких языков программирования, общеязыковую среду исполнения (Common Language Runtime (CLR)), виртуальную машину для запуска скомпилированных приложений.
Нетрудно заметить, что платформа C# схожа с платформой Java наличием виртуальной машины для запуска приложения откомпилированного в байт-код. На самом деле таких сходств между технологиями очень много, это связано с тем, что технология C#, и платформа .NET Framework изначально являлись ответом Microsoft на популярную в то время платформу Java и потому заимствовала многие решения Java. Однако в отличие от технология Java которая не имеет ориентации на конкретную систему, её платформа, а как следствие и сама технология рассчитана исключительно на работу в операционных системах семейства Windows от компании Microsoft. Однако несмотря на это имеются сторонние решения, позволяющие работать с платформой .NET Framework вне Windows.
Далее следует привести описание языка программирования C#. C# – это объектно-ориентированный язык программирования, введённый в .NET Framework. C# во многом очень похож на C++ и является профессиональным языком программирования. Существует возможность реализовать концепции объектно-ориентированного программирования такие как инкапсуляция, наследование и полиморфизм в разработке приложения на C#.
C# – очень простой, мощный, многоцелевой и типобезопасный язык также являющийся чувствительным к регистру языком. Разработку на C# можно осуществлять в среде Visual Studio, мощной насыщенной инструментами среде программирования от Microsoft, также имеющей версию с бесплатной лицензией, но с ограниченным функционалом. Из этой среды возможно вести создание консольных приложений, также, как и приложений с полноценным графическим интерфейсом с применением форм, а также с появлением фреймворка ASP.NET MVC стала возможна разработка веб-приложений. Стиль написания кода очень схож с C++ и Java, так что разработчики знакомые с этими языками смогут быстро освоить программирование на C# [9].
Все технологии, основанные на C# так или иначе будут заимствовать достоинства и недостатки языка программирования C#, а потому следует описать их, для возможности вынести комплексное и адекватное решение касательно применимости технологии в разработке АРМ.
Таким образом, у языка программирования C# имеются следующие преимущества:
– мощная платформа, ориентированная на интеграцию с другими продуктами Microsoft;
– сборка мусора;
– наличие в платформе виртуальной машины, что потенциально делает её платформонезависимой;
– типобезопасность;
– возможность использования интерфейсов.
Однако он не лишен недостатков:
– ориентация на платформу Windows, которая не имеет бесплатных изданий;
– потенциальная платформонезависимость реализуется исключительно за счёт сторонних разработок, что негативно сказывается на поддержке приложения разработанного не под Windows;
– также, как и в Java, возможны проблемы с памятью из-за некорректной работы с динамическими областями памяти и наследуются некоторые другие проблемы технологии Java.
Таким образом технология C# не рекомендуется для разработки АРМ складского рабочего, ввиду весьма существенного недостатка – сильной привязки к операционной системе Windows, которая в свою очередь является платной, а также платный характер полноценных средств разработки. Поэтому использование этой технологии требует либо использования операционной системы Windows на стороне сервера, либо использования сторонних библиотек, что может сильно усложнить процесс разработки и дальнейшей эксплуатации приложения, при этом конечный результат не будет сильно отличаться от того что можно сделать используя технологию Java. На основании вышеизложенного можно заключить, что использование технологии без излишних трудозатрат возможно, на предприятии где используется операционная система Windows, а это не соотносится с планом предприятия о переходе на свободное ПО в перспективе, а потому, хоть данная технология сама по себе и является весьма хорошим конкурентом Java технологии.
1.2.4 Заключение о, используемой для реализации АРМ, технологии
В завершении обзора технологий, позволяющих вести разработку выбранного вида АРМ, следует привести сравнительный анализ описанных выше технологий. Для удобства представления такой анализ лучше представить в виде таблицы, в которой сравнение будет вестись по ключевым показателям. Учитывая большое количество технологий, входящих в платформы, описанные выше, анализ лучше всего проводить по ключевым показателям соответствующих технологиям языков программирования и платформ. Включать в сравнение различные технологии (например, для работы с базами данных и т.д.) не рекомендуется, в связи с тем, что такие технологии по большому счёту являются стандартными для веб-разработки и если в самой технологии отсутствуют они добавляются в неё по средствам фреймворков, так, например, PHP изначально не поддерживает шаблон проектирования MVC, однако для него существуют фреймворки предоставляющие ему возможность использовать этот подход.
Таким образом набор критериев для анализа можно представить следующим списком:
– жёсткая типизация языка;
– кроссплатформенность;
– сборка мусора;
– масштабируемость приложения;
– модифицируемость приложения.
Приведённые выше критерии являются, как уже упоминалось, ключевыми для наглядного сравнения данных технологий, что позволит подвести итог обзору технологий и выбрать технологию для разработки АРМ. Сравнительный анализ описанных технологий представлен в таблице 2.
Таблица 2 – Сравнение технологий разработки АРМ
Технология Критерий | PHP | Java | C# |
Жёсткая типизация языка | ± | + | + |
Кроссплатформенность | + | + | ± |
Сборка мусора | - | + | + |
Масштабируемость | - | + | + |
Модифицируемость | + | + | + |
Из приведённой выше таблицы видно, что применение технологии C# невозможно в разработке АРМ складского рабочего, т.к. платформа .NET сильно связана с операционной системой Windows, которая в свою очередь является платной, а это не соответствует планам предприятия в перспективе перейти на свободное программное обеспечение. И хотя есть бесплатные средства разработки на C# выпущенное приложение также сильно привязано к указанной операционной системе, это связано также с условной кроссплатформенностью платформы .NET, которая хотя и является бесплатной официально реализована только на Windows, все реализации платформы .NET на других операционных системах – это сторонние разработки и, как и решения, работающие на этих платформах, не получают поддержки Microsoft.
Технология PHP также не пригодна для разработки АРМ, в связи с тем, что при увеличении масштабов приложения оно будет медленнее аналогов, что для пользователей может обернуться рядом неприятных последствий.
На основании вышенаписанного можно заключить что технология Java лучше остальных рассмотренных подходит для реализации АРМ, она имеет свободный характер, возможность получения поддержки Oracle – разработчиков технологии, вне зависимости от платформы приложения, полную платформонезависимость, и ряд других достоинств в том числе не реализованных, либо реализованных не в полной мере у остальных рассмотренных технологий.
Таким образом разработка АРМ в дальнейшем будет осуществляться с использованием технологий Java.
1.3 Выбор средств построения АРМ
Для начала следует определить средства для работы с технологиями Java которые будут использоваться. В разработке АРМ будут использоваться связка технологий JSF. Помимо этого, понадобится средство для работы с базой данных, для этого отлично подойдёт другая технология Java – интерфейс постоянства Java (Java Persistence API (JPA)), предоставляющая набор инструментов для удобной работы с базой данных, в том числе свой собственный язык запросов – Java Persistence Query Language (JPQL). По сути JPA является дополнительным уровнем абстракции между приложением и базой данных, что хотя и увеличивает время на обработку запроса, предоставляет возможность абстрагировать программные элементы от особенностей синтаксиса конкретной базы данных. Для использования такого набора используются следующие основные средства:
– набор разработчика Java;
– среда запуска Java;
– среда разработки;