Tampilkan postingan dengan label CLIENT SERVER. Tampilkan semua postingan
Tampilkan postingan dengan label CLIENT SERVER. Tampilkan semua postingan

Selasa, 11 Juni 2013

Langkah-langkah Penggunaan UML

1. Buatlah daftar business process
2. Petakan use case untuk tiap business process.
3. Buatlah deployment diagram untuk mendefinisikan arsitektur fisik sistem.
4. Definisikan requirement lain yang harus disediakan
5. Berdasarkan use case diagram, mulailah membuat activity diagram.
6. Definisikan objek (package atau domain) dan buatlah sequence/collaboration diagram untuk tiap alir pekerjaan.
7. Buatlah rancangan user interface model untuk menjalankan skenario use case.
8. Buatlah class diagram.
9. Melihat kemungkinan pengelompokan class
10. Perhalus rancangan Deployment diagram
11. Mulailah membangun sistem.( ada 2 pendekatan) yaitu
• Pendekatan use case
• Pendekatan komponen
12. uji modul dan uji integrasi serta perbaiki model berserta codenya.
13. Piranti lunak siap dirilis.

UML

UML

UML (Unified Modeling Language) adalah bahasa yang berdasarkan grafik atau gambar untuk memvisualisasi, menspesifikasikan, membangun dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object Oriented).
UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas – kelas dalam bahasa program yang spesifik, skema database dan komponen – komponen yang diperlukan dalam software.
Pendekatan analisa dan rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan tahun 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakan metode OO mulai diuji cobakan dan diaplikasikan antara tahun 1989 – 1994, seperti halnya oleh grady Booch dari Rational Sotfware Co., serta James Rumbaugh dari General Electric, dikenal dengan OMT (Object Modelling Technique).
Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, katika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metode OO untuk membuat suatu model bahasa yang uniform atau seragam yang disebut UML (Unified Modeling language) dan dapat digunakan oleh seluruh dunia.

Penggunaan UML Secara Resmi

Secara resmi bahasa UML dimulai pada bulan oktober 994, ketika Rumbaugh bergabung dengan Booch untuk membuat sebuah project pendekatan metode yang uniform atau seragam dari masing – masing metode mereka. Saat itu baru dikembangkan draft metode UML version 0.8 dan diselesaikan serta direlease pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung dan UML tersebut diperkaya ruang lingkupnya dengan metode OOSE sehingga muncul release version 0.9 pada bulan juni 1996. Hingga saat ini sejak Juni 1998 UML version 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group). Anderson Consulting, Ericson, Platinum technology, ObjecTime Limited dan lain lain serta dipelihara oleh OMG yang dipimping oleh Cris Kobryn.
UML adalah standar dunia yang dibuat oleh Object Management Group, sebuah badan yang bertugas mengeluarkan standar-standar teknologi objectoriented dan software component.

Senin, 10 Juni 2013

Pengertian CORBA


Pengertian CORBA

Oke kali ini saya akan menjelaskan sedikit tentang CORBA, mungkin beberapa teman-teman masih awam tentang apa yg dimaksud dengan Corba . Langsung saja . . .

CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server. Dalam terminologi OO, sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message passing). Konteks komunikasi ini kemudian dipetakan ke dalam model client-server: satu obyek berperan sebagai client (si pengirim pesan) dan yang lain bertindak sebagai server (yang menerima pesan dan memroses pesan yang bersangkutan).

