Laman

Kamis, 19 Juni 2014

Parallel Processing

Parallelism Concept
A parallel computer is a set of processors that are able to work cooperatively to solve a computational problem. This definition is broad enough to include parallel supercomputers that have hundreds or thousands of processors, networks of workstations, multiple-processor workstations, and embedded systems. Parallel computers are interesting because they offer the potential to concentrate computational resources---whether processors, memory, or I/O bandwidth---on important computational problems.
Parallelism has sometimes been viewed as a rare and exotic subarea of computing, interesting but of little relevance to the average programmer. A study of trends in applications, computer architecture, and networking shows that this view is no longer tenable. Parallelism is becoming ubiquitous, and parallel programming is becoming central to the programming enterprise.

Distributed Processing
Distributed computing is a computing concept that, in its most general sense, refers to multiple computer systems working on a single problem. In distributed computing, a single problem is divided into many parts, and each part is solved by different computers. As long as the computers are networked, they can communicate with each other to solve the problem. If done properly, the computers perform like a single entity.
The ultimate goal of distributed computing is to maximize performance by connecting users and IT resources in a cost-effective, transparent and reliable manner. It also ensures fault tolerance and enables resource accessibility in the event that one of the components fails.

Parallel Computer
The Flynn taxonomy of parallel machines: Flynn classified processors according to how many instruction and data streams they can handle simultaneously.
  • Single or multiple instruction streams.
  • Single or multiple data streams.
1. SISD machine: An ordinary serial computer.
At any given time, at most one instruction is being executed, and the instruction affects at most one set of operands (data).

2. SIMD machine: At the right is a diagram of an array processor.
Several identical ALUs, may process, for example, a whole array at once. However, the same instructions must be performed on all data items.

3.MISD machine: Several instructions operate simultaneously on each operand.
Generally unrealistic for parallel computers!

4. MIMD machine: Several complete processors connected together to form a multiprocessor.
The processors are connected together via an interconnection network to provide a means of
cooperating during the computation. The processors need not be identical. Can handle a greater variety of tasks than an array processor.

Threads Programming
Threads are a relatively lightweight way to implement multiple paths of execution inside of an application. At the system level, programs run side by side, with the system doling out execution time to each program based on its needs and the needs of other programs. Inside each program, however, exists one or more threads of execution, which can be used to perform different tasks simultaneously or in a nearly simultaneous manner. The system itself actually manages these threads of execution, scheduling them to run on the available cores and preemptively interrupting them as needed to allow other threads to run.
From a technical standpoint, a thread is a combination of the kernel-level and application-level data structures needed to manage the execution of code. The kernel-level structures coordinate the dispatching of events to the thread and the preemptive scheduling of the thread on one of the available cores. The application-level structures include the call stack for storing function calls and the structures the application needs to manage and manipulate the thread’s attributes and state.
In a non-concurrent application, there is only one thread of execution. That thread starts and ends with your application’s main routine and branches one-by-one to different methods or functions to implement the application’s overall behavior. By contrast, an application that supports concurrency starts with one thread and adds more as needed to create additional execution paths. Each new path has its own custom start routine that runs independently of the code in the application’s main routine. Having multiple threads in an application provides two very important potential advantages:
Multiple threads can improve an application’s perceived responsiveness. Multiple threads can improve an application’s real-time performance on multicore systems.

Cuda GPU 

CUDA (Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. CUDA gives program developers direct access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.

Using CUDA, the GPUs can be used for general purpose processing (i.e., not exclusively graphics); this approach is known as GPGPU. Unlike CPUs, however, GPUs have a parallel throughput architecture that emphasizes executing many concurrent threads slowly, rather than executing a single thread very quickly. Here are a few examples:
Analyze air traffic flow: The National Airspace System manages the nationwide coordination of air traffic flow. Computer models help identify new ways to alleviate congestion and keep airplane traffic moving efficiently. Using the computational power of GPUs, a team at NASA obtained a large performance gain, reducing analysis time from ten minutes to three seconds.

Reference :
http://www.mcs.anl.gov/~itf/dbpp/text/node7.html
http://www.techopedia.com/definition/7/distributed-computing-system
people.engr.ncsu.edu/efg/506/sum99/001/lec1-intro.pdf
https://developer.apple.com/library/mac/Documentation/Cocoa/Conceptual/Multithreading/AboutThreads/AboutThreads.html
http://en.wikipedia.org/wiki/CUDA
http://www.nvidia.com/object/cuda_home_new.html

Minggu, 11 Mei 2014

Quantum Computation

 What is quantum computation ?
Quantum computing is system computation technology based on the principles of quantum theory, which explains the nature and behavior of energy and matter on the quantum (atomic and subatomic) level. This computation use qubit not bit. quantu coomputation make  to solve some types of mathematical problems on few second. This super computer can try all possible solutions at the same time, and choose the best.

Entanglement
Entanglement is a term used in quantum theory to describe the way that particles of energy/matter can become correlated to predictably interact with each other regardless of how far apart they are. Particles, such as photons, electrons, or qubits that have interacted with each other retain a type of connection and can be entangled with each other in pairs, in the process known as correlation.

Data qubit operations
A qubit is a quantum bit , the counterpart in quantum computing to the binary digit or bit of classical computing. Just as a bit is the basic unit of information in a classical computer, a qubit is the basic unit of information in a quantum computer . In a quantum computer, a number of elemental particles such as electrons or photons can be used (in practice, success has also been achieved with ions), with either their charge or polarization acting as a representation of 0 and/or 1. Each of these particles is known as a qubit; the nature and behavior of these particles (as expressed in quantum theory ) form the basis of quantum computing. The two most relevant aspects of quantum physics are the principles of superposition and entanglement .

Quantum gates
quantum gate (or quantum logic gate) is a basic quantum circuit operating on a small number of qubits. They are the building blocks of quantum circuits, like classical logic gates are for conventional digital circuits. Unlike many classical logic gates, quantum logic gates are reversible. However, classical computing can be performed using only reversible gates. For example, the reversible Toffoli gate can implement all Boolean functions. This gate has a direct quantum equivalent, showing that quantum circuits can perform all operations performed by classical circuits.

Shors algorithm
Shors algorithm named after the mathematician Peter Shor, is a quantum algorithm . This algorithm  runs on a quantum computer and useful for integer factorization. Shors algorithm was formulated in 1994. Essence of this algorithm is how to resolve the factorization of the number interger or a large integers.




Reference :
http://whatis.techtarget.com/
http://en.wikipedia.org/


Kamis, 24 April 2014

Cloud Computing


What is cloud computing ?






                Cloud computing is  integrated collection of resources use virtualization technology and accessed through the website. The resources are hardware, software and storage. Cloud computing provide three services  to take advantage of these resources. The services are Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS). Software as a Service (SaaS) ) is service from cloud computing to provide software. Example SaaS : Public email service (Gmail, Yahoomail, Hotmail, etc.), social networks (Facebook, Twitter, etc.) instant messaging (YahooMessenger, Skype, GTalk, etc.), Office 365, google docs. Platform as a Service (PaaS) is service from cloud computing where we rent “home” and its environment (operating system, network, database engines, application frameworks, etc.). Example PaaS : Amazon Web Service, Windows Azure, and hosting. Infrastructure as a Service (IaaS) is service from cloud computing where we can "rent" IT infrastructure (compute, storage, memory, network, etc.). Example Infrastructure as a Service (IaaS) Amazon EC2, Windows Azure (soon), TelkomCloud, BizNetCloud.

Benefit of Cloud Computing
            From three services of cloud computing , there are some benefit offered to users. Benefit of Software as a Service (SaaS) we don’t need to buy license and just connect to internet to use it. Benefit of  Platform as a Service (PaaS) we as developers can focus to make applications without think about operations of "home" for the application that we created. Benefit of Infrastructure as a Service (IaaS) we don’t need to buy physical computer and we can  change configuration virtual computer (scale up / scale down) easily.

 Working Principle of Cloud Computing
            Users have easeness to work by cloud computing because working principle of cloud computing adopt flexibility. This principle use internet to access resource of cloud computing wherever user is located. Besides flexibility principle cloud computing is on-demand, users can access data or application in cloud whenever they want.

Characteristics of Cloud Computing
  1. On-demand capabilities:  Users have access to user’s services and users have the power to change cloud services through an online control panel or directly with the provider.  Users can add or delete users and change storage networks and software as needed.
  2. Broad network access:  Useer can access business management solutions using their smartphones, tablets, laptops, and office computers.  They can use these devices wherever they are located with a simple online access point. 
  3. Resource pooling:  The cloud enables users to enter and use data within the business management software hosted in the cloud at the same time, from any location, and at any time. 
  4.  Rapid elasticity:  If anything, the cloud is flexible and scalable to suit users immediate business needs.  Users can quickly and easily add or remove software features, and other resources.
  5.  Measured service:  Going back to the affordable nature of the cloud, users only pay for what users use.  Users and user’s cloud provider can measure storage levels, processing, bandwidth, and the number of user accounts and users are billed appropriately. 
Security of Cloud Computing
            Issue security and privacy in cloud computing still doubtful by users. According to Chief Technology Officer Vision Solutions, Alan Arnold The data stored on the cloud platform is actually more secure, because there is a rule that requires every cloud computing service providers complied with the relevant laws and regulations. One of the rules to manage the security system for cloud platform is ISO 27002, this is the standard practice of information security and the security level that must be owned by the service provider cloud.

Cloud Computing Concept of Working
            The first users have to make user id in one of service provider cloud computing. For example cloud storage dropbox. Usually user have to input name, email,  and password. After user make id, user can sign in with their id to access dropbox. Finally users have storage cloud in dropbox.  Users can save data in dropbox but free account just have 2 Gb storage capacity. Users only pay for upgrade storage capacity. Users use internet to access website. Website is cloud computing inteface. From website user can access resource cloud computing.

 





Referensi
http://cloudindonesia.or.id
http://erpbloggers.com/2013/07/the-five-essential-characteristics-of-cloud-computing/
http://tekno.liputan6.com/read/616537/isu-keamanan-dan-privasi-masih-hantui-pengguna-cloud-computing

Kamis, 27 Maret 2014

Tantangan Sistem Terdistribusi

Pada sebuah sistem terdistribusi, terdapat berbagai macam tantangan yang harus dihadapi oleh sistem ini agar kedepannya sistem terdistribusi dapat menghasilkan sistem yang tidak hanya efektif dan efisien tetapi dapat meningkatkan kinerja bagi penggunanya. Berikut beberapa tantangan yang harus dihadapi oleh sistem terdistribusi :

Heterogenity

Pada sebuah sistem terdistribusi, banyak dijumpai berbagai macam elemen yang dapat menimbulkan berbagai macam kendala jika disatukan. Heterogenitas yang dihadapi meliputi :


  • Jaringan
  • Hardware
  • Sistem Operasi
  • Bahasa Pemograman
  • Implementasi dari pengembang yang berbeda

Sebagai contoh setiap pengembang memiliki jaringan yang berbeda-beda untuk komputer pada jenis jaringan yang berbeda akan membutuhkan implementasi protokol internet agar dapat saling bekomunikasi satu sama lain. Kemudian pada program-program yang dibuat oleh pengembang yang berbeda tidak dapat berinteraksi satu sama lain. Maka dari itu dibuatlah middleware untuk mengatasi permasalahan itu. Menurut buku Distributed System Concept and Design yang ditulis oleh George Coulouris, Middleware merupakan istilah untuk lapisan perangkat lunak yang menyediakan sebuah abstraksi pemograman dan menutupi heterogenitas seperti perangkat keras, sistem operasi, dan bahasa pemograman. Contoh middleware adalah The Common Object Request Broker (CORBA), Java Remote Method Invocation (RMI). Selain itu middleware juga menyediakan model persamaan komputasi pada pemograman server seperti remote object invocation, remote event notification, remote SQL access and distributed transaction processing. Untuk memecahkan heterogenitas pada  kode mobile digunakannlah java applet. 

Openess
Keterbukaan merupakan syarat agar suatu sistem dapat diperpanjang dan diimplementasikan kembali. Ketersediaan spesifikasi dan dokumentasi interface utama software dari komponen sistem yang dibuat untuk pengembang perangkat lunak adalah awal mula untuk menambah dan memperluas layanan sistem terdistribusi. Maka dari itu para designer interface komponen sistem memperkenalkan "Request For Comment" (RFC) yaitu serangkaian dokumen untuk mengatasi kompleksitas sistem tedistribusi yang terdiri dari banyak komponen dari berbagai pengembang. Secara garis besar menurut buku Distributed System Concept and Design yang ditulis oleh George Coulouris sebagai berikut :
  • Keterbukaan sistem dicirikan oleh diterbitkannya kunci utama interface mereka
  • Sistem Terdistribusi yang terbuka didasarkan pada penyediaan mekanisme komunikasi yang seragam dan diterbitkannya interface untuk mengakses sumber daya.
  • Keterbukaan sistem terdistribusi dapat dibangun dari heterogenitas perangkat keras dan perangkat lunak  yang mungkin dari vendor yang berbeda. Tetapi kesesuaian dari setiap komponen dari standar yang diterbitkan harus diuji dan diverifikasi terlebih dahulu untuk memastikan sistem bekerja dengan benar.

Security
Pada sistem terdistribusi terdapat lalu lintas transaksi data yang padat. Maka dari itu dibutuhkan keamanan untuk menjaga data dari pihak yang tidak berwenang untuk mengaksesnya atau kecerobohan dari diri kita sendiri. Untuk mengamankan informasi, dapat dilakukan dengan metode enkripsi, digital signature, atau algoritma chscksum/hash. Dapat juga menggunakan security service seperti access control, authentication, confidentiality, integrity dan non-repudiation.

Scalability
Sistem terdistribusi dapat dikatakan scalable jika mempunyai kemampuan mendukung berbagai ukuran data atau jumlah pengguna yang menggunakannya. Ada berbagai tantangan desain sistem terdistribusi scalable :
  • Mengendalikan sumber daya fisik

Permintaan untuk sumber daya terus meningkat, harus diikuti dengan perluasan sistem tetapi dengan biaya murah agar kebutuhan itu terpenuhi.
  • Mengendalikan penurunan kinerja
Pertimbangkan pengelolaan sekumpulan data yang ukurannya sebanding dengan jumlah pengguna atau sumber daya dalam sistem.
  • Mencegah habisnya sumber daya perangkat lunak
Pertumbuhan perangkat keras harus diiringi oleh pertumbuhan perangkat lunak agar perkembangan teknologi stabil.
  • Menghindari bottleneck
Sumber daya yang sering diakses secara bersama-sama tanpa diikuti oleh sistem yang scalable dapat membuat sistem bottleneck sehingga terjadi penurunan kinerja.

Ada beberapa cara agar tantangan ini dapat dihadapi seperti penggunaan algoritma yang dapat menghindari bottleneck, distrukturisasi secara hirarkis, replikasi data, dan teknik caching. 

Failure Handling

Didalam sistem terdistribusi proses yang dijalankan dapat mengalami kegagalan. Kegagalan itu bisa terjadi secara bersama atau hanya sebagian komponen dari sebuah sistem. Dilain sisi komponen lain dalam proses harus tetap berjalan dengan baik. Maka dari itu diperlukannya deteksi, retransmission, redundansi penyimpanan data, penanganan eksepsi (misalnya timeout ketika menunggu sumber daya web) atau Replikasi data pada beberapa mesin.

Concurrency
Adanya beberapa user sekaligus yang mengakses ke sumber yang disediakan pada sistem terdistribusi merupakan tantangan yang harus dihadapi oleh sistem ini. Dibutuhkan penjadwalan ataupun deadlock avoidance agar sistem berjalan dengan baik.

Transparency
Pada sistem terdistribusi, sistem berada ada pada transparency (penyembunyian) agar tidak terlihat kompleksitas dari sistem tersebut. Transparency ini terdiri dari beberapa jenis :
·       Access
User menganggap bahwa semuaresource adalah lokal contohnya pemetaan drive Samba server, NFS atau pencetakan dokumen secara parallel pada local printer.
·       Location
User tidak perlu mengetahui lokasi sumber daya pada sistem. Contohnya pada saat user mengakses web, user tidak perlu mengetahui server mana yang diakses.
·       Concurrency
user tidak perlu mengetahui keberadaan sistem paralel. Contohnya pada saat user menarik uang dari mesin ATM pada saat yang bersamaan ada teman user yang mengirimkan uang ke rekening user.
·       Replication
User tidak perlu mengetahui sumber daya orisinil atau replikasi yang diakses.
·       Failure
user tidak perlumengetahui kegagalan dan recovery sistem.
·      Migration/mobility
kemampuan melakukan relokasi sumber daya tanpa konfigurasi ulang oleh user.
·       Performance
perbedaan kinerja komponen sistem tidak perlu diketahui user



Qos ( Quality of Service )
Qos merupakan parameter yang digunakan untuk menunjukan kinerja pada suatu sistem pada saat pertukaran data. Sistem Terdistribusi harus mempunyai nilai Qos yang baik agar kualitas data atau transaksi informasi berjalan dengan baik. Parameter -parameter Qos sebagai berikut :


  • Delay
  • Jitter
  • Bandwidth
  • Loss packet
  • Througput

Referensi :
Coulouris George , Distributed System Concept and Design, Fifth Edition, Addison-Wesley, 2012



Link yang berkaitan :
http://bangunhutomo.blogspot.com/2014/04/sistem-terdistribusi-pendahuluan.html
http://insurgent.blogspot.com/2014/04/karakteristik-sistem-terdistribusi-2.html
http://mikodean.blogspot.com/2014/04/types-of-distributed-systems.html
http://bengore.blogspot.com/2014/04/permasalahan-sistem-terdistribusi-baru.html

Selasa, 25 Maret 2014

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.

Client Server

Pada konsep pemrosesan sistem terdistribusi terdapat konsep yang terkenal ialah konsep client-server. Menurut para ahli definisi client server sebagai berikut :

Definisi client server menurut Budhi irawan (2005 : 30), Server adalah komputer database yang berada di pusat, dimana informasinya dapat digunakan bersama-sama oleh beberapa user yang menjalankan aplikasi di dalam komputer lokalnya yang disebut dengan Client.

Menurut Budi Sutedjo Dharma Oetomo  (2006), Arsitektur Client Servermerupakan model konektifitas pada jaringan yang membedakan fungsi komputer apakah sebagai client atau server. Arsitektur ini merupakan sebuah komputersebagai server yang bertugas memberikan layanan kepada terminal-terminallain(client)yang terhubung dalam sistem jaringan itu.

Menurut Agus Mulyanto (2009 : 41) mendefinisikan client-server sebagai arsitektur yang paling banyak digunakan saat ini. Dimana client dapat melakukan proses sendiri, ketika client meminta data, server akan mengirimkan data sesuai yang diminta, kemudian proses akan dilakukan di client.

Jadi dapat disimpulkan client-server adalah proses pendistribusian kerja aplikasi yang dibagi menjadi dua segmen yaitu client sebagai peminta layanan dan server sebagai pemberi layanan yang dihubungkan dengan jaringan komputer.

Model-Model Client Server
Dalam client-server terdapat beragai macam model yang dapat diimplementasikan dalam proses terdistribusi. Model-modelnya sebagai berikut :

Model Two Tier
Dalam model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server.. Aplikasi ditempatkan pada computer client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke database yangmengirimkan kembali data ke client-nya. Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan : client (yang meminta serice) dan server (yang menyediakan service). 


