Rabu, 21 Oktober 2015

Sistem Operasi Terdistribusi

Sisitem Operasi
Pengertian sistem operasi
                Sistem operasi adalah perangkat lunak yang bertugas untuk melakukan dan memanajemen perangkat keras serta operasi dasar sistem, termasuk menjalankan software aplikai program program pengolah kata dan btowser web
                Secara umum, sistem operasi adalah software pada lapisan pertama yang ditaruh pada memori komputer pada saat komputer dinyalakan, sedangkan software lainya di jalankan setelah sistem oepasi berjalan dan sistem operasi akan melakukan layanan inti umum untuk software software itu. Layanan inti imim tersebut seperti akses ke disk, manajement memori, skeduling task, dan antar muka user sehingga masing masing software tiak perlu lagi melakukan tugas tugas inti umum tersebut, karnea dapat dilayani dan dilakukan oleh sistem operasi . badian kode yang melakukakan tugas tugas inti dan umum tersebut dinamakan dengan karnel suatu sistem operasi.
Sistem oepasi secara umum terdiri dari beberapa bagian :
1.Mekanisme boot yaitu meletakkan karnel ke dalam memory
2.Karnel yaitu inti dari sebuah sistem operasi
3.Command interpreter atau shell yang bertugas membaca input dari pengguna
4.Pustaka pustaka yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat di panggil oleh aplikasi lain
5.Driver untuk berinteraksi dengan hardware eksternal sekaligus mengontrol mereka

Komponen sistem operasi :
1.Manahemen proses , proses adalah keadaan ketika sebuah program sedang di eksekusi, sebah proses membutuhkan beberapa sumber daya untuk menyelesaukan tugas nya symber daya tersebut dapat berupa cpu time , memoru , berkas berkas dan perangkat perangkat I/O. Sistem operasi bertanggung jawab atas aktivitas aktivitas yang berkaitan degnan manajemen proses seperti :
·         Pembuatan dan penghapusan proses pengguna dan sistem proses
·         Menunda atau melanjutkan proses
·         Menyediakan mekanisme untuk proses sinkronisasi
·         Menyediakan mekanisme untuk proses komunikasi
·         Menyediakan mekanisme untuk penanganan deadlock
2,Manahemen memori utama , memori utama atau lebih dikenal sebagai memori sebuah array yang besar dari word atau byte yang ukutannya mencapai ratusan , ribuan atau bahkan jutaan setiap word atau byte mempunyai alamat tersendiri , memori utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh cpu atau perangkat I/O. Memori utama untuk termasuk tempat penyimpanan data sementara, artinya data dapat hilang begitu sistem dimatikan.
Sistem operasi bertanggung jawab atas aktivitas yang berkaitan dengan menajement memori seperti :
·         Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya
·         Memilih program yang akan di load ke memori
·         Mengalokasikan dan mengdealokasikan ruang memori sesuai kebutuhan
3.Manajement berkas , adlah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuatan berkas tersebut. Berkas dapat mempunyai struktur yang bersidat hirarkis ( direktori volume dan lain ) sistem oeparsi bertanggung jawab :
·         Pembuatan dan penghapusan berkas
·         Pembuatan dan penghapusan direktori
·         Mendukung manipulasi berkas dan direktori
·         Memetakan berkas ke secondary storage
·         Membackup berkas ke media penyimpanan yang permanen
4.Manajement sistem I/O, sering disebut device manager. Menyediakan “device driver” yang umum sehingga operasi I/O dapat seragam ( membuka, membaca, menulis, menutup) contoh : pengguna menggunakan operasi yang sama untuk membaca berkas pada harddisk , cs rom dna floppy disk
Komponen sistem operasi untuk sistem I.O
·         Buffer menampung sementara data dari ke prangkat I/O
·         Spooling melakukan penjadualan pemakaian I/O sistem supaya lebih efisien ( antrian dsb)
·         Menyediakan driver untuk daat melakukan operasi “rinci” untuk prangkat keras I/O tertantu
5.Manajement penyimpanan sekunder , data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil , oleh karena itu untuk menyimpan keseluruhan data dan program komputer dibutuhkan secondary storage yang bersifar permanen dan mampu menampung banyak data, contoh nya ialah harddisk , disket , denan disk management seperti free space management alikasi penyimpanan , penjadualan disk
6.Sistem proteksi , mengacu pada mekanisme untuk mengontrol akses yang di lakukan oleh program , prosesor atau pengguna ke sistem sumber daya dan mekanisme proteksi harus :
·         Membedakan antara pengguna yang sudah di beri izin dan yang belum
·         Specify the controls to be impsed
·         Provide a means of enforcement
7.Cimmand interpreter system , SO menunggu instruksi dari pengguna ( command driver) program yang mmebaca instruksi dan mengartikan control statements umumnya dsebut : control card interpreter , command line interpreter dan unic shell , command interpreter system sangat bervariasi dari satu sistem oeprasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I.O device yang ada . contoh : CLI , windows , Pen Based ( touch ) dan lainya
8.Jaringan , sistem terdistribusi adlah sekumpulan prosesor yang tidak berbagi memori atau clock . tiap prosesor mempunay memori sendiri. Prosesor prosesor tersebut terhubung melakui jaringan komunikasi sisem terdistribusi menyediakan akses pengguna ke bermacam daya sistem contohnya :
·         Increased data acailability
·         Enhanced reability
·         Computation speed up
·         Increased data availability
·         Enhanced reliability

Sistem operasi terdistribusi
Pengertian sistem operasi terdistribusi
Sistem terdistribusi adalah salah satu implementasi dari sistem terdistribusi , dimana sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan. Koleksi dari objek ini secara tertutup bekerja secara bersama sama untuk melakukan suatu tugas atau pekerjaan tertentu, tujuan utamanya adalah untuk memberikan asil secara lebih terutama dalam :

- File sustem
- Name space
- Waktu pengolahan
- Keamanan
- Akses keseluruh resource seperti prosesor, memori, penyimpanan sekunder dan perangkat keras 

Sistem oeprasi terdistribusi tidak sebagai sebuah infrastruktur/ rangka dasar untuk network transparent resource management. Infrastrukutr mengatur low level resource ( seperti processor , mrmory , network interface dan peripheral device yang lain ) untuk menyediakan sebuah platform untuk pembentukan penyusunan higher level resouce ( seperti spreadsheet, electronic mmail messages , windows)

Sistem operasi jaringan versus sistem operasi terdistribusi
Suatu sistem operasi terdistibusi yang sejati adalah yang berjalan pada beberapa buah mesin yang tidak melakukan sharing memori tetapi terlihat bagi user sebagai satu buah koputer single contoh dari sistem ini seperti amoeba

Sistem operasi terdistibusi berbeda dengan sistem operasi jaringan untuk dapat membedakannya sistem operasi jaringan memiliki ciri ciri sebagai berikut:
1.tiap komputer memiliki operasi sendiri
2.tiap personal komputer memiliki sistem file sendiri, dimana data data disimpan
3.sistem operasi tiap komputer dapat berbeda beda atau heterogen
4.pengguna harus memikirkan keberadaan kopmuter lain yang terhubung dan harus mengakses biasanya mengunakan remot login (telnet)
5.file system dapat digunakan dengan dukungan NFS
Manfaat sistem oeprasi terditribusi
Sistem operasi terdistribusi memiliki manfaat dalam banyak sistem dan dunia komputasi yang luas, manfaat manfaat ini termasuk dalam sharing resouce waktu komputasi dan komunikasi.
1.shared resource, walaupun perangkat sekarang sudah memiliki kemampuan cepat dalam proses komputasi atau misal dalam mengakses data tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih cepat apabila hardware terbatas kecepatan yang diinginkan user dapat di atasi dengan mengabung perangkat yang ada dengan sistem DOS
2.manfaat komputasi , salah satu keunggulan sistem operasi terdistribusi ini adlaah bahwa kopmutasi berjalan dalam keadaan paralel . proses komputasi ini dipecah dalam banyak titik yang mungkin berupa komputer pribadi, prosessor tersendiri dan kemungkinan perangkat prosessor prosessor yang lain. Sistem operasi terdisribusi ini bekerja baik dalam memecahkan komputasi ini dan baik pula dalam mengambil kembali hasil kpmutasi dari titik titik clister untuk ditampulkan hasilnya
3.reliabilitas , fitur unik yang dimiliki dos ini adalah reliabilitas , berdasarkan design dan implementasi dari design sistem ini , maka bilangannya satu node tidak akan berdampak terhadap integritas sistem. Hal ini berbeda dengan PC, apabila ada saalah satu hardware yang mengalami kerusakan , maka sistem akan berjalan tidak seimbang bahkan sistem bisa tidak dapat berjalan atau matu
4.komunikasi , sistem operasi terdistribusi biasanya berjlan dalam jaringan da biasanya melayani koneksi jaringan . sistem ini biasanya digunakan untuk user proses networking, uses dapat saling bertukar data, atau saling berkomunikasi antara titik baik secara Lan maupun Wan 

Hardware sistem operasi terdistribusi
Sistem operasi terdistribusi yang saat ini akan dibahas sebagai titik tolak adalah amoeba yang saat ini banyak digunakan sebagai salah satu implementasi dari sistem operasi terdistribusi itu sendiri. Sistem amoeba ini tumbuh dari bawah hingga akhirnya tumbuh menjadi sistem operasi terdistribusi
Sistem operasi terdistribusi pada umumnya memperlukan hardware secara spesifik. Komponen utama dalam sistem ini adalah workstation, lan , gateway dan komputer personal mengeksekusi prose yang memerlukan interaksi dan user seperti text editor atau manager berbasis window. Server khusus memiliki fungsi untuk melakukan tugas yang spesidik server ini mengambil alhi prose yang memerlukan I/o yang khusus dari larikan disk. Gateway berfungsi untuk mengambil alith tugas untuk terhubung ke jaringan WAN
Prosesor pool mengambil alih semua proses yang lain. Tiap unit ini biasanya teridiri dari proses memori lokal dan koneksi jaringan. Tiap prosesor mengerjakan satu buah proses sampai proses yang tidak digunakan habis untuk selanjutnya proses yang lain berada dalam antrian menunggu proses yang lain selesai. Inilah keunggulan sistem operasi terdistribusi dalam hal reliabilitas . apabila ada satu unit pemroses yang mati makan proses yang dialokasikan harus di restart tetapi integritas sistem tidak akan terganggu apabila proses deteksi berjalan dengan baik. Desain sistem ini memungkinkan untuk 10 sampe 100 prosessor. Spesidikasi perangkar keras yang harus disediakan pda tiap cluster minimal adalah
-          File server : 16MB ram, 300MB hD , ethernet card
-          Worksation 8MB ram , monitor, keyboard mouse
-          Pool processor 4MB ram , 3,5”floppy drive



Arsitektur software
Sistem operasi terdistribusi sejati memiliki arsitektur software yang unik arsitektur software ini dikarakterkan dalam objek di dalam hubungan antara klien dan server. Proses yang terjadi di klien menggunakan remote procedure yang memanggil dan mengirimkan request ke server untuk memproses data atau objek yang dibawa. Tiap objek yang di bawa memiliki karakteristik yang disebut sebagai kapabilitas. Kapabilitas ini besarnya adalah 128bit, 48 bit pertama menunggukan servis mana yang mimiliki objek tersebut , 24 bit berikutnya adalah nomor dari objek 8 bit berikutnya menampilkan operasi yang diijinkan terhadap objek yang bersangkuran dan 48 bit terakhir merupakan check field yang merupaka field yang telah terenkripsi agar tidak dapat dimodifikasi oleh prosesor yang lain
Operasi diselesaikan oleh RPC ( remote procedure calls) yang dibuat oleh klien di dalam proses yang kecil dan ringan. Proses dengan tipe seperti ini memiliki bidang alamat sendiri dan bisa saja mimiliki sati atau lebih hubungan. Hubungan ini ketika berjalan memiliki progam counter dan stack sendiri tetapi dapat saling berbagi kode dan data antara hubungan lain di dalam proses. Ada 3 macam basis peanggilan sistem yang dapat digunaka dalam proses yang dimiliki user yaitu do operasion get request, dan send reply. Bagian yang pertama mengirimkan pesan ke server setelah proses memblok sserver mengirimkan balasan

Serber menggunakan panggiln sistem kedua untuk mengidikasian bahwa server akan menerima pesan pada port terentu. Server juga menggunakan panggilan sistem ketida untuk mengirimkan kembali informasi ke proses yang di panggil dengan dibagun dari perintah sistem yang prmitif makan sistem ini menjadi antarmuka untuk program aplikasi hal ini diseblesaikan oleh tingkar dari pengarahan yang mgnijinkan pengguna untuk berfikir terhadap strukrut ini sebagai objek dan operasi terhadap obhek in. Berhubungan dengan objek adalah class kelas dapat berisi kelas yang lain dan juga hierarki secara alami. Pewarisan membuat antarmuka objek untuk implementasi manipulasi objek sepertii menghapus membaca menulis dan sebagainya

