Java е програмен език от високо ниво, разработен от Sun Microsystems. Първоначално създаден за разработване на програми за туитове и джобни устройства, но по-късно става популярен и популярен език за създаване на уеб приложения. Oracle придоби Sun Microsystems през януари 2010 г., така че Java вече се поддържа и разпространява от Oracle. Java използва обектно-ориентиран модел на програмиране и може да се използва за създаване на приложения, които могат да се изпълняват на един и същ компютър или да се разпределят между сървъри и клиенти в мрежата. Също така може да се използва за създаване на малък програмен модул или аплет за използване като част от уеб страница.
Ползи
Елементи и принципи
Платформи
Примери за използване
Междувременно повечето от екосистемите на Java са огромен брой проекти с отворен код, софтуерни платформи и API, които са създали общност, използваща език. Например, Apache Foundation е домакин на различни Java-базирани проекти, включително:Simple Java Logs (SLF4J). Големи платформи за обработка на данни. Интеграционни платформи като Apache Camel, Apache Axis и CXF за разработване на уеб услуги RESTful. Платформи за развитие на микро услуги. Други предприятия ще се опитат да прехвърлят околната среда Java EE в облак. Тъй като разработчиците създават облачни услуги, възможността за бързо мащабиране на тези услуги е ключов въпрос, както и възможността за съвместна работаоблак.
Синтаксисът на Java често е осъждан за красноречиво. Прекалените мрежи и гетерите, силно типизиране, правят Java-програмите раздути. В отговор на това се появиха няколко периферни езика, които решиха този проблем, включително Groovy, който стана бързо популярен. За обекти отвътре, сложни и паралелни операции на базата на списък могат да доведат JVM да намери изходящи решения, езикът на Scala решава много от слабостите на езика Java, които намаляват възможностите му за увеличаване
Потоци - парадигма за програмиране, измислена от J. Podkery Rodker-Morrison в края на 60-те години, която използва термина "обработка на данни" за проектиране и създаване на приложения. Нишката на Java определя приложението на мрежата от процеси, които обменят данни, използвайки блокове данни (информационни пакети), които се движат през определена връзка. Тези процеси могат да бъдат свързани безкрайно, за да се формират приложения, без да се променя тяхното вътрешно съдържание. По този начин потокът е ориентиран към компонента. Създаването на Java поток е специфична форма на програмиране на потока от данни. Въз основа на ограничени буфери, информационни пакети с определен срок на експлоатация, имена на портове и конкретно определение за връзки. Процесите взаимодействат чрез връзки, до които се осъществява достъп през портовете. Връзките обикновено се осъществяват чрез ограничени буфери. Размер на буфера или максимален бройПакетите, които могат да съдържат опашки, се наричат връзки за честотна лента. Някои реализации ви позволяват да установите връзка с капацитет 0, което означава, че IP адресите на данните се предават незабавно между процесите на изпращане и получаване.
Програмирането на поточно възпроизвеждане разглежда програмата като набор от процеси ("черни кутии"), които чрез връзките, до които се осъществяват достъп до процесите, използват портове. Процесът е екземпляр на компонент, който работи едновременно с други процеси, включително други екземпляри на същия компонент. Общият подход в програмирането на поточно предаване е да се концептуализира програмата като поредица от потоци и под-потоци, които се случват чрез серия от свързани процеси. Паралелността се осъществява чрез ограничаване на връзката между процесите, използващи информационни потоци на пакети, когато потокът Java е завършен. Структуралност: диаграмите и компонентите имат ясна структура (интерфейс, състояние и поведение). Дизайнът на системата е разделен на два слоя: графичен (обикновено визуален) и компонент (обикновено текстов). По отношение на софтуерната архитектура се насърчават различни роли. Като пример: Java потоците се управляват от ролеви функции Graphic Designer и Component-Implementer. Принципът на паралелизъм: всеки процес работи в своя поток, свързана програма или друга среда. Активиране - от гледна точка на дизайнера, графичната точка на процеса се изпълнява едновременно, а функцията на софтуера за планиране ви позволява да разпределяте процесорното време и да управлявате други услуги, както е необходимо за поддържане на тази функционалност. Информационните пакети при създаването на Java поток имат жизнен цикъл и принадлежат само на един процес. Компонентите могат да имат множество входове или изходи. Приложението е графика, а не дърво. Могат да се използват циклични съединения (контури за обратна връзка). Връзките могат да бъдат комбинирани в графика, което означава, че пакетите с различни дъги достигат до входния порт. Връзките трябва да бъдат разделени чрез компонента, поради разнообразието от стратегии за разпространение и правилата за собственост на ИС. Връзките се изпълняват като ограничени буфери с обем от 0 до брой, ограничен от изпълнението.
Компонентите на потоците от данни Java често формират допълващи се двойки. В обичайната логика, програмистът бързо намира, че нито входната, нито изходната структура могат да бъдат използвани за контрол на потока на йерархията на управляващите повиквания. В нишките на въвеждането на Java, описанието на проблема предлага решение. "Думите" са изрично описани в описанието на проблема, така че разработчикът трябва да ги разглежда като информационни пакети (IP). В входните потоци на Java няма единна йерархия на повикванията, така че програмистът не трябва да задава приоритет. При генериране на Java поток могат да се използват пакети с информация за източниците (IIP), за да се посочи параметрична информация, като желаната дължина на изходния запис или имена на файлове. IIPs са блокове данни, които са свързани с порт в дефиниция на мрежата, която става "обикновен" IP адрес, когато параметърът "received" е издаден на съответния порт.
Този тип програма включва прехвърлянето на файл с информация (промени, допълнения и изтривания) към главния файл и създаването на актуализиран главен файл и един или повече отчети. Нов поток на Java е достатъченТрудно е да се криптира с помощта на синхронен процедурен код, тъй като два (понякога повече) входни потока трябва да бъдат синхронизирани. В поточната архитектура компонентът за многократна употреба го прави много по-лесно да записва този тип приложение, защото този инструмент комбинира два потока и вмъква IP данни, за да определи нивата на групата. Да приемем, че една или две нишки на Java се състоят от IP адреси с ключови стойности 1 2 и 3 и IP адресите на втория конец имат ключови стойности от 111221 313233 и 41, където първата цифра съответства на стойността на главния ключ. Използвайки скобите за показване на IP адреси, събраният изходен поток ще изглежда така: (m1 d11 d12) (m2 d21) (m3 d31 d32d33) (d41).
Потоковото програмиране поддържа мултиплексиране на процеси. Тъй като компонентите са само за четене, произволен брой копия на този компонент ("процеси") могат да се изпълняват асинхронно един с друг. Когато компютрите имаха един процесор, това беше полезно, когато много I /O операции в Java потоците продължиха. Сега, когато машините имат множество процесори, той става наистина полезен инструмент. Конците на Java Thread работят на принципа на многозадачност.
Потоковото програмиране е парадигма, при която програмите се създават от компоненти, които имат набор от специфични входни и изходни портове. Тези портове са свързани заедно, за да направят графика, която определя логиката и потока от данни. DrawFBP е десктоп приложение, което може да дефинира диаграми за Java и C #. Това е най-функционално завършеноинтерфейсът за програмиране на стрийминг, но донякъде е ограничен от възможностите на Java защитната стена и неспособността на интроспекцията на информацията, достъпна чрез интерфейса за изтегляне на компоненти. Ключът към интерфейса е да се опрости създаването и разбирането на програмите, базирани на метода на потока.
Критика
.
Java Streams
Определение
Визуалното програмиране в този контекст включва свързване на текстови компоненти или диаграми в двуизмерен изглед, който използва способността за разпознаване на човешки образи и визуални стилове на мислене. Програмирането на текст преди това е налично на ниво компонент, а за прости приложения - на мрежово ниво. Основните характеристики са повторно използване на кода, тестване и паралелизъм.
Потоковото програмиране определя приложения, използващи метафора "фабрика за данни". Приложението не се разглежда като единичен, последователен процес, който започва в определен момент във времето, а след това прави една операция за единица време до пълното завършване, а като мрежаасинхронни процеси, свързани с потоци от структурирани блокове данни, наречени информационни пакети (IP). Мрежата се определя от външни процеси като списък от връзки, които се интерпретират като част от софтуера, наричан обикновено планировчик. Процесите взаимодействат чрез връзка с фиксиран капацитет. Връзката се свързва с процеса с помощта на порт, който има съгласувано име между кода на процеса и дефиницията на мрежата. Един и същ код може да изпълнява повече от един процес. Във всеки един момент този IP адрес може да принадлежи само на един процес или да е на път между два процеса. Портовете могат да бъдат прости или масивни. Тъй като процесите в Java потока могат да продължат да работят неограничено, с входни и изходни данни, приложенията, които използват този метод, обикновено работят по-малко от обичайните приложения и оптимално използват всички процесори на машината.
Определението за мрежа обикновено се трансформира схематично в списък от връзки на някакъв език или нотация на по-ниско ниво. Java I /O потоците често са езикът на визуалното програмиране на това ниво. По-сложните дефиниции на мрежи имат йерархична структура, която се състои от подмрежи с гъвкава свързаност. Други примери за Java теми са базирани на традиционни езици за програмиране. В частност, RaftLib използва C ++ и iostream-подобни оператори за изпълнение на Java потока.
Работата с нишки в Java показва свързването на данни като най-многослаба връзка между компонентите. Концепцията за свободна комуникация, от своя страна, е свързана с концепцията за ориентирани към услугите архитектури. Басейнът с нишки в Java отговаря на редица критерии за такава архитектура.
Методът за стрийминг допринася за функционалния стил на високо ниво на спецификациите, което опростява развитието на хипотетични предпоставки за поведение на системата. Пример за Java потоци е модел на разпределен трафик на данни за конструктивно проектиране и анализ на семантиката на разпределения протокол.
Програмирането на потока има следните уникални свойства: