Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Таратылған есептеуде талап бойынша код – клиенттік бағдарламалық құралдың сұрауы бойынша серверлік компьютерден клиенттік компьютерге орындалатын бағдарламалық кодты жіберу технологиясы. Интернеттегі талап бойынша код парадигмасының белгілі мысалдары – Java апплеттері, Adobe-нің Flash Player үшін ActionScript тілі және JavaScript. Бағдарламалық код веб-серверде жатқан күйінде болады, пайдаланушы (клиент) клиенттік веб-браузер арқылы кодқа сілтемесі бар веб-бетті сұрағанға дейін. Осы сұраныс бойынша веб-бет және бағдарлама HTTP арқылы пайдаланушының компьютеріне жіберіледі. Бет көрсетілген кезде код браузерде іске қосылып, пайдаланушының компьютерінде тоқтағанша (мысалы, пайдаланушы веб-беттен шыққанда) орындалады. Талап бойынша код – кодтың мобильділігі саласындағы мобильді кодтың нақты бір қолданылуы.
In distributed computing, code on demand is any technology that sends executable software code from a server computer to a client computer upon request from the client's software. Some well known examples of the code on demand paradigm on the web are Java applets, Adobe's ActionScript language for the Flash Player, and JavaScript. The program code lies inactive on a web server until a user (client) requests a web page that contains a link to the code using the client's web browser. Upon this request, the web page and the program are transported to the user's machine using HTTP. When the page is displayed, the code is started in the browser and executes locally, inside the user's computer until it is stopped (e. g., by the user leaving the web page). Code on demand is a specific use of mobile code, within the field of code mobility.
Клиент-сервер
Бірінші шектеу – жүйе клиенттер мен серверлерден тұруы керек. Серверлерде клиенттер пайдаланғысы келетін ресурстар болады. Мысалы, серверде акциялар бағасының тізімі бар (яғни, ресурс), ал клиент осы бағаларды жақсы көрінетін графиктерде көрсеткісі келеді. Бұл екі бөліктің міндеттері анық бөлінген. Сервер артқы бөлікті (деректерді сақтау, бизнес-ережелер және т.б.) қамтамасыз етеді, ал клиент – алдыңғы бөлікті (пайдаланушы интерфейсі).
The first constraint is that the system must be made up of clients and servers. Servers have resources that clients want to use. For example, a server has a list of stock prices (i. e. a resource) and the client would like to display these prices in some nice graphs. There is a clear separation of concerns between the two. The server takes care of the back end stuff (data storage, business rules, etc.) and the client handles the front end stuff (user interfaces).
Мемлекетсіздер
Клиенттер мен серверлер арасындағы өзара әрекеттесуді одан әрі жеңілдету үшін екінші талап – олардың арасындағы байланыс күйсіз болуы керек. Яғни, клиенттің сеансы туралы барлық мәлімет клиентте сақталады, ал сервер бұл туралы ешқандай ақпаратқа ие болмайды. Осының салдарынан, әрбір сұраныс оны орындау үшін қажетті барлық ақпаратты қамтуы тиіс (мәселен, ол ешқандай контекстік мәліметке сүйене алмайды).
To further simplify interactions between clients and servers, the second constraint is that the communication between them must be stateless. This means that all information about the client’s session is kept on the client, and the server is completely unaware. The consequence is that each request must contain all information necessary to perform the request (i. e. it cannot rely on any context information).
Кэші
Клиент-сервер байланысының соңғы шектеуі – серверлерден алынған жауаптар кэштелеуге болатын немесе кэштелеуге болмайтын деп белгіленуі тиіс. Тиімді кэш клиент-сервер арасындағы өзара әрекеттесулер санын азайта алады, бұл жүйенің өнімділігіне жағымды үлесін қосады. Кем дегенде, пайдаланушы тұрғысынан қарағанда.
The last constraint on the client server communication is that responses from servers must be marked as cacheable or non cacheable. An effective cache can reduce the number of client server interactions, which contributes positively to the performance of the system. At least, from a user’s point of view.
Сұраныс бойынша код
Code on demand (COD) – REST-тегі жалғыз қосымша шектеу. Ол клиенттерге өзінің икемділігін арттыруға мүмкіндік береді, себебі белгілі бір нәрселер қалай орындалатынын сервер анықтайды. Мысалы, талап бойынша кодты қолдану арқылы клиент Javascript, Java апплеті немесе тіпті Flash қолданбасын жүктеп алып, байланысты шифрлай алады, соның нәтижесінде серверлер осы процесте қолданылған шифрлау әдістері/кілттері туралы хабардар болмайды. Дегенмен, COD қолдану көрінуді азайтады, сондықтан бұл шектеу қосымша болып табылады. Сонымен қатар, әрбір API-ға мұндай икемділік қажет емес.
Code on demand (COD) is the only optional constraint in REST. It allows clients to improve their flexibility because it is the server who decides how certain things will be done. For instance, with code on demand, a client can download a Javascript, Java applet or even a Flash application in order to encrypt communication so servers are not aware of any encryption routines / keys used in this process. However, using COD reduces visibility, which is why this constraint is optional. Also, not every API needs this kind of flexibility.