Первое с чем сталкиваются при установке СОНО, что необходимо скачивать и устанавливать не один файл для установки, а целых два - BaseSetupTR.exe и Setup_np_tr.exe. Почему такое сделано - об этом особенно не писалось, а поэтому распространились разные варианты.
Собственно причин такого разделения есть несколько, но давайте перечислим основные.
Но вначале надо разобраться, что входит в СОНО. А вместе с СОНО нам на деле устанавливаются сразу большое количество разных файлов, программ, технических решений, созданных не в Казахстане. Т.е. программное обеспечение созданное программистами всего мира.
Всего файлы СОНО можно разделить на три группы:
- среда исполнения Java (JRE) - что это такое? Вы знаете сама СОНО это не обычная программа для Windows. Но и не как многие думают это не Линукс или что-то еще. СОНО это программа написанная на языке Java и которая может работать только в "среде исполнения" или в "виртуальной машине" Java. Вообще СОНО не так важна какая Windows и даже ей Windows не особо нужна. Ей нужна среда исполнения JRE, на которой она работает. А уже JRE может работать в Windows, Linux, Mac и т.д.
Сама JRE, на которой работает СОНО написана компанией Sun. Сейчас эта компания куплена корпорацией Oracle.
В СОНО JRE находится прежде всего в папке target\JRE - сторонние пакеты (компоненты, архивы) для JRE, которые реализуют тот или иной функционал – Вы знаете, что почти всё, что Вы видите в СОНО это достаточно стандартные компоненты, из которых состоят многие Java программы. Даже то, как программа связывается с сервером СОНО, как она показывает информацию и т.д. - это работает также, как и в тысячах других программах на Java. С помощью этих сторонних пакетов реализована большая часть технических вещей.
Из примера: помните, сколько было разговоров, когда вводилась СОНО со страшными словами RMI, SOAP и т.д.? Так вот это не разработка программистов создавших СОНО. Это вещи, которые используют тысячи программистов на Java.
Пакеты для Java пишу самые разные люди по всему миру. Так, например, тот же памятный RMI разработан почти полностью компаниями Sun, IBM.
Эти пакеты почти полностью находятся в папке target\lib
- ну и, наконец, сама СОНО, как программа. Так вот из всей папки с СОНО, непосредственно самой СОНО совсем немного. Намного больше занимают первые два пункта этого списка. Сама СОНО как программа тоже находится в папке target\lib вместе со сторонними компонентами.
Теперь становится понятно, что все эти файлы и папки не просто так. Каждая из них для чего-то нужна. Но есть причины не ставить их одним файлом. И вот основные причины.
Лицензионные соглашения и требованияВы, наверное, знаете, что программы делятся на платные и бесплатные. Это частое деление для обычных пользователей. Но это деление неправильное. На деле вариантов разделения программ по тем или иным признакам много больше. И одно из них то, что у них разные лицензии и лицензионные требования.
Так например, сама среда исполнения Java (JRE) написана почти полностью под бесплатной лицензией, которая обязывает: все кто взять исходник JRE и создать свою версию JRE, должен обязательно дать также исходник программы.
Сторонние пакеты из папки target\lib, которые разработаны по всему миру также могут распространяться под самыми разными лицензиями. Одни предусматривают возможность создавать на их основе новые программы и не давать исходные коды новых программ, другие требуют обязательно выкладывать исходники новых программ.
Ну и, наконец, сама СОНО это закрытая программа. Исходники которой никогда выкладываться не будут. Мы с Вами никогда не должны увидеть, что и как там делается. Думается такая официальная позиция НК МФ РК как Заказчика программы. Хотя и есть примеры зарубежом, когда государство заказывает для себя программы, а потом выкладывает их исходники, даже когда Заказчиками были Министерство Обороны, но в нашем случае, НК подразумевает, что закрытость исходников это тоже некоторая защита программ.
Таким образом, можно разделить на две группы: среда исполнения Java и сторонние компоненты, которые почти полностью бесплатны и доступны их исходные коды и отдельно сама СОНО, исходные программные коды которой закрыты.
Таким образом, если бы СОНО распространялся вместе, в одном установщике с JRE и другими пакетами, то могли быть лицензионные требования на исходники СОНО.
Но и этого мало. Есть еще дополнительные требования самих компонент и JRE. Так например, если бы СОНО начали распространять не в 2009, а до 2006 года, то СОНО пришлось бы делать не из двух файлов, а из трех.
Дело в том, что до 2006 года Sun требовал, чтобы JRE ставилась отдельно. Т.е. Вам бы пришлось отдельно ставить JRE, отдельно сторонние компоненты и только затем саму СОНО. Так что вариант с двумя файлами, еще не такой плохой.
Критерий по частоте изменения файловВы знаете, что JRE, сторонние пакеты и сама СОНО меняются от версии к версии по-разному.
JRE в СОНО за последние годы почти не изменилась. Она осталась той же.
Сторонние компоненты менялись всего несколько раз. В некоторых версиях добавлялись новые сторонние пакеты. И пару раз пакеты заменялись на более новые версии.
Ну а сама СОНО меняется почти полностью от версии к версии.
Вот и получается, что JRE плюс сторонние компоненты в разных версиях СОНО почти не отличаются. Это и назвали системными библиотеками.
Именно поэтому часто нет необходимости их обновлять. А вот сама СОНО меняется часто.
Поэтому JRE и сторонние пакеты объедены в BaseSetupTR.exe, а сама СОНО вынесена в Setup_np_tr.exe. Так, например, в последней версии BaseSetupTR.exe занимает около 70 Мб, а Setup_np_tr.exe 21 Мб.
Причем если у Вас стояла предыдущая версия, то в новой версии изменилась только СОНО, а другие части не менялись. Именно поэтому можно было ставить только Setup_np_tr.exe, пропустив BaseSetupTR.exe.
Итоги:- СОНО состоит из многих частей, это сложный комплекс состоящих из трудов самых разных людей по всему миру
- не всё, что сделано в СОНО это прихоть разработчиков СОНО. Есть еще лицензионная политика и требования входящих в него продуктов. Требования самые разные.
- если бы СОНО была скажем в 2005 году, то пришлось бы ставить не 2, а 3 файла установки. Также в определенном порядке.
- также дополнительный плюс, что системные библиотеки обновляются не в каждой версии, поэтому прежде чем выкладывать новые версии на сайте http://www.F2.kz я лично стараюсь смотреть что в новых версиях изменено, а что нет и можно ли обновлять без использования BaseSetupTR.exe