Jenis sistem operasi terdistribusi
Ada berbagai macam sistem operasi terdistribusi yang saat ini beredar dan banyak digunakan, keanekaragaman sistem ini di karenakan semakin banyak sistem yang bersifat opensource sehinga banyak yang membagun os sendiri sesuai dengan kbutuhan masing masing yang merupakan pengembangan dari os opensource yang sudah ada. Beberapa contoh dari sistem operasi terdistribusi ini diantaranya :
-Amoeba (Vrijie universiteit) : Amoeba adalah sistem berbasis mikro karnal yang tangguh yang menjadikan banyak workstation personal menjadi satu sistem terdistribusi secara transparan sistem ini sudah banyak digunakan di kalanan akademik industri dan pemerintah selama sekitar 5 tahun
-Angel)city university of london) : aNgel didesain sebagai sistem operasi terdisribusi pararel walaupun sekarang ditargerkan untuk pc dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaat ganda yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental yang rendah . dengan memproses titik di jaringan sebagai mesin single yang bersifat shared memory menggunakan teknik distributed virtual shared memory (DVSM) sistem ini ditunjukan baik bagi yang ingin meningkarkan prforma dan menyediakan sistem yang portable dan memiliki kegunaan yang tinggi pada setiap platform aplikasi
-chorus (sun Microssystems) : Chorus merupakan keluarga dari sistem operasi berbasis mikro karnel untuk mengarasi kebutuhan komutasi terdistribusi tingkat tinggi di dalam bidang relekomunikasi internetworking. Sistem tambahan realtime sistem unic , supercimputing, dan kegunaan yang tinggi . multiserver chorus/mix merupakan implementasi dari unix yang memberikan kebebasan untuk secara dinamis menintegrasikan bagian bagian dari fungsi standar di unix dan juga service dan aplikasi di dalamnya

-Glunix (University of california, berkeley) sampai saat ini workstation dengan modem tidak memberikan hasil yang baik untuk mebuat eksekusi suati sistem operasi terdistribusi dalam lingungan yang shared dengan aplikasi yang berurutan. Hasil dari penelitian ini adalah untuk menepatkan resource untuk performa yang lebih baik . baik untuk aplikasi pararel maupun yang seri/ berurutan. Untuk merealisasikan hal ini maka sistem operasi harus menjadwalkan pencabangan dari program pararel mengidentifikasi idle resouce di jaringan, mengijinkan migrasi prise untuk mendukung keseimbangan loading dan menghasilkan tumpuan untuk antar proses komunikasi 

Rabu, 14 Oktober 2015