Kelebihan
– Mudah
– Menangani Database Server secara khusus
– Relatif lebih sederhana untuk di develop dan diimplementasikan.

Kekurangan:
- Kurangnya skalabilitas
- Koneksi database dijaga
- Tidak ada keterbaharuan kode
- Tidak ada tingkat menengah untuk menangani keamanan dan transaksi
- skala kecil.
- Susah di amankan.
- Lebih mahal.

Model Three Tier
Pada arsitektur Three Tier ini terdapat Application Server yang berdiri di antara Client dan Database Server. Contoh dari Application server adalah IIS, WebSphere, dan sebagainya.
Konsep model three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.




Kelebihan :
- Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil.
- Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah
- Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
- Skala besar.
- Keamanan dibelakang firewall
- informasi antara web server dan server database optimal.
- Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah.
- Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database

Kekurangan:
- Lebih susah untuk merancang
- Lebih susah untuk mengatur
- Lebih mahal

Model Multi tier
Arsitektur Multi Tier adalah suatu metode yang sangat mirip dengan Three Tier. Bedanya, pada Multi Tier akan diperjelas bagian UI (User Interface) dan Data Processing. Yang membedakan arsitektur ini adalah dengan adanya Business Logic Server. Database Server dan Bussines Logic Server merupakan bagian dari Data Processing, sedangkan Application Server dan Client/Terminal merupakan bagian dari UI.


Kelebihan:
- Dengan menggunakan aplikasi multi-tier database, maka logika aplikasi dapat dipusatkan pada middle-tier, sehingga memudahkan untuk melakukan control terhadap client-client yang mengakses middle server dengan mengatur seting pada dcomcnfg.
- Dengan menggunakan aplikasi multi-tier, maka database driver seperti BDE/ODBC untuk mengakses database hanya perlu diinstal sekali pada middle server, tidak perlu pada masing-masing client.
- Pada aplikasi multi-tier, logika bisnis pada middle-tier dapat digunakan lagi untuk mengembangkan aplikasi client lain,sehingga mengurangi besarnya program untuk mengembangkan aplikasi lain. Selain itu meringankan beban pada tiap-tiap mesin karena program terdistribusi pada beberapa mesin.
- Relatif lebih mahal
- Memerlukan adaptasi yang sangat luas ruang lingkupnya apabila terjadi perubahan sistem yang besar.
Kekurangan:
- Program aplikasi tidak bisa mengquery langsung ke database server, tetapi harus memanggil prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier.
- Lebih mahal

Referensi : 
http://www.library.upnvj.ac.id/pdf/3tipdf/206511008/bab2.pdf
http://adhek09.wordpress.com/category/telematika/arsitektur/
http://iqbalhabibie.staff.gunadarma.ac.id/Downloads/files/31623/7.+Model+konsep+ClientServer.doc
http://naeli.staff.gunadarma.ac.id/Downloads/files/8479/Proses.pdf

Berikut materi yang berkaitan dengan proses sistem terdistribusi
http://mikodean.blogspot.com/2014/03/proses-thread.html
http://bengore.blogspot.com/2014/03/multithreading-models.html
http://bangunhutomo.blogspot.com/2014/03/agent-pada-sistem-terdistribusi.html
http://insurgent.blogspot.com/2014/03/software-agent-dan-karakteristik-bahasa.html



Senin, 17 Maret 2014

Layer Protokol Komunikasi Sistem Terdistribusi

Proses komunikasi pada sistem terdistribusi tidak dapat lepas dari jaringan komputer. Pada jaringan komputer ada yang bernama protokol untuk proses komunikasi. Protokol merupakan suatu aturan jalur proses komunikasi antar satu jaringan dengan jaringan lainnya.
Komponen Protokol :
1. Aturan atau prosedur (syntax)
    Mengatur pembentukan/pemutusan hubungan
    Mengatur proses transfer data
     2. Format atau bentuk (grammar) 
    Representasi pesan
