Laboratoriya ishi №5 Taqsimlangan resurslarni boshqarish Ishdan maqsad


Download 1.31 Mb.
Sana24.04.2020
Hajmi1.31 Mb.
#101079
Bog'liq
5-lab


Laboratoriya ishi №5

Taqsimlangan resurslarni boshqarish



Ishdan maqsad: RPC modeli, Xabar navbati modeli, RMI modeli bilan yaqindan tanishish.

Nazariy qism:

RPC modeli bu asosiy modellardan biri, sistemali qо‘llashni programmali ta’minlovchi sifatida qо‘llaniladi. Birinchi bо‘lib u ikki qavatli “kliyent/server” turidagi sistemada qо‘llanilgan: kliyent serverda ishlovchi protsedurani chaqiradi. Ahamiyatliligi shundaki, kliyent uchun bu chaqiruv lokalli protseduralarini chaqiruvida tafovutga ega emas. RPC modeli kliyentni (chaqiruv programmasi) va (chaqiruv protsedurasini yо‘q qilishni amalga oshiruvchi programmasi) serverlarini tushunib yetishiga olib keldi. Shuningdek, modelda boshqa konsepsiyalar ham taqdim qilingan, quyidagilar xozirgacha keng qо‘llanilmoqda: interfeys tilini ta’rifi, nom va katalogni olib borish xazmati, dinamikli bog‘lanish, interfeys xizmati va boshqalar.

RPC modelini sinxronizatsiyasini qо‘llashda, aloqani tiklash, parametrlarni uzatish va natijalarni hammasi kliyentdan sir saqlagan holda bajariladi. Bu birinchi model musaffolik va xalqarotilni interoperabellikga erishishiga yо‘l qо‘yib beradi, past bosqichli protokol yordamida xabarlarni almashtirishni rad etadi.

Taqsimlangan sistemalarni kliyentli va serverli qismi yо‘q qilingan chaqiruv protsedurasi yordamida о‘zaro ta’sirga ega bо‘ladi, bir-biriga mustaqil realizatsiyani amalga oshiradi, bu tilni programmalashtirish realizatsiyasidan qisman foydalaniladi. An’anaviy sistemada murojaat etishda programmalar bir tilda yozilgan, protseduraga esa boshqa tilda yozilgan, bunday murojaatni kо‘p texnik detalini bilish kerak: har xil tildagi turli ma’lumot tavsilotlarini taqdim etish (har xil kompilyatordan foydalanishda), elementlarni solishtirish choralari va murakkab strukturada bо‘shliqlarni tо‘ldirish, oynali mexanizm detali. Kо‘p karrali murakkabliklar о‘sgan bо‘lar edi, agarda programmalarni о‘zaro ta’siri shunday tashkillashtirilgan bо‘lganda, faqatgina har xil tilda yozilganlarini emas, shuningdek, har xil hisoblovchi mashinalarda ishlovchilarni ham. Bularning hammasidan yо‘q qilingan chaqiruv protseduralarining modeli xalos bо‘lishga yо‘l qilib beradi. Programmistlar tillarni va programmali paradigmni о‘zgartirmasdan taqsimlangan taklifni qurish imkoniyatlarini olishdi.

RPC modeli taqsimlangan sistemada kо‘pchilik yadrolar namoyon bо‘ladi. Bu modelda kо‘p kech kolgan modellarni bir qismini paydo bо‘lishi uchun asosdir, (Remote Method Invocation, RMI) yо‘q qilingan chaqiruv metodini modeli va (stored procedures) protseduralarni saqlash baza ma’lumotlari. Kо‘pincha RPC modeli murakkab formali о‘zaro ta’sir realizatsiyasi uchun past bosqichda foydalaniladi.

Yо‘q qilingan chaqiruv protsessi quyidagi obrazlarda namoyon bо‘ladi:


  • Kliyent mashinasidagi protsess server mashinasiga protsedurani chaqiradi.

  • Kliyent protsessi olidndan tо‘xtatiladi.

  • Server mashinasida chaqirilgan protseduralarni bajarish protsessini qо‘yib yuboradi.

  • Natijalar kliyent mashinasiga berib yuboriladi.

  • Kliyent protsessi yangilanadi.

