• Nazorat savollari
  • CORBA ning asosiy xususiyatlari
  • - **Interface Definition Language (IDL)**: Obektlarning tashqi dunyoga taqdim etadigan interfeyslarini aniqlash uchun ishlatiladi.
  • 8- amaliy mashg‘ulot




    Download 440,2 Kb.
    bet2/4
    Sana18.05.2024
    Hajmi440,2 Kb.
    #242327
    1   2   3   4
    Bog'liq
    8-amaliy ish1805

    Topshiriq:


    Talaba laboratoriya ishi uchun shaxsiy topshiriq oladi. Bu topshiriq bo‘yicha talaba taqsimlangan kliyent-server ilovalar yaratadi.

    Ishni bajarish tartibi:


    1. qadam. Ish NetBeans IDE integrallashgan ishlab chiqarish muhitini yuklash bilan boshlanadi. Quyidagi rasmda NetBeans IDE muhitining asosiy darchasi yuklangan.


    8.2-rasm. NetBeans IDE muhiti asosiy darchasi

      1. qadam. “Файл” menyusidan “Открыть проект” bo‘limidan “Talabaning_Ismi” loyihasi ochiladi.

      2. qadam. Ochilgan “Talabaning_Ismi” loyihasining ustiga sichqonchaning o‘ng tugmasi bir marta bosiladi va paydo bo‘lgan kontekst menyudan “Новый → Интерфейс Java” tanlanadi.



    8.3-rasm. NetBeans IDE muhiti yangi interfeys yaratish



      1. qadam. “New Интерфейс Java” darchasining “Имя класса” maydoniga “BillingService”, “Пакет” maydoniga “rmi” kiritilib “Готово” tugmasi bosiladi.


    8.4-rasm. NetBeans IDE muhiti “New Интерфейс Java” darchasi 5-qadam. Yaratilgan BillingService.java fayliga quyidagi Java kodi kiritiladi.
    package rmi; import java.rmi.*;
    public interface BillingService extends Remote
    {
    public void addNewCard(Card card) throws RemoteException;


    public void addMoney(Card card, double money) throws RemoteException;


    public void subMoney(Card card, double money) throws RemoteException;


    public double getCardBalance(Card card) throws RemoteException;
    }

    6-qadam. “Talabaning_Ismi” loyihasining ustiga sichqonchaning o‘ng tugmasi bir marta bosiladi va paydo bo‘lgan kontekst menyudan “Новый → Класс 6 Java” tanlanadi.



    8.5-rasm. NetBeans IDE muhiti yangi klass yaratish
    7-qadam. “New Класс Java” darchasining “Имя класса” maydoniga “Card”, “Пакет” maydoniga “rmi” kiritilib “Готово” tugmasi bosiladi.


    8.6-rasm. NetBeans IDE muhiti “New Knacc Java” darchasi 8-qadam. Yaratilgan Card.java fayliga quyidagi Java kodi kiritiladi.


    package rmi;


    import java.io.Serializable;
    public class Card implements Serializable
    {
    private static final long serialVersionUID = 1L;


    private String name ; private String number; private double money ;


    public Card(String name, String number, double money)
    {
    super();
    this.name = name; this.number = number; this.money = money;
    }
    public String getName() { return name;
    }
    public void setName(String name) { this.name = name;
    }
    public String getNumber() { return number;
    }
    public void setNumber(String number) { this.number = number;
    }
    public double getMoney() { return money;
    }
    public void setMoney(double money) { this.money = money;
    }
    @Override
    public boolean equals(Object card)
    {
    return this.getNumber().equalsIgnoreCase(((Card)card).getNumber());
    }
    Yuqoridagi 6-8 qadamlar qaytadan bajarilib BillingClient.java va BillingServiceImpl.java fayllari yaratiladi va quyidagi Java kodi kiritiladi.
    package rmi;


    import java.net.MalformedURLException; import java.rmi.*;


    public class BillingClient
    {
    private String localhost = "127.0.0.1";
    private String RMI_HOSTNAME = "java.rmi.server.hostname"; private String SERVICE_PATH = "rmi://localhost/BillingService";


    private String[][] CARDS = {{"Salimov", "8600-0456-7890-5265"},
    {"Djurayev", "8600-6554-3210-5542"}};
    private double[] MONEYS = {135790.0, 24680.0}; private Card createCard (final int idx)
    {
    return new Card(CARDS[idx][0], CARDS[idx][1], 0);
    }


    private void registerCards(BillingService bs)
    {
    for (int i = 0; i < CARDS.length; i++) { Card card = createCard (i);
    try {
    bs.addNewCard(card);
    } catch (RemoteException e) { System.err.println("RemoteException : " e.getMessage());
    }
    }
    }
    private void addMoney(BillingService bs)
    {
    for (int i = 0; i < CARDS.length; i++) { Card card = createCard (i);
    try {


    bs.addMoney(card, MONEYS[i]);
    } catch (RemoteException e) { System.err.println("RemoteException : " +
    e.getMessage());
    }
    }
    }
    private void getBalance(BillingService bs)
    {
    for (int i = 0; i < CARDS.length; i++) {
    Card card = createCard (i); try {
    System.out.println("card : " + card.getNumber() + ", balance = " + bs.getCardBalance(card));
    } catch (RemoteException e) { System.err.println("RemoteException : " +
    .getMessage());
    }
    }
    }
    public BillingClient()
    {
    try {
    System.setProperty(RMI_HOSTNAME, localhost); String objectName = SERVICE_PATH;
    BillingService bs = (BillingService) Naming.lookup(objectName);
    System.out.println("\nRegister cards ..."); registerCards(bs); System.out.println("Add moneys ..."); addMoney(bs);
    System.out.println("Get balance ...\n"); getBalance(bs);
    } catch (MalformedURLException e) { e.printStackTrace();
    } catch (RemoteException e) { e.printStackTrace();
    } catch (NotBoundException e) { e.printStackTrace();
    System.err.println("NotBoundException : " + e.getMessage());
    }
    }
    public static void main(String[] args)
    {
    new BillingClient(); System.exit(0);
    }
    }

    8.7-rasm. NetBeans IDE muhiti


    Nazorat savollari


    1. Common Object Request Broker Architecture (CORBA)


    Common Object Request Broker Architecture (CORBA)** – bu Object Management Group (OMG) tomonidan aniqlangan standart bo‘lib, u turli dasturlar o‘rtasida, qaerda joylashganligidan va kim tomonidan ishlab chiqilganligidan qat’i nazar, aloqa qilishni osonlashtiradi. CORBA tarmoqda joylashgan dastur bo'laklarining vositachi – Object Request Broker (ORB) orqali o'zaro aloqa qilishiga imkon beradi.


    CORBA ning asosiy xususiyatlari:

    - Tilga xos emas**: Bir nechta dasturlash tillarini qo'llab-quvvatlaydi.

    - **Joylashuvga bog‘liq emaslik**: Ob'ektlar boshqa ob'ektning joylashuvini bilmasdan o'zaro aloqa qilishi mumkin.

    - **O'zaro ishlash imkoniyati**: Turli platformalar o'rtasida aloqa uchun standartlar taqdim etadi.

    - **Interface Definition Language (IDL)**: Ob'ektlarning tashqi dunyoga taqdim etadigan interfeyslarini aniqlash uchun ishlatiladi.


    2. Object Management Group (OMG)


    **Object Management Group (OMG)** – bu xalqaro texnologiya standartlari konsortsiumi. 1989 yilda tashkil etilgan OMG, CORBA kabi ko'plab kompyuter sanoati standartlarini ishlab chiqish va saqlash bilan mashhur.


    Download 440,2 Kb.
    1   2   3   4




    Download 440,2 Kb.