Selasa, 25 Maret 2014

The conclution of Mobile Computing Effects to Education Computing Progress.

The conclution of Mobile Computing Effects to Education Computing Progress.
In the mobile computing digital era has many roles in improving the quality in world of education. Because it could help and facilitate the day-to-day learning. The capabilities and characteristics of mobile computing also allows the distance learning process to be more effective and efficient and get better result. Even according to M. Mukhopadhay M., 1992 “Globalization has triggered a shift in education from to-face education conventional to more open education.

Many developed countries already implementing mobile computing technology in teaching and learning process. For example, mobile computing in developed countries is learning together in their education, or called collaborative learning, has been proven to improve test score and reduce dropouts by 22%. Mobile technology has found a way to be able to perform collaborative learning, in wich various students can discuss in the web forum to make database together, about anything based their location each other. In France, the project “Flexible Learning” has been applied to the system of education. It is reminiscent of Ivan Illich forecast early 70s on “Education without school (Deschooling Socieiy)”. Meanwhile in developing countries like Malaysia, “Problem Based Learning” with mobile learning technology or M-Learning is said still new in terms of its implementation. For Harvard Medical School project, ArcStream Solutions was hired to develop solutions based on the Palm OS mobile platform that facilitates communication between students and faculty, and which provide detailed program information. Florida State University College of Medicine is used to develop a solution ArcStream Clinical Data Collection System ( CDC ) which allows students to take and edit patient reports . But development continued in order to obtain good results for the quality of education in Indonesia .

The advantages of mobile computing:
  • ·         The use of e-books to be efficient in the learning process.
  • ·         Being less expensive because of the lack of accommodation for buildings, school supplies, and    transportation.
  • ·         Academic students can be controlled by the parents.


Disadvantages of mobile computing:
  • ·         The storage capacity of mobile computing technology becomes a problem
  • ·         Depending on the sophistication of the Internet and mobile devices
  • ·         In terms of psychology, socialization or interaction of neighbor will be reduced this will result in people tend to be apathetic.


Proses Thread

Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
Perbedaan antara proses dengan thread tunggal dan proses dengan thread yang banyak adalah proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Gambar 3.1. Thread
Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multi-threading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani

Proses Hal. 1 Sistem Terdistribusi




satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

Keuntungan Thread
Keuntungan dari program yang multithreading dapat dipisah menjadi empat 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. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan 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. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum). 


source:
http://naeli.staff.gunadarma.ac.id/Downloads/folder/0.1
http://www.itinfopoint.com/contentsimages/20130603-multithread.png
http://dee-x-cisadane.webs.com/apps/blog/show/10299581-perbedaan-proses-dan-thread-perbedaan-file-service-file-system-dan-file-server-beserta-contohnya-

link terkait:
1
2
3
4

Senin, 17 Maret 2014

Remote Procedure Call

Definisi RPC
RPC adalah suatu protokol yang menyediakan suatu mekanisme
komunikasi antar proses yang mengijinkan suatu program untuk berjalan
pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang
jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol
transportasi seperti TCP atau UDP untuk membawa pesan data dalam
komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal
Data Representation (XDR), yang merupakan standar dari representasi data
dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari
tiap servis RPC yang disediakan.

Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan
prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur
panggilan remote (remote procedure calls) didefinisikan melalui rutin yang
terkandung didalam protokol RPC. Tiap message dari panggilan akan
disesuaikan dengan message balikan. Protokol RPC sendiri sebenarnya adalah
suatu protokol untuk ”meneruskan pesan” yang mengimplemntasikan
protokol non-RPC lain seperti panggilan remote batching dan broadcasting.
Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server.




Kelebihan dan Kekurangan RPC
Kelebihan RPC


-Relatif mudah digunakan : Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti socket, marshalling & unmarshalling.

-Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.
Kekurangan RPC

- Tidak fleksibel terhadap perubahan: hubungan anatara client dan server bersifat static.

- Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.


Prinsip Dasar RPC


Skema RPC ini dilakukan juga pada proses-proses 



Langkah-langkah dalam RPC 

1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub
7. Server stub mem-pack hasil tsb dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke Clientyang running di komputer berlainan

Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam format transimisi. Langkah ini dinamakan marshalling. Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote). Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan (Stub adalah kode untuk mengkonversi parameter yang dipassing saat RPC berjalan).




source:
http://en.wikipedia.org/wiki/Remote_procedure_call


Link Terkait:
1
2
3
4 

Selasa, 11 Maret 2014

