Б С Бусигін - Прикладна інформатика - страница 20

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 

-1) Web-сервіси є новою Інтернет-парадигмою, незалежною від платформ і мов програмування. Web-сервіси реалізуються у вигляді автономних, модульних додатків,  котрі  можуть  бути описані,  надруковані (рос.-опубликованы),    розміщені    і    бути    викликані    через електронну обчислювальну мережу для створення нових продуктів і сервісів. -2) Web-сервіс є програмною системой, яка розроблена для підтримки інтероперабельності міжмашинної взаємодії у комп'ютерній мережі. Він має інтерфейс, що описан у машинно-обробляємому форматі (як правило, WSDL). Інші системи взаємодіють з Web-сервісом заданим способом, відповідним  опису,   який  використовує   SOAP-повідомлення, типово передаваєме з використанням HTTP з XML серіалізаціей у прив'язці до інших Web-орієнтованих стандартів.

Слід відмітити, що на відміну від технологій Java і Jini, наріжним (рос.-краеугольньїм) каменем програмної моделі Microsoft .NET є технологія Web­сервісів, яка базується на середовищі .NET Framework, яка у свою чергу основана на наступних базових концепціях:

О незалежним   від   мови   програмування   середовищем виконання (Common Language Runtime);

© бібліотеці класів .NET (.NET Class Library);

© мові-посредниці Microsoft Intermediate Language (MSIL);

© мовах, які підтримують .NET. Структура .NET Framework наведена на рис. 6.33. Як видно, мова йде фактично о единому середовищі виконання програм і підтримку процесів їх розробки. Власне тут зібрані базові класи для усіх мов програмування, які реалізоваі у вигляді бібліотеки ядра System, а також великої кількості (більш 20) спеціалізованих бібліотек з іменами System.Data, System.XML і т. д. Над ними розташований набір засобів формування для виконання модулів різного типу (доречи єдиний для різних мов модулів, що виконуються).

_ VisualStudio.NET