Tavsiflangan mexanizmda kо‘p murakkabliklar: har xil adresli kliyent va server, parametrlar va natijalarni uzatish zaruriyati, qurilmalarni rad etish va qayta ishlash zaruriyati. Qо‘shimcha murakkabliklar shunga olib keladiki, dasturlash tilidagi protseduralar dasturlari parametrlarining bir qismi qiymatlari bо‘yicha, qolgan qismi sifat parametrlari sifatida uzatiladigan qiymatlariga havola bilan uzatilishi mumkin.

RPC modelini realizatsiya qilishda barcha qiyinchiliklarni yengib о‘tishi kerak, shuning uchun oldindan, yо‘q qilingan protsedurani bajarishdan kо‘ra, oldindan tayyorgarlikni о‘tkazish kerak.

Birinchi qadam protseduralarni interfeysini ta’riflash bо‘lish kerak, (IDL) interfeys tili yordamida nima qilinadi. Bu ta’riflash protseduralar parametri xaqida qisqacha tavsif beradi, ishdan keyin ular bajarish va qaytaruvchilarga beriladi. IDL tilidagi protseduralarni ta’riflashda xuddi servis spetsifikatsiyasidek kо‘rib chiqish mumkin.

Ikkinchi qadamda esa yaratilgan translyatsiya tavsifi amalga oshiriladi. RPC mexanizmidagi barcha realizatsiyalar, xoxlagan integratsion platforma, RPC dan foydalanishda yoki konsepsiyada maxsus interfeysli translyatorni saqlaydi.



RPC ba'zi afzalliklari:



  • Masofaviy protsedura qo'ng'iroqlarni qo'llab-quvvatlaydigan jarayonga yo'naltirilgan va ipga yo'naltirilgan modellarni qo'llab-quvvatlaydi.

  • RPC ichki xabarlarni uzatish mexanizmi foydalanuvchi tomonidan berkitilgan.

  • Kodni qayta yozish va qayta ishlab chiqish uchun harakatlar uzoq masofali protsedura qo'ng'iroqlarida minimal bo'ladi.

  • Masofaviy protsedura qo'ng'iroqlari taqsimlangan muhitda, shuningdek mahalliy muhitda ishlatilishi mumkin.

  • Ishlashni yaxshilash uchun protokol qatlamlarining ko'pi RPC tomonidan qoldirilgan.

RPC ning ba'zi kamchiliklari quyidagilardir:

  • Masofaviy protsedura qo'ng'irog'i turli xil yo'llar bilan amalga oshirilishi mumkin bo'lgan tushunchadir. Bu standart emas.

  • Uskuna arxitekturasi uchun RPCda moslashuvchanlik yo'q. Bu faqat o'zaro ta'sirga asoslangan.

  • Masofaviy protsedura qo'ng'iroqlari tufayli xarajatlarning oshishi kuzatilmoqda.

Masofaviy interfeysni aniqlash

import java.rmi.*;

public interface Search extends Remote

{

    public String query(String search) throws RemoteException;



}

Masofaviy interfeysni amalga oshirish

// Java program to implement the Search interface

import java.rmi.*;

import java.rmi.server.*;

public class SearchQuery extends UnicastRemoteObject implements Search {

    SearchQuery() throws RemoteException

    {


        super();

    }


    public String query(String search)

                       throws RemoteException

    {

        String result;



        if (search.equals("Reflection in Java"))

            result = "Found";

        else

            result = "Not Found";

        return result;

    }


}
Server dasturini yaratish

import java.rmi.*;

import java.rmi.registry.*;

public class SearchServer {

    public static void main(String args[])

    {


        try

        {

            Search obj = new SearchQuery();

            LocateRegistry.createRegistry(1900);

            Naming.rebind("rmi://localhost:1900"+

                          "/geeksforgeeks",obj);

        }

        catch(Exception ae)

        {

            System.out.println(ae);

        }

    }


}

Mijoz dasturini yaratish

import java.rmi.*;

public class ClientRequest {

    public static void main(String args[])

    {


        String answer,value="Reflection in Java";

        try

        {

            Search access =

                (Search)Naming.lookup("rmi://localhost:1900"+

                                      "/geeksforgeeks");

            answer = access.query(value);

            System.out.println("Article on " + value +

                            " " + answer+" at GeeksforGeeks");

        }

        catch(Exception ae)

        {

            System.out.println(ae);

        }



    }

}
Download 1.31 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling