Sabtu, 28 Juni 2014
Selasa, 13 Mei 2014
Senin, 28 April 2014
Cloud Computing
What is cloud computing?
Cloud computing means
that instead of all the computer hardware
and software you're using sitting on your desktop, or somewhere inside your
company's network,
it's provided for you as a service by another company and
accessed over the Internet,
usually in a completely seamless way. Exactly where the hardware and software
is located and how it all works doesn't matter to you, the user—it's just
somewhere up in the nebulous "cloud" that the Internet represents.
Cloud computing is a buzzword
that means different things to different people. For some, it's just another
way of describing IT (information technology) "outsourcing"; others
use it to mean any computing service provided over the Internet or a similar
network; and some define it as any bought-in computer service you use that sits
outside your firewall. However we define cloud computing, there's no doubt it
makes most sense when we stop talking about abstract definitions and look at
some simple, real examples—so let's do just that.
Simple examples of cloud
computing
Most of us use cloud computing
all day long without realizing it. When you sit at your PC and type a query
into Google, the computer on your desk isn't playing much part in finding the
answers you need: it's no more than a messenger. The words you type are swiftly
shuttled over the Net to one of Google's hundreds of thousands of clustered
PCs, which dig out your results and send them promptly back to you. When
you do a Google search, the real work in finding your answers might be done by
a computer sitting in California, Dublin, Tokyo, or Beijing; you don't know—and
most likely you don't care!
The same applies to Web-based
email. Once upon a time, email was something you could only send and receive
using a program running on your PC (sometimes called a mail client). But then
Web-based services such as Hotmail came along and carried email off into the
cloud. Now we're all used to the idea that emails can be stored and processed
through a server in some remote part of the world, easily accessible from a Web
browser, wherever we happen to be. Pushing email off into the cloud makes it
supremely convenient for busy people, constantly on the move.
Preparing documents over the Net
is a newer example of cloud computing. Simply log on to a web-based service
such as Google Documents and you can create a document, spreadsheet,
presentation, or whatever you like using Web-based software. Instead of typing
your words into a program like Microsoft Word or OpenOffice, running on your
computer, you're using similar software running on a PC at one of Google's
world-wide data centers. Like an email drafted on Hotmail, the document you
produce is stored remotely, on a Web server, so you can access it from any
Internet-connected computer, anywhere in the world, any time you like. Do you
know where it's stored? No! Do you care where it's stored? Again, no! Using a
Web-based service like this means you're "contracting out" or
"outsourcing" some of your computing needs to a company such as
Google: they pay the cost of developing the software and keeping it up-to-date
and they earn back the money to do this through advertising and other paid-for
services.
What makes cloud computing
different?
It's managed
Most importantly, the service you
use is provided by someone else and managed on your behalf. If you're using
Google Documents, you don't have to worry about buying umpteen licenses for
word-processing software or keeping them up-to-date. Nor do you have to worry
about viruses that might affect your computer or about backing up the files you
create. Google does all that for you. One basic principle of cloud computing is
that you no longer need to worry how the service you're buying is provided:
with Web-based services, you simply concentrate on whatever your job is and
leave the problem of providing dependable computing to someone else.
It's "on-demand"
Cloud services are available
on-demand and often bought on a "pay-as-you go" or subscription
basis. So you typically buy cloud computing the same way you'd buy electricity,
telephone services, or Internet access from a utility company. Sometimes cloud
computing is free or paid-for in other ways (Hotmail is subsidized by
advertising, for example). Just like electricity, you can buy as much or as
little of a cloud computing service as you need from one day to the next.
That's great if your needs vary unpredictably: it means you don't have to buy
your own gigantic computer system and risk have it sitting there doing nothing.
It's public or private
Now we all have PCs on our desks,
we're used to having complete control over our computer systems—and complete
responsibility for them as well. Cloud computing changes all that. It comes in
two basic flavors, public and private, which are the cloud equivalents of the
Internet and Intranets. Web-based email and free services like the ones Google
provides are the most familiar examples of public clouds. The world's biggest
online retailer, Amazon, became the world's largest provider of public cloud
computing in early 2006. When it found it was using only a fraction of its
huge, global, computing power, it started renting out its spare capacity over
the Net through a new entity called Amazon Web Services. Private cloud computing
works in much the same way but you access the resources you use through secure
network connections, much like an Intranet. Companies such as Amazon also let
you use their publicly accessible cloud to make your own secure private cloud,
known as a Virtual Private Cloud (VPC), using virtual private network (VPN)
connections.
Types of cloud computing
IT people talk about three
different kinds of cloud computing, where different services are being provided
for you. Note that there's a certain amount of vagueness about how these things
are defined and some overlap between them.
- Infrastructure as a Service (IaaS) means
you're buying access to raw computing hardware over the Net, such as
servers or storage. Since you buy what you need and pay-as-you-go, this is
often referred to as utility computing. Ordinary web
hosting is a simple example of IaaS: you pay a monthly
subscription or a per-megabyte/gigabyte fee to have a hosting company
serve up files for your website from their servers.
- Software as a Service (SaaS) means you
use a complete application running on someone else's system. Web-based
email and Google Documents are perhaps the best-known examples. Zoho is
another well-known SaaS provider offering a variety of office applications
online.
- Platform as a Service (PaaS) means you
develop applications using Web-based tools so they run on systems software
and hardware provided by another company. So, for example, you might
develop your own ecommerce website but have the whole thing, including the
shopping cart, checkout, and payment mechanism running on a merchant's
server. Force.com (from salesforce.com) and the Google App Engine are
examples of PaaS.
Advantages and disadvantages of
cloud computing
What's good and bad about cloud
computing?
Advantages
The pros of cloud computing are
obvious and compelling. If your business is selling books or repairing shoes,
why get involved in the nitty gritty of buying and maintaining a complex
computer system? If you run an insurance office, do you really want your sales
agents wasting time running anti-virus software, upgrading word-processors, or
worrying about hard-drive crashes? Do you really want them cluttering your
expensive computers with their personal emails, illegally shared MP3 files,
and naughty YouTube videos—when you could leave that responsibility to someone
else? Cloud computing allows you to buy in only the services you want, when you
want them, cutting the upfront capital costs of computers and peripherals. You
avoid equipment going out of date and other familiar IT problems like ensuring
system security and reliability. You can add extra services (or take them away)
at a moment's notice as your business needs change. It's really quick and easy
to add new applications or services to your business without waiting weeks or
months for the new computer (and its software) to arrive.
Drawbacks
Instant convenience comes at a
price. Instead of purchasing computers and software, cloud computing means you
buy services, so one-off, upfront capital costs become ongoing operating costs
instead. That might work out much more expensive in the long-term.
If you're using software as a
service (for example, writing a report using an online word processor or
sending emails through webmail), you need a reliable, high-speed, broadband Internet
connection functioning the whole time you're working. That's something we take
for granted in countries such as the United States, but it's much more of an
issue in developing countries or rural areas where broadband is unavailable.
If you're buying in services, you
can buy only what people are providing, so you may be restricted to off-the-peg
solutions rather than ones that precisely meet your needs. Not only that, but
you're completely at the mercy of your suppliers if they suddenly decide to
stop supporting a product you've come to depend on. (Google, for example, upset
many users when it announced in September 2012 that its cloud-based
Google Docs would drop support for old but de facto standard
Microsoft Office file formats such as .DOC, .XLS, and .PPT, giving a mere one
week's notice of the change—although, after public pressure, it later
extended the deadline by three months.) Critics charge that cloud-computing is
a return to the bad-old days of mainframes and proprietary systems, where
businesses are locked into unsuitable, long-term arrangements with big,
inflexible companies. Instead of using "generative" systems (ones
that can be added to and extended in exciting ways the developers never
envisaged), you're effectively using "dumb terminals" whose uses are
severely limited by the supplier. Good for convenience and security, perhaps,
but what will you lose in flexibility? And is such a restrained approach good
for the future of the Internet as a whole? (To see why it may not be, take a
look at Jonathan Zittrain's eloquent book The Future
of the Internet—And How to Stop It.)
Selasa, 01 April 2014
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.Kelebihan RPC
-Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.
- 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)
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
Ø
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 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.
Ø
Server dengan duplikasi informasi yang melayani
sebagai proxy
Ø
Caching :
–
Penyimpan lokal untuk item-item yang sering
digunakan
–
Mengurangi beban pada server
Ø
Biasanya digunakan pada search engine
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
Langganan:
Postingan (Atom)