3   3. Kosakata (semantik) 
    Jenis pesan dan makna masing-masing pesan

Fungsi Protokol :
       Fragmentasi dan reassembly
Membagi-bagi informasi menjadi beberapa paket pada saat pengiriman dan menyatukan paket-paket itu menjadi informasi kembali pada saat penerimaan.
        Encapsulation
Membungkus suatu informasi  dengan address, kode-kode koreksi dan lain-lain
3    Connection control
Membangun atau memutuskan hubungan (jalur) komunikasi data antara pengirim dan penerima
4    Flow control
Pengatur perjalanan data dari sisi pengirim ke sisi penerima.
5    Error control
Mengontrol terjadinya kesalahan yang terjadi pada waktu data dikirimkan
6    Transmission service
Memberi pelayanan dan kemanan data pada proses komunikasi antar jaringan.

Standarisasi Protokol
Dahulu proses komunikasi antar komputer tergantung dari vendor yang digunakan. Jadi proses komunikasi antar komputer tidak berjalan jika memakai vendor yang berbeda. Ini sangat sulit dilakukan, karena mereka mengunakan protokol dan format data yang berbeda-beda. Sehingga International Standards Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI). OSI berupaya membentuk standar umum jaringan komputer untuk menunjang interoperatibilitas antar pemasok yang berbeda. Dalam suatu jaringan yang besar biasanya terdapat banyak protokol jaringan yang berbeda. Tidak adanya suatu protokol yang sama, membuat banyak perangkat tidak bisa saling berkomunikasi.



Application
  • Menyediakan layanan jaringan seperti transfer file menggunakan FTP, halaman web menggunakan HTTP
  • Pertukaran informasi antara program komputer, seperti program e-mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya.
  • Otentifikasi User
  • Contoh protokol : FTP, Telnet, SMTP, SNMP dll
Presentation

  • Merepresentasikan Data
  • Memastikan Data Dapat di baca dan digunakan oleh sistem
  • Menentukan format data, struktur data
  • Menyediakan enkripsi data
  • Contoh protokol : TDI, ASCII, EBCDIC, MIDI, MPEG dll
Session
  • Mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau diatur
  • Contoh Protokol : SQL, DNS, ASP NetBIOS dll
Transport
  • Pada layer ini data dikelompokkan dalam bentuk segmen
  • Menangani transportasi antar host
  • Menjamin relaibilitas data yang di salurkan
  • Membangun, memantain dan mematikan sirkuit virtual
  • Mentransmisikan ulang terhadap paket-paket yang hilang di tengah jalan
  • Menyediakan penanganan error (error handling)
  • Contoh protokol : TCP, UDP, SPX dll
Network
  • Pengalamatan dan routing
  • Mengkelompokkan data dalam paket
  • Menyalurkan paket data
  • Memilih jalur terbaik
  • Contoh Perangkat : Router, Switch Layer-3
  • Contoh Protokol : IPX, IP, IGRP, OSPF dll
Data Link
  • Pada layer ini bit data di kelompokkan menjadi frame.
  • Menyajikan format data yang akan di transmisikan dan cara akses kedalam sebuah jaringan
  • Menyajikan Deteksi Kesalahan
  • Contoh Perangkat : Hub, Switch, bridge
  • Contoh Protokol : ATM, FDDI, Frame Relay dll
Physical
  • Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjadi koneksi fisik antar sistem.
  • Mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio.
  • Contoh protokol : RS-232,T1, E1, SONET, HUB, Repeater dll.

Referensi :
http://home.unpar.ac.id/~gatut/kuliah/AIK-342/protokol.html
http://naeli.staff.gunadarma.ac.id/Downloads/files/8465/Komunikasi_revisi.pdf
http://lecturer.eepis-its.edu/~hero/datahero/kuliah/PJJ-Jarkom/pdf/P8.pdf
http://mtk.blog.ittelkom.ac.id/blog/files/2012/10/Protokol-Pada-Jaringan-Komputer.pdf

Berikut materi yang berkaitan dengan komunikasi dalam sistem terdistribusi :