Proses


  • Thread
    adalah sebuah alur kontrol dari sebuah proses. kontrol thread tunggal ini banyak memungkinkan proses untuk menjalankan satutugas pada satu waktu. banyak SO moderen yang telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan di dalam proses yang sama , maka SO tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
    Keuntungan dari multithreaded yaitu peningkatan respondari pengguna, pembagian sumber daya proses, ekonomisdan kemampuan untuk mengambil keuntungan dari arsitektur multiprosessor. threadd merupakan unit dasar dari penggunaan CPU , yang terdiri dari thread_ID, program counter, register set dan stack, sebuah tread berbagi code section, data section dan sumber daaya SO dengan thread lain yang dimiliki oleh proses yang sama heavyweight process mempunyai thread tungga yang berfungsi sebagai pengen dali
    Perbedaan antara thread dan multithreadd seperti pada gambar dibawah ini :
                  
    banyak perangkat lunak sekarang dirancang dengan multithreadding , biasanya di bagi menjadi beberapa thread yang berfungsin untuk pengendali contoh sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network

    Keuntungan Thread
    keuntungan dari program yang multithreadding dapat di pisah menjadi 4 kategori :
    1. Responsi , Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.

    2. Berbagi sumber daya . Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

    3. Ekonomi , dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread.

    4.Utilisasi Arsitektur Multiprocessor , Keuntungan  dari  multithreading  dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda

    Multithreading Model
    beberapa terminologi yang akan di bahas :
    1. THread penguna , pengaturan di lakukan oleh pustaka thread pada tingkatan pengguna karna pustaka menyediakan fasilitas untuk pembuatan dan penjadwalan thread , thread pengguna cepat dibuat dan dikendalikan

    2.Thread karnel , didukung langsung oleh karnel, pembuatan penjadwalan dan manajemen thread dilakukan oleh karnel pada karnel space karena dilakukan oleh SO , pembuatannya akan lebih lambat dari thread pengguna.

    Model Model Multithreadding
    1. Model Many to One , memetakan  beberapa  thread  tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor.

    2. Model one to one , Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan  thread  kernel.

    3. Mode Many to Many , Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor

                               
    Pustaka Thread
    ataujuga thread library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread ada 2 cara mengimplementasikan nya sbb :
    1. Menyediakan API dalam level pengguna tanpa dukungan dari karnel sehinga pemangilan fungsi tidak melalui system call

    2. menyediakan API di level karnel yang didukung secara langsung oleh SO, pemangilan fungsi call akan melibatkan system call ke karnal

    ada 3 pustaka thread saat ini yaitu POSIX , JAva, dan win32

    Pembatalan thread ( thread cancellation )
    ialah pembatalan thread sebelum tugasnya selesai jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dibatalkan terlebih dahulu.
    Pemberhentian target thread dapat di lakukan dengan 2 cara sbb :
    1. Asynchronous cancellation , suatu thread seketika itu juga membatalkan target thread

    2. Deferrend cancellation , suatu thread secara periodik memeriksa apakah harus dibatalkan cara ini memperoleh target thread untuk membatalkan dirinya secara tururut.

    Hal yang sulit dari pembatalan thread adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan di batalkan , selain itu ketika thread yang dibatalkan sedang mengupdate data yang ia bagi dengan thread lain. ini akan jadi maslah yang sulit apabila digunakan asynchronous cancellation. Alternatif nya dengan menggunakan defferend cancelalation , cara kerja nya dengan menggunakan satu thread yang berfungsi sebagai pengindiasi bahwa target thread hendak dibatalkan, tapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal pada waktu dimana. Pthread merujuk sebagai cancellation pointsPada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation

    Penjadwalan thread
    Thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.
    sistem model mulithtreadding many to many atau many to one menggunekan
    1. Process countetion scope (PCS) , menjadwalkan thread pengguna untuk berjalan pda LWP ( light weight process ) yang tersedia
    2.System contention scope ( SCS) berfungsi memilih satu dari banyak thread, kemudian di jadwalkan ke satu tread tertentu.
  • Client Server 
    client server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi kedalam dua pihak client dan server. client server harus terdapat satu atau beberapa server yang menyediakan layanan dan satu atau beberapa client yang meminta layanan tersebut. 
    Server bisa juga berupa proses, seperti RPC Server yang terdapat pada sistem operasi server seperti Novell, Windows NT, Linux dll. Lebih dalam lagi, pada kernel (inti) sebuah sistem operasi juga banyak terdapat proses-proses yang bertanggung- jawab menyediakan layanan-layanan agar hardware komputer dapat bekerja sebagai mana mestiya. Microsoft menamakan proses tersebut services sedangkan keluarga Unix/Linux menyebutnya daemons. Services/daemons  tersebut  umumnya menyediakan manajemen  memory,  akses file/jaringan,  serta  penjadwalan (scheduling).
                     
    Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server. Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.
    Karakteristik server yaitu pasif, mengunggu request , menerima request dan memperoses mereka dan mengirimkan balasan berupa service. sedangkan client yaitu aktif , mengirim request , dan mengunggu dan menerima balasan dari server.
    Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. Socket dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara umum socket digunakan dalam client/server system, dimana sebuah server akan menunggu client pada port tertentu

    Model CLient Server
    ada bebrapa model yang penting di ketahui ialah sebagai berikut
    1. Arsitektur mainframe , arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan. Melalui komputer terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya memiliki monitor/keyboard dan tidak memiliki CPU. Semua  sumber  daya  yang  diperlukan  terminal  dilayani  oleh  komputer  host

    2. Arsitektur File Sharing , komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing memiliki keterbatasan, terutama jika jumlah pengakses semakin banyak serta ukuran file yang di shaing sangat besar

    3. Arsitektur CLient Server , keterbatasan  sistem  file  sharing,  dikembangkanlah  arsitektur client/server. Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server. Dikenalkan pula RDBMS (Relational Database Management System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi  hanyalah  hasil  dari  query  tersebut

    4. Model Two tier 

    model ini terdiri dari tiga komponen yang disusun menjadi dua lapisan: client (yang meminta service) dan server (yang menyediakan service). Tiga komponen tersebut yaitu :

    User Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user. Manajemen proses , Database

    Model  ini  memisahkan  peranan  user  interface  dan  database  dengan  jelas, sehingga terbentuk dua lapisan               
                                
    Pada gambar tersebut, user interface yang merupakan bagian dari program aplikasi melayani input dari user. Input tersebut diproses oleh Manajemen Proses dan melakukan query data ke database (dalam bentuk perintah SQL). Pada database server juga bisa memiliki Manajemen Proses untuk melayani query tersebut, biasanya ditulis ke dalam bentuk Stored Procedure
    5. Model Three Tier , Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier. Tier tersebut dinamakan middle-tier. Middle-Tier terdiri dari bussiness  logic  dan  rules  yang  menjembatani  query  user  dan  database, sehingga program aplikasi tidak bisa mengquery langsung ke database server, tetapi harus memanggil prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier. Dengan adanya server middle-tier ini, beban database server berkurang. Jika query semakin banyak dan/atau jumlah pengguna bertambah, maka server-server ini dapat ditambah, tanpa merubah struktur yang sudah ada
             
  • Agent
    Software Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya  software  agent  nantinya  disebut  agent  saja.  Agent  bisa  memiliki  ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent
    karakteristik dari Agent :
    1. Autonomy
    2. Intelligence , Reasoning , dan learning
    3. Mobility dan stationary
    4. Delagation
    5. Reactivity
    6. Proactivity dan Gold Oriented
    7. COmunication and coordination capability

    Klasifikasi software agent
    1. Klasifikasi menurut karakter yang dimiliki
    menurut Nwana agent bisa di klasifikasikan menjadi 7 berdasarkan karakterisitiknya

    - Collaborative agent , Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System 
    - Interface Agent , Agent  yang  memiliki  kemampuan  untuk  berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user
    - Mobile Agent , Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam lingkungan jaringan komputer
    - Information dan internet Agent , Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri
    - Reactive agent , Agent   yang   memiliki   kemampuan   untuk   bis cepat beradaptasi dengan lingkungan baru dimana dia berada
    - Hybrod Agent adalah gabungan dari 5 karakteristik yang sebelumnya

    - Heterogeneous Agent System , Dalam lingkungan (MAS), apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.

    2. Klasifikasi menurut Lingkungan dimana di jalankan
    a. Desktop Agent , Agen yang bertugas dalam lingkungan personal computer dan berjalan diatas suatu OS termasuk dalam klasifikasi ini adalah
    - Operating system Agent
    - Application Agent
    - Application Suite Agent

    b. Internet Agent , Agent yang bertugas dalam lungkungan jaringan internet , melakukan tugas memanage informasi yang ada di internet termasuk dalam kalsifikasi ini adlah :
    - Web search agent
    - web server agent
    - information filtering agent
    - information retrieval agent
    - notification agent
    - service agent
    - mobile agent

    c.Intranet Agent , agent yang bertugas dalam lingkungan jaringan intranet melakukan tugas memanange informasi yang ada di intranet termasuk dalam klasifikasi ini adlaalah
    - collaborative customization agent
    - process automation agent
    - database agent
    - resource brokering agent

    Bahasa Pemograman yang di gunakan
    Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan diantaranya yaitu :
    - Object Orientedness , pemrograman berorientasi objek

    - Platfrom independence , pemrograman yang dipakai untuk implementasi adalah yang terlepas dari platform atau dengan kata lain program tersebut harusbisa dijalankan di platform apapun

    - comunication capability , pemograman yang dapat mensupport pemrograman yang berbasi network dan komunikasi

    - security ,
    - code manipulation , pomograman yang mensupport level level keamanan yang bisa membuat agent bergerak dengan aman

    - code manipulation , pemograman yang layak untuk mengimplementasikan agent adalah sebagai berikut : Java , Telescript , Tcl/Tk, Safe-Tcl, Agent-Tcl