Java бағдарламалау тіліндегі JCSP жүйесі және оның қолданылуы
JCSP
JCSP: Java үшін арналған CSP жүйесі. Математикалық білімсіз сенімді бағдарлама жасауға көмектеседі. Желілік кеңейтімдер арқылы компьютерлер арасында тарату мүмкін.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
JCSP – Java бағдарламалау тілі үшін бірізді үдерістерді (CSP) іске асыру болып табылады. CSP математикалық жүйе болғанымен, JCSP терең математикалық білімді талап етпейді, оның орнына бағдарламашылар қарапайым ережелерді сақтай отырып, дұрыс жұмыс ілейтін бағдарламалық жасақтама құруға мүмкіндік береді.
JCSP is an implementation of communicating sequential processes (CSP) for the programming language Java. Although CSP is a mathematical system, JCSP does not require in depth mathematical skill, allowing instead that programmers can achieve well behaved software by following simple rules.
Шолу
Көп тірісті бағдарламалардың сынақтан өткізуге келмейтін төрт түрлі қателікке ұшырау мүмкіндігі бар: Осылайша, бұл JCSP-нің математикалық негізінен туындайтын сенімділігін көрсетеді.
There are four ways in which multi threaded programs can fail untestably: As such, it epitomises the dependability of JCSP from its mathematical basis.
Желілік қабат
Transmission Control Protocol (TCP) сокеттері CSP мағынасындағы тоқтату арналары ретінде құрастырылуы мүмкін болғандықтан, JCSP процестерін бірнеше компьютерге таратуға болады. Бұл JCSP Net кеңейтуін пайдалану арқылы іске асырылады, ол TCP арқылы CSP семантикасын қолдайтын арналарды ұсынады. CSP құрастырмалы болғандықтан, процестердің бір орында орналасуы немесе таратылуы мінез-құлқы жағынан ешқандай өзгеріс жасамайд. Тек өнімділік айырмашылығы болады. Сондықтан, мысалы, бір серверде қосымшаны жасап, содан кейін сол қосымшаның көп процессорлы нұсқасын өнімділікті жақсарту мақсатында салыстыруға болады.
Because Transmission Control Protocol (TCP) sockets can be constructed to behave as blocking channels in the CSP sense, it is possible to distribute JCSP processes across multiple computers. This is achieved using the JCSP Net extension that provides channels with CSP semantics using TCP. Because CSP is compositional, it does not matter in behaviour terms whether processes are co located or distributed. The only difference is in the relative performance. So it is possible, for example, to develop an application on a single server then compare multi processor version of the same application with the aim of optimising the performance.
Робот нұсқасы
JCSP re – 2008 жылы Эдинбургтегі Нейпир университетінде профессор Джон Керридж, Алекс Панайотопулос және Патрик Лисмор жасаған JCSP пакеттерінің өте төмендетілген нұсқасы. Робототехникалық орта үшін JCSP және мобильдік орта үшін JCSP саласындағы зерттеулер Эдинбургтегі Нейпир университетінде белсенді түрде жүргізілуде. «JCSP re» жұмыс істеп тұрған нұсқасы роботтар үшін бірдей параллель бағдарламалық құралды жасауға мүмкіндік береді. Атап айтқанда, бұл зерттеу үшін Lego Mindstorms NXT роботтары таңдалды, себебі олар Java бастапқы кодын іске қосатын танымал LeJOS NXJ виртуалды машинасымен жұмыс істей алады.
JCSP re is a highly reduced version of the JCSP packages developed around 2008 at the Napier University Edinburgh by Professor Jon Kerridge, Alex Panayotopoulos and Patrick Lismore. Research into JCSP for robotics environments and JCSP for mobile environments is an active area of research at Napier University Edinburgh. The working implementation of 'JCSP re' allows the development of the same concurrent software for robots. Specifically, the robots targeted for this research were the Lego Mindstorms NXTs because they can run the popular LeJOS NXJ virtual machine that executes Java source code.
JCSP-ны басқа тілдерден пайдалану
JCSP негізінен таза Java API (әлдебір зерттеу баламасы JVM-ге C CSP кеңейтуін қолданса да). Сондықтан, ол Scala және Groovy қолданбаларында, сондай-ақ Java-да бір уақытта жұмыс істеу үшін өте ыңғайлы. Осылайша, JCSP Scala-ның актерлік моделіне балама бола алады. JCSP синхронды коммуникацияны пайдаланады, ал актерлер буферленген (асинхронды) коммуникацияны қолданады, олардың әрқайсысының белгілі бір жағдайларда өз артықшылықтары бар. JCSP өз арналарын буферлеуге мүмкіндік береді, сондықтан актерлік модельді оңай имитациялай алады; керісінше орын алмайды.
JCSP is essentially a pure Java API (although a research alternative exists that uses the C CSP extension to the JVM). As such, it is in principle eminently suitable for concurrency in Scala and Groovy applications as well as Java ones. JCSP can therefore provide an alternative to Scala's actor model. JCSP uses synchronised communication and actors use buffered (asynchronous) communication, each of which have their advantages in certain circumstances. JCSP allows its channels to be buffered so can easily emulate the actor model; the converse is not true.