Arsitektur Pada Software Berbasis Corba  
CORBA (Common Object Request Broker Architecture) merupakan suatu spesifikasi yang dikembangkan oleh OMG (Object Management Group), sebuah konsorsium yang terdiri lebih dari 800 perusahaan. Tujuan CORBA adalah untuk pengembangan pemrograman objek terdistribusi. CORBA bukanlah bahasa pemrograman, tapi merupakan spesifikasi untuk mengembangkan objek-objek terdistribusi. Beberapa software yang mengimplementasikan COBA misalnya ORBIX (oleh IONA Technologies), VisiBroker (oleh Insprise), dan JavaIDL (oleh JavaSoft).
CORBA memiliki arsitektur yang berbasiskan model objek. Model ini diturunkan dari abstrak Core Object Model yang didefiniskan OMG di dalam OMA (Object Management Architecture). Model ini merupakan gambaran abstrak yang tidak dapat diimplementasikan tanpa menggunakan teknologi tertentu. Dengan model tersebut, suatu aplikasi dibangun dengan standard yang telah ditentukan. Sistem CORBA terdiri dari objek-objek yang mengisolasi suatu client dari suatuserver dengan menggunakan interface enkapsulasi yang didefinisikan secara ketat. Objekobjek CORBA dapat berjalan di atas berbagai platform, dapat terletak dimana saja dalamsuatu network, dan dapat dikodekan dengan bahasa pemrograman apapun asal memiliki IDL mapping.
Object Management Architecture (OMA) mendefinisikan berbagai fasilitas highlevel yang diperlukan untuk komputasi berorientasi objek. Bagian utama dari OMA adalah Object Request Broker (ORB). ORB merupakan suatu mekanime yang memberikan transparansi lokasi, komunikasi, dan aktivasi. Suatu objek. ORB adalah semacam software bus untuk objek-objek dalam CORBA. Berdasarkan OMA, spesifikasi CORBA harus dipatuhi oleh ORB.

CORBA disusun oleh komponen-komponen utama :
1. ORB (Object Request Broker)
2. IDL (Interface Definition Language)
3. DII (Dynamic Invocation Interface)
4. IR (Interface Repositories)
5. OA (Object Adapter)

Tujuan 
Tujuan pemakaian Corba yaitu meng-automatisasi tugas-tugas yang umum dalam pemrograman jaringan, seperti object registration, location dan activation; framing dan error-handling; parameter marshaling dan un-marshaling; dan operation dispatching. Automatisasi ini biasa dihandle oleh sebuah software perantara yang disebut ORB (Object Request Broker). Posisinya berada di antara layer data dan aplikasi.

Kelebihan Pemakaian Corba
  • Programmer dapat dengan mudah menulis aplikasi yang mampu bekerja secara independent antar platform dan jaringan.
  • Memberikan kemampuan untuk mengintegrasi software aplikasi yang berbeda, tanpa harus tergantung pada fasilitas komunikasi tingkat bawah.Bekerja secara baik dengan beberapa middleware-middleware yang ada, termasuk Microsoft distributed system(DCOM).
  • Memberikan extensi opsional untuk area yang tidak bisa dijamah oleh core aplikasi.
  • Support penggunaan secara statis maupun dinamis.
  • Punya protocol yang menjadi kesepakatan – IIOP, yang memfasilitasi komunikasi antar ORB

Contoh Pemograman Corba 
Sebuah sistem terdistribusi, tidak hanya melakukan komunikasi antara satu proses pada satu komputer dengan proses pada komputer yang lain, namun juga perlu mempertimbangkan ketersediaan infrastruktur jaringan yang memadai dan juga dukungan standarisasi sistem yang terbuka.
Sistem terdistribusi ini diperlukan karena beberapa hal, yaitu :
a. Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi daripada komputer yang terpusat
b. Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam mesin yang berbeda. (contoh: aplikasi perbankan, komersial)
c.  Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi kinerja system secara keseluruhan
d. Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat
Sharing Data/Resource
- Resource adalah: Segala hal yang dapat digunakan bersama dalam jaringan komputer
- Meliputi hardware (e.g. disk, printer, scanner), juga software (berkas, basis data, obyek data)
e. Communication
Menyediakan fasilitas komunikasi antar manusia.

Praktek 1 - Program Sederhana Client Server Berbasis Java