[Visual Baste) СС++ ) ПІТ) ( JScr1pt \ («ьіии продмироеанкя \

(_Common Language Specification _)

 

.NET Framework

 

Типы .НЕТ-прилоя«ний

(ftSPNET) (Пеь Serves^ gTomponan isj^ColsPlej (Widows Famt ")    ДР¥™*Є9ри9нтьі )

 

 

 

 

 

Библиотагаї классов

 

 

разовые тасоы .MET Framework J (Допопнттвпьчые классы NET") <хвяіь с COM-объектами)

 

 

 

 

 

^                                Common Language Runtime

 

 

 

Windows

л

 

Сервисы операционной системы (Win32 API)

 

 

 

J

Рис. 6.33.

Структурна схема .NET Framework

Цікаво розглянути деякі риси вищевказаних технологій у порівнянні (див. табл.. 6.4.)

З однієї сторони, допуская мультимовність програмного коду, концепція .NET приваблює (рос.-привлекает) найкраще, що є у таких широко розповсюджених (рос.-распространенных) мовах програмування, як Perl, Cobol, Eiffel, Python і інші. Зіншого боку, це ускладнює роботу над одним проектом группі програмістів, які пишуть відрізки коду на різних мовах програмування. У Jini все простіше. Тут можна обійтися виключно мовою програмування Java.

В останній час з'являються повідомлення про розробку мов, котрі будуть наслідувати краще з Java і додавати свої функції, що запозичені (рос.-позаимствованные) з інших мов. Серед таких можно назвать технології, що виникли на стику (рос.-стыке) двох мов. Це JPython, PERCobol, Tcl/Java project, Eiffel-to-JavaVM. Ці мови, можливо, сможуть підсилити і без того сильну позицію мови Java серед розробників.

Таблиця 6.4.

Порівняння основ технологій Jini та .Net13

Технології .NET

Технології Jini

Різниці

C#

Java

С# і Java є С-подібними мовами. При побудові деяких компонентів у С# використовувся пакет JavaBeans. Головною різницею є те, що С# запускається виключно під Windows, а Java працює на будь якій платформі, де є JVM. Обидві мови прекомпілюются в just-in-time (JIT) байт-код, который на каждой платформе перекомпилируется во время выполнения в подходящий для данной платформы код и выполняется.

Active Server Pages (ASP+)

Java Server Pages (JSP)

ASP+ буде використовувати код, який написано на Visual Basic, C# і на інших мовах програмування. JSP, у свою чергу, використовує код, який написаний, виключно, на Java.

Interface Language (IL) Common Language Runtime

Java Virtual Machine (JVM) и CORBA

Ядро технології .NET, Common Language Runtime, дозволяє запускати код, який написано на будь якій мові програмування, у середовищі Windows і інших операційних системах, а також використовувати сумісний набір компонентів и об'єктів.

JVM дозволяє запускати, прекомпільований з Java, байт-код на будь якій платформі.

CORBA дозволяє використовувати сумісний набір об'єктів, які написані на різних мовах програмування, на будь якій платформі.

ADO+ і SOAP Web Services

JDBC, EJB, JMS і Java XML Libraries (XML4J, JAXP)

ADO+ використовує модель обміну даних, що заснована на

моделі XML і SOAP, котра дозволяє створювати надбудови

(рос. -надстройки) над протоколом HTTP.

У  Jini   ця   модель   реалізована   по-іншому: технологія

зоставляє    можливість    ррозробляти    транзакції самим

програмістам за допомогою бібліотек і компонентів мови

Java.

Декілька слів потрібно сказати про середовище розробки компонентів і додатків Microsoft Visual Studio.NET. Це набір засобів швидкої розробки додатків RAD для створення наступного покоління веб-додатків і веб-сервісів на базі XML (рис.6.34).

Visual Studio.NET включає єдину IDE з підтримкою функцій RAD для побудови веб-додатків і компонентів проміжного рівня, які відповідають за

13 Jini[tm].NET. Александр Волоха (alex_frost@ukr.net), www.ixbt.com/editorial/ jini-vs-net.shtml

155бізнес-логіку, а також RAD XML-конструктори для роботи с даними. Microsoft пропонує п'ять мов "власного виготовлення": VC++, C#, VB.NET, Jscript і J#.

У саму пізню попередню версію VS.NET уключені перші три. Незалежні поставщики також можуть підключати своі засоби програмування до середовища VS.NET. До теперешнього часу відомо більш ніж 30 систем на базі різних мов (Cobol, Fortran, Perl, Python і т. д.), котрі підтримують створення .NET-додатків.

4ew Project

EVojEtt Types:                                                       IgnplaftS: [їіТП;

 

Visual Bast MojKCa

 

53 ш и —

№іп№ї      Class Wrdtrws AppHcatton    vtrsrf     Centra-

Ф     Ф 0

АЗР.Мет     ftSP.NET Control VYhfc Ap,,.    WebS... Lbrar/

LJ уія43І с++ Project

-: _j Other рґоік.ь.

Database Frojecb £3 EvtratHiityPnojwfc U Visual £Hjdb5oLitrfra

 

A project tor creatng an application with a Windows user nterbce

IV) nctrwiApplpcatpcviS

Lrjedtjm; |н:^ХяигґіапІз.аггі Settin^W^ftlsrraarV^ oogjrng   | Browse...

Г Add toSolLilicn ■? Cbse Soluflm

Project will betrw&J at H;\.L>T|f &™rrBnts.\VBL4l Studc FroJactEVWrelows^llcaflJwiri.

tints!

Рис. 6. 34.

Вибор мови і типу проекта у RAD IDE Visual Studio.NET

Visual Studio.NET дає можливість розробникам швидко проектувати веб-додатки широкого спектру застосування для будь яких пристроїв і будь якої платформи. Visual Studio.NET повністю інтегрується з .NET Framework, з забезпеченням підтримки множини мов програмування і автоматично вирішуючи багато які розповсюджені задачі програмування; завдяки чому розробники визволяються від рутинної роботи і можуть швидко створювати веб-додатки на тій мові, котрій віддають перевагу.

Запитання.

1.

Що собою уявляє програма?

2.

Яки назви мають послідовності операторів мов програмування у різному контексті?


3.

Скільки Ви можете згадати назв програм і їх різновидів ?

4.

Чим відрізняються поміж собою програма, підпрограма і функція?

5.

У яких середовищах пишуться програми?

6.

Для чого призначені API-інтерфейси?

7.

Які головні системні функції програмного інтерфейса (API)?

8.

Які переваги дають у використанні RAD-системи?

9.

У яких архітектурних середовищах виконуються програми?

10.

Чим архітектура комп'ютера відрізняється від архітектури мережі?

11.

Які головні складові архітектури Фон-Неймана?

12.

Назвіть головні архітектури, що існують у реальних обчислювальних системах?

13.

Які основні етапи розробки додатка або рішення?

14.

Які існують типи додатків, в залежності від архітектури, у якої вони працюють?

15.

У яких формах існують компонентні додатки, як вони звуться і від чого залежить така їх велика кількість?

16.

Які  сучісні  обчислювальні  і  програмні  архітектури найбільш популярні?

Повідомлення - це передача інформації від одного об'єкта до іншого, у розрахунку на те, що за цим буде виконана деяка діяльність.

Повідомленням може бути сигнал або виклик операції.

Мова ІЖЬ. 7. МОВА УМІ. ТА ЇЇ ЗАСТОСУВАННЯ

7.1. Причини появи об'єктно-орієнтованого підходу та мови UML

Програмування за всіх часів розвитку комп'ютерів було непростою справою. Особливо це стосувалося розробки великих програмних систем. Наприклад, Джозеф Фокс, один з керівників фірми IBM 1969-1977pp.), наводив приклад розробки інформаційної системи з управління польотами космічних кораблів типу Аполон/Скайлеб (рис. 7.1). Її загальна вартість складала 209 млн. дол.(!), а розробкою займалися 700 програмістів у впродовж 7-мі років.

 

 

 

 

 

^^^^^^

Рис. 7.1. Пункт управління польотами кораблів Аполлон (зліва) та момент стиковки космічних кораблів Аполлон і Союз (праворуч)

При цьому кількість машинних команд у кінці роботи над системою досягла 23 млн., а розробка велася на мовах Фортран і Assembler. Ті, хто хоча б раз запрограмував деякий алгоритм на мові Assembler^ зрозуміють, що значить відобразити командування комп'ютером у покроковому режимі. Доречи, у операційної системі Windows "зразку" 1998 року кількість команд була така ж сама! І не дивно, що нарікань на роботу цих систем завжди вистачало. По оцінкам експертів, від 40 до 60 відсотків крупних програмних систем у різних предметних галузях провалюються і не доводяться до свого кінця. І не даремно

15Sу нової моделі розробки програмних рішень корпорації МісішоП МББ (див. підрозділ 6.5) однією з фаз її розробки є оцінка ризиків процесу їх створення14.

Слід добре розуміти, що на складну, багатофакторну, складнопрогнозуєму працю великих колективів фахівців різних напрямів (аналітиків, управлінців, системотехніків, програмістів, системних адміністраторів, адміністраторів баз даних, технічних письменників (рос.-писателей), тестерів, складальників (рос.-сборщиков) компонент і деяких інших) дуже впливають фактори, які спеціалісти виділили у 5 рівнів складності програмування:

О складність самої задачі, що вирішується;

© складність мови програмування або ще й комплексу тих мов, що задіяні у складному проекті;

© складність середовища виконання програми (архітектура апаратних та програмних засобів), яка зараз є суттєво мережною і розподіленою;

© організація технологічного процесу колективної розробки і створення програмного забезпечення (програмних продуктів);

©прагнення (рос.-стремление) до універсальності та ефективності алгоритмів і даних (дані завжди розподілені і зберігаються у великих сховищах (рос.-хранилищах)).

Від властивостей (рос.-свойств) складності (рос.-сложности) не можна визволитися (рос.-избавиться), але можна змінити характеристики її проявів шляхом управління або організації.

По мірі розвитку дисципліни програмування, її методики управління складністю починали шлях від широко знаного фундаментального принципу управління складними системами, - devide et \mpera (розподіляй і пануй (рос.-разделяй и властвуй), лат.). Згідно першої частині цього принципу, при проектуванні складної програмної системи провадиться алгоритмічна декомпозиція задачі, що вирішується. Ціллю декомпозиції є уявлення системи, що розробляється, у вигляді декількох взаємодіючих підсистем (модулів або блоків), кожну з котрих легше налагодити (перевірити, випробувати) незалежно від інших. У цьому випадку потрібно тримати у голові інформацію про значно меншу кількість деталей. А при розробці великих програмних систем легше розподілити фрагменти головної програми поміж виконавцями і керувати цим процесом. Для подальшого підвищення продуктивності роботи програмістів і програмістських колективів були розроблені методи структуризації елементів коду програм, структури програм і програмних проектів.

У програмуванні структурний підхід вперше з'явився з виникненням перших підпрограм, процедур і  функцій, які писалися у так званому

14

Управління ризиками (risk management)- це одна з ключових дисциплін Microsoft Solutions Framework ® (MSF). MSF бачить у змінах та невизначеності (рос-неопределенности), що з-за них виникає, невід'ємну частину життєвого циклу інформаційних технологій. Дисципліна управління ризиками у MSF відстоює превентивний підхід до роботи з ризиками в умовах такої невизначеності, безперервне оцінювання ризиків і використання інформації о ризиках в рамках процесу прийняття рішень на протязі усього життєвого циклу проекту. Даний шестикроковий процес включає визначення (рос.-выявление) і аналіз ризиків; планування і реалізацію стратегій по їх профілактиці та пом'якшенню можливих наслідків; відслідковування (рос.-отслеживание) стану ризиків і добування (рос.-извлечение) уроків з придбаного досвіду.процедурному (процедурно-орієнтованому) стилі. При цьому, виконавець просто визначав у програмі змінні і константи, котрі було потрібно зберігати у пам'яті комп'ютера і описував або використовував алгоритм їх обробки (рис. 7.2).

Дані

Підпрограми

Рис. 7.2. Робота програм з даними у процедурно-орієнтованому стилі

Теоретичне обґрунтування структурний підхід отримав на початку 70-х років у роботах Е. Дейкстри, А.П. Єршова, Е. Йодана, Н. Вірта, Е. Брукса та інших теоретиків і практиків програмування. Подальший розвиток структурного підходу (по мірі збільшення програмних систем і кількості розробників, що одночасно приймали участь у виконанні одного проекту) призвело до початку використання модульного програмування. Воно передбачає декомпозицію прикладної задачі у вигляді ієрархії модулів. Спеціалізація модулів по видам обробки та наявність у них деяких даних визначених типів - це були ті властивості, котрі відображають генетичний зв'язок модульного програмування і об'єктно-орієнтованого програмування (рис.7.3).

Модулі

Дані

Підпрограми

Рис. 7.3. Робота програм з даними у модульно-орієнтованому

стилі

Зрозуміло, що найважливішими інструментами виробників програмного забезпечення, у яких знаходять відображення практично усі аспекти еволюції, є мови програмування. Мова програмування з самого початку орієнтована на комп'ютер і містить набір типізованих даних, операторів, операцій, функцій та інших операційних одиниць мови, котрі достатньо просто можуть бути переведені у інструкції (команди) по управлінню апаратним і програмним забезпеченням комп'ютера. Мова програмування, як правило, орієнтована на програміста і дає засоби для моделювання обраних об'єктів, їх властивостей і поведінки при рішенні прикладних задач у деякий предметній області у вигляді програми.

Розвиток мов програмування у напряму підвищення ефективності складання прикладних програм привів до розподілу мов на наступні рівні:

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 


Похожие статьи

Б С Бусигін - Прикладна інформатика