Model Sistem Terdistribusi

Pengantar

Model
Menyediakan sebuah gambaran abstrak aspek yang relevan dengan sistem

Tujuan
Menyediakan sebuah kerangka kerja untuk memahami permasalahan dan pemecahannya

Model Arsitektural
Hubungan dan interkoneksi seperti apa antara komponenkomponen dari sistem terdistribusi

Model Fundamental
Karakteristik apa yang mempengaruhi dependability sistem terdistribusi?
Dependability : correctness, reliability, security

KESULITAN DAN ANCAMAN
Mode pemakaian
Variasi yang beragam terhadap karakteristik pemakaian
Contoh : berapa banyak halaman di kunjungi

Masalah Internal
o   Masalah concurrency
o   Masalah clock
o   Mode kegagalan

Lingkungan Sistem
o   Sistem terdistribusi harus mengakomodasi heterogenitas hardware, sistem operasi dan jaringan
o   Contoh : berapa banyak versi SO?

Ancaman Eksternal
o   Serangan terhadap kesatuan data dan keamanannya



Model Arsitektur Sistem Terdistribus Mendefinisikan:
-       Komponen software (proses, object)
-       Cara berinteraksi antar komponen
-       Pemetaan komponen pada sistem jaringan utama
Dibutuhkan untuk:
-       menangani lingkungan dan penggunaan yang beragam
-       menjamin unjuk kerja

Tipe utama model arsitektur
-       Client-Server : pertama dan paling banyak digunakan,
-       Multiple Server: meningkatkan unjuk kerja dan reliabilitas (mis search engine: google, yahoo, vivisimo, metdrawler)
-       Proxy servers: mengurangi load jaringan dengan menyediakan akses melalui firewall.

-       Peer process: untuk kebutuhan repon interaktif yang cepat (dedicated)




Client-Server

Sistem yang terdiri dari kumpulan - kumpulan proses disebut dengan server, dan memberikan layanan kepada user yang disebut dengan client.
Model client-server biasanya berbasiskan protokol request/reply. Contoh implementasinya antara lain: RPC (Remote Procedure Calling) dan RMI (Remote Method Invocation).

Ø  Client: proses untuk mengakses data, menggunakan sesumber atau melakukan operasi pada komputer yang berbeda
Ø  Server: proses yang mengatur data dan semua sesumber yang di share di antara server dan client, memungkinkan client mengakses sesumber dan melakukan komputasi
Ø  Interaction: pasangan pesan pemanggilan (invocation) / hasil (result)
Ø  Example
-          http server: client (browser) meminta dokumen, server mengirimkan dokumen yang diminta
Ø  Caching of services (proxy servers)
-          caching terhadap halaman web yang sering digunakan
Ø  Peer processes (not client-server)
-          proses-proses yang secara fungsional identik



Multiple Server



Ø  Service disediakan oleh beberapa server
Ø  Contoh : sebagian besar layanan web komersial diterapkan melalui server fisik yang berbeda
Ø  Motivasi :
        Unjuk kerja (contoh : cnn.com, download server, dll)
        kehandalan
Ø  Server menggunakan replikasi atau database terdistribusi







Proxy Server


Proxy server menyediakan hasil copy (replikasi) dari resource yang diatur oleh server lain. Biasanya proxy server dipakai untuk menyimpan hasil copy web resources. ketika client melakukan request ke server, hal pertama yang dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server.
Proxy server dapat diletakan pada setiap client atau dapat dipakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencagah frekuensi akses server.
Proxy server membuat duplikasi beberapa server yang diakses oleh client.


Contoh model proxy server : searching satu topik namun dilakukan dua kali maka searching terakhir memiliki waktu yang lebuh kecil.

Ø  Server dengan duplikasi informasi yang melayani sebagai proxy
Ø  Caching :
        Penyimpan lokal untuk item-item yang sering digunakan
        Meningkatkan unjuk kerja
        Mengurangi beban pada server
Ø  Biasanya digunakan pada search engine




Peer to Peer

Bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan fleksible. 

• Peer processes
– menjaga konsistensi sesumber
– sinkronisasi aksi
• contoh: Whiteboard
– menggunakan central server
– menggunakan peer processes



source:
        http://lecturer.ukdw.ac.id
        DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN, Chapter 1, Introduction
        Model Sistem Terdistribusi, Budi Susanto,
        budsus@ukdw.ac.id, budsus@yahoo.com

        Software Enginering, Chapter 6


Link Berkaitan:
1
2
4
5