Praktek 1 - Program Sederhana Client Server Berbasis Java

  • Berikut adalah contoh sebuah pemogramaan sederhana client-server dengan berbasis java.

  • Source Code untuk Server :

       /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tugas_server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author UNLA
 */
public class Tugas_Server {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(5111);
            Socket s;
            String balasan;
            String balasan2;
            ObjectInputStream in = null;
            ObjectOutputStream out = null;
            s = ss.accept();
            out = new ObjectOutputStream(s.getOutputStream());
            out.flush();
            in = new ObjectInputStream(s.getInputStream());
            balasan = "";
            balasan2 = "";
            while (true) {
                balasan = "";
                balasan2 = "";
                balasan = ReadMessage(in);
                if (balasan.equals("exit")) break;
                else {
                    if(balasan.equals("ini client"))
                    {
                    SendMessage("ini server, masukan username", out);
                    balasan2 = ReadMessage(in);
                    if (balasan2.equals("admin")){ SendMessage("Selamat Datang Admin", out);}
                    else {
                        if (balasan2.equals("user")){SendMessage("Selamat Datang User", out);}
                        else SendMessage("username tidak diketahui", out);
                        }
                    }
                    else
                    {
                        SendMessage("perintah tidak diketahui", out);
                }
            }
            }
    in.close();
    out.close();
    s.close();
    ss.close();
}catch (IOException ex){
    Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
    }
    }
 public static String ReadMessage(ObjectInputStream in)
 {
 String Reader="";
 try {
     Reader=(String)in.readObject();
 }catch (IOException ex){
     Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
 }catch (ClassNotFoundException ex){
     Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
 }
 System.out.println(Reader);
 return Reader;
 }
 public static void SendMessage(String word, ObjectOutputStream out)
 {
     try{
         out.writeObject(word);
         out.flush();
     }catch (IOException ex){
         Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
     }
        // TODO code application logic here
    }

}

berikut tampilannya ketika di running :


  • Source Code untuk Client :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tugas_client;
import java.util.Scanner;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author UNLA
 */
public class Tugas_Client {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException{
        Socket s=new Socket("10.0.0.6", 5111);
        ObjectInputStream in=null;
        ObjectOutputStream out=null;
        Scanner scanf=new Scanner(System.in);
        String input="";
        String balasan;
        String balasan2;
        out=new ObjectOutputStream(s.getOutputStream());
        out.flush();
        in=new ObjectInputStream(s.getInputStream());
        balasan = "";
        balasan2="";
        while(true)
        {
            balasan="";
            balasan2="";
            input=scanf.nextLine();
            SendMessage(input, out);
            if(input.equals("exit"))break;
            else
            {
                balasan=ReadMessage(in);
                if(balasan.equals("ini server, masukkan username"))
                {
                    input=scanf.nextLine();
                    SendMessage(input, out);
                    balasan2=ReadMessage(in);

                }
            }
        }
        in.close();
        out.close();
        s.close();

        // TODO code application logic here
    }
public static void SendMessage(String word, ObjectOutputStream out)
{
    try{
        out.writeObject(word);
        out.flush();
    } catch (IOException ex){
        Logger.getLogger(Tugas_Client.class.getName()).log(Level.SEVERE, null, ex);
    }
}
public static String ReadMessage(ObjectInputStream in)
{
    String reader="";
    try{
        reader=(String) in.readObject();
    } catch (IOException ex){
        Logger.getLogger(Tugas_Client.class.getName()).log(Level.SEVERE, null, ex);
    } catch (ClassNotFoundException ex){
        Logger.getLogger(Tugas_Client.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.println(reader);
    return reader;
}
}


berikut tampilannya ketika di running :

Socket Connection


Socket Connection





1. Pengertian Socket
Socket adalah sebuah class yang disediakan oleh beberapa bahasa pemrograman.Socket adalah sebuah Class yang disediakan oleh beberapa bahasa pemrograman. Dengan socket, sebuah aplikasi di suatu komputer dapat Tentu saja aplikasi di komputer yang dihubungi menerima koneksi juga
menggunakan socket. Dengan kata lain socket adalah suatu Class yang digunakan oleh aplikasi untuk saling berhubungan. berikut ini menunjukkan bagaimana suatu aplikasi berhubungan dengan aplikasi lainnya.
Socket pertama kali diperkenalkan di sistem UnixBSD versi 4.2, pada tahun 1983, sebagai kelanjutan dari implementasi protocol TCP/IP yang muncul pertama kali pada sistem Unix BSD versi 4.1 pada akhir tahun 1981. Hampir setiap variant unix atau linux mengadopsi BSD Soket.
Untuk membangun aplikasi hal pertama yang perlu dilakukan adalah menganalisa jenis aplikasi kita, kebutuhan bandwidth, kebutuhan ketersampaian data dan sensitifitas terhadap delay. Berdasarkan hal ini kita bisa menentukan protokol apa yang kita gunakan, entah TCP atau UDP.
2.  Pemrograman Socket Menggunakan TCP
Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :
Detail dari proses tersebut adalah :
  1. Untuk bisa melakukan koneksi client server, program server harus berjalan terlebih dahulu
  2. Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client.
  3. Di sisi client terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-way handshake.
  4. Setelah welcoming socket menerima inisialisasi koneksi dari client socket, aplikasi server akan membuat connection socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan menerima data.
  5. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor.
3. Socket Pemrograman UDP
Contoh aplikasi untuk UDP socket berikut ini menggunakan kasus yang sama dengan kasus yang digunakan oleh TCP socket, yaitu :
  1. Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya.
  2. Server membaca data yang dikirim oleh client di connection socket
  3. Server mengubah data menjadi huruf besar
  4. Server mengirimkan data yang telah diubah menuju client melalui socket-nya.
  5. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data ke komputer. 

Aplikasi Client Server Java - Praktikum 2


Aplikasi Client Server Java - Praktikum 2

Pada kali ini saya akan mencoba menampilkan beberapa Source Code bagaimana interaksi server ke client atau sebaliknya .

Source Code pada server 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.echo.clientserver.sayhello.server;

import com.echo.clientserver.sayhello.SayHello;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

/**
 *
 * @author UNLA
 */
public class SayHelloServer extends UnicastRemoteObject implements SayHello{

    public SayHelloServer() throws RemoteException {

    }
    public String sayHello (String nama) throws RemoteException {
    System.out.println ("Client Dengan nama  " + nama + " Melakukan Request Loh");
    return "Hello  "  + nama;

    }

    
}
------------------------------------------------------------------------------------------------------------
main.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.echo.clientserver.sayhello.server;

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/**
 *
 * @author UNLA
 */
public class main {

    public static void main(String[] args) throws RemoteException {
        Registry registry = LocateRegistry.createRegistry (1099);

        SayHelloServer sayHello = new SayHelloServer();
        registry.rebind ("sayHello", sayHello);

        System.out.println ( " Server telah Berjalan ");
        // TODO code application logic here
    }

}
------------------------------------------------------------------------------------------------------------
·         Source Code pada client
main.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.echo.clientserver.sayhello.server;

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/**
 *
 * @author UNLA
 */
public class main {

    public static void main(String[] args) throws RemoteException {
        Registry registry = LocateRegistry.createRegistry (1099);

        SayHelloServer sayHello = new SayHelloServer();
        registry.rebind ("sayHello", sayHello);

        System.out.println ( " Server telah Berjalan ");
        // TODO code application logic here
    }

}
------------------------------------------------------------------------------------------------------------
·         Source Code pada api.java nya:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.echo.clientserver.sayhello;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 *
 * @author UNLA
 */
public interface SayHello extends Remote {
public String sayHello (String nama) throws RemoteException;
}

berikut tampilan ketika server telah dijalankan :