#Post Title #Post Title #Post Title
Jumat, 20 Juni 2014

Parallel Computation

Parallel computing : use of multiple processors or computers working together on a common task.
  • Each processor works on its section of the problem
  • Processors can exchange information
Historically, parallel computing has been considered to be "the high end of computing", and has been used to model difficult scientific and engineering problems found in the real world.

Today, commercial applications provide an equal or greater driving force in the development of faster computers. These applications require the processing of large amounts of data in sophisticated ways. For example:
  • Databases, data mining
  • Oil exploration
  • Web search engines, web based business services
  • Medical imaging and diagnosis
  • Management of national and multi-national corporations
  • Financial and economic modeling

a. Parallelism Concept

When performing task, some subtasks depend on one another, while others do not.
Example: Preparing dinner
  • Salad prep independent of lasagna baking
  • Lasagna must be assembled before baking
 Likewise, in solving scientific problems, some tasks independent of one another

b. Distributed Processing


Distributed computing studies separate processors connected by communication links. Whereas parallel processing models often (but not always) assume shared memory, distributed systems rely fundamentally on message passing. Distributed systems are inherently concurrent. Like concurrency, distribution is often part of the goal, not solely part of the solution: if resources are in geographically distinct locations, the system is inherently distributed. Systems in which partial failures (of processor nodes or of communication links) are possible fall under this domain. 

Shared and distributed memory


c. Architectural Parallel Computer




A client machine initiates a request to process a file. The mechanism about how the client comes to know that a file is available for processing is immaterial. The WCF service must have access rights to the requested file.

The application has two WCF services, the master and the worker. The job of the master is to expose an end point using which requests are initiated.

The Master WCF service has a Quantum Identifier component; this is responsible for identifying independent quantum of task. In our application, this will be the module which will read the file line by line and send each line for processing.

The Job distributor is responsible for sending the task to a worker in an async manner. The Job distributor may or may not expect a result from the worker which leads to a decision of async or OneWay method.

The worker has a WCF endpoint which is used by the Master for requesting a quantum task for processing. The Job Performer is used for the component which executes the tasks.

In an ideal scenario, many identical workers are deployed behind a load balancing cluster.


d. Introduction Thread Programming

Threading / Thread is a control flow of a process. 2 The concept of threading is a running process (a process similar or different processes) at one time. For example, a web browser that has a thread for displaying images or text while another thread serves as the receiving data from the network. Threading is divided into two:
 
Static Threading
This technique is commonly used for chip multiprocessors and computer with a shared-memory computer types other. This technique allows a thread to share the available memory, using a program counter and executing the program independently. The operating system puts a thread on the processor and replace it with other threads that want to use the processor.
 
Dynamic Multithreading
This technique is an extension of previous techniques that aim to ease with her because the programmer does not have to bother with communication protocols, load balancing, and other complexity that exist in static threading. Concurrency this platform provides a scheduler that performs automatic load balacing. Although the platform is still in development but generally supports two features: nested parallelism and parallel loops

e. CUDA GPU Programming

GPU (Graphical Processing Unit) processor initially is a special function for rendering the graphics card alone, but along with the increasing need for rendering, particularly for approaching realtime processing time, it also increases the ability of the graphics processor. GPU acceleration technology improvement is much faster than the increase in the actual processor technology (CPU), and eventually became the General Purpose GPU, which means it is no longer just for rendering only but can be used for general computing process.

The use of Multi GPU can accelerate the processing time for executing programs natively parallel architecture. In addition to the improvements in performance that occurs not only by the speed of the GPU hardware, but the more important factor is how to create code that can be truly effective running on Multi GPU.

CUDA is a new technology from Nvidia graphics card manufacturers, and may not have been widely used by people in general. The graphics card is more widely used for applications running game, but with this CUDA graphics card can be used more optimally when running a software application. Nvidia graphics card functions are used to help Processor (CPU) to perform calculations on the data process.

CUDA stands for Compute Unified Device Architecture from, is defined as a parallel computer architecture, developed by Nvidia. This technology can be used to perform image processing, video, 3D rendering, and so forth. VGA - VGA Nvidia are already using CUDA technology, among others: Nvidia GeForce GTX 280, GTX 260.9800 GX2, 9800 GTX +, 9800 GTX, 9800 GT, 9600 GSO, 9600 GT, 9500 GT, 9400 GT, 9400 mGPU, 9300 mGPU , 8800 Ultra, 8800 GTX, 8800 GTS, 8800 GT, 8800 GS, 8600 GTS, 8600 GT, 8500 GT, 8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, and a similar series for the mobile class (notebook VGA).

In short, CUDA can provide the process with the approach of the C language, so the programmer or software developer can more quickly complete complex calculations. Not only technological applications such specific knowledge. CUDA can now be used for multimedia applications. For example, to edit the film and perform image filters. For example, with multimedia applications, are already using CUDA technology. TMPGEnc 4.0 software makes editing applications eg by taking some proces of GPU and CPU. VGA can take advantage of CUDA only 8000 or higher version.


reference:
- reference 1
- reference 2
- reference 3
- reference 4 
- reference 5
[ Read More ]
Selasa, 13 Mei 2014

Quantum Computing

                  Quantum computing is essentially harnessing and exploiting the amazing laws of quantum mechanics to process information. A traditional computer uses long strings of “bits,” which encode either a zero or a one. A quantum computer, on the other hand, uses quantum bits, or qubits. What's the difference? Well a qubit is a quantum system that encodes the zero and the one into two distinguishable quantum states. But, because qubits behave quantumly, we can capitalize on the phenomena of "superposition" and "entanglement."Quantum computing is the area of study focused on developing computer 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. Development of a quantum computer, if practical, would mark a leap forward in computing capability far greater than that from the abacus to a modern day supercomputer, with performance gains in the billion-fold realm and beyond. The quantum computer, following the laws of quantum physics, would gain enormous processing power through the ability to be in multiple states, and to perform tasks using all possible permutations simultaneously. Current centers of research in quantum computing include MIT, IBM, Oxford University, and the Los Alamos National Laboratory.

              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. Entanglement Particles (such as photons, electrons, or qubits) that have interacted at some point retain a type of connection and can be entangled with each other in pairs, in a process known as correlation . Knowing the spin state of one entangled particle - up or down - allows one to know that the spin of its mate is in the opposite direction. Even more amazing is the knowledge that, due to the phenomenon of superpostition, the measured particle has no single spin direction before being measured, but is simultaneously in both a spin-up and spin-down state. The spin state of the particle being measured is decided at the time of measurement and communicated to the correlated particle, which simultaneously assumes the opposite spin direction to that of the measured particle. This is a real phenomenon (Einstein called it "spooky action at a distance"), the mechanism of which cannot, as yet, be explained by any theory - it simply must be taken as given. Quantum entanglement allows qubits that are separated by incredible distances to interact with each other instantaneously (not limited to the speed of light). No matter how great the distance between the correlated particles, they will remain entangled as long as they are isolated.

                  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 .
                 A quantum gate or quantum logic gate is a rudimentary quantum circuit operating on a small number of qubits. They are the analogues for quantum computers to classical logic gates for conventional digital computers. Quantum logic gates are reversible, unlike many classical logic gates. Some universal classical logic gates, such as the Toffoli gate, provide reversibility and can be directly mapped onto quantum logic gates. Quantum logic gates are represented by unitary matrices.The most common quantum gates operate on spaces of one or two qubits. This means that as matrices, quantum gates can be described by 2 x 2 or 4 x 4 matrices with orthonormal rows.  

                  Shor's algorithm is a quantum algorithm for factoring a number N in O((log N)3) time and O(log N) space, named after Peter Shor. The algorithm is significant because it implies that public key cryptography might be easily broken, given a sufficiently large quantum computer. RSA, for example, uses a public key N which is the product of two large prime numbers. One way to crack RSA encryption is by factoring N, but with classical algorithms, factoring becomes increasingly time-consuming as N grows large; more specifically, no classical algorithm is known that can factor in time O((log N)k) for any k. By contrast, Shor's algorithm can crack RSA in polynomial time. It has also been extended to attack many other public key cryptosystems.
Like all quantum computer algorithms, Shor's algorithm is probabilistic: it gives the correct answer with high probability, and the probability of failure can be decreased by repeating the algorithm.Shor's algorithm was demonstrated in 2001 by a group at IBM, which factored 15 into 3 and 5, using a quantum computer with 7 qubits.

The algorithm is composed of two parts. The first part of the algorithm turns the factoring problem into the problem of finding the period of a function, and may be implemented classically. The second part finds the period using the quantum Fourier transform, and is responsible for the quantum speedup.
  • Obtaining factors from period
The integers less than N and coprime with N form a finite group under multiplication modulo N, which is typically denoted (Z/NZ)×. By the end of step 3, we have an integer a in this group. Since the group is finite, a must have a finite order r, the smallest positive integer such that
  • Finding the period
Shor's period-finding algorithm relies heavily on the ability of a quantum computer to be in many states simultaneously. Physicists call this behaviour a "superposition" of states. To compute the period of a function f, we evaluate the function at all points simultaneously. 

reference :



[ Read More ]
Senin, 28 April 2014

Cloud Computing

           
                Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often used to represent the Internet in flowcharts and diagrams. A cloud can be private or public. A public cloud sells services to anyone on the Internet. (Currently, Amazon Web Services is the largest public cloud provider.) A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people. When a service provider uses public cloud resources to create their private cloud, the result is called a virtual private cloud. Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services.           
                     Benefit of cloud computing :
  • Achieve economies of scale – increase volume output or productivity with fewer people. Your cost per unit, project or product plummets.
  • Improve flexibility. You can change direction without serious “people” or “financial” issues at stake.
  • Minimize licensing new software. Stretch and grow without the need to buy expensive software licenses or programs.
  • Less personnel training is needed. It takes fewer people to do more work on a cloud, with a minimal learning curve on hardware and software issues.
  • Monitor projects more effectively. Stay within budget and ahead of completion cycle times.
  • Improve accessibility. You have access anytime, anywhere, making your life so much easier!
  • Reduce capital costs. There’s no need to spend big money on hardware, software or licensing fees.
  • Streamline processes. Get more work done in less time with less people. 
  • Globalize your workforce on the cheap. People worldwide can access the cloud, provided they have an Internet connection.   
The principle of cloud computing is almost same with another computer,  just the different of that is in cloud computing, is coupled with another present computer.  In regular computer, file from software when we used is stored in hardisk or another storage media. But on computer clouds if viewed from the side of the user, the files from software we use is in another computer.In other words we are connected to multiple computers on a network server, but the data we store it was in the data center or in center, so that not only we can open the file that we save but computers or other users can open it and vice versa (Public). Also in a lot of infrastructure servers that we can use and we only pay as needed.
           The characteristics of cloud computing include on-demand self service, broad network access, resource pooling, rapid elasticity and measured service. On-demand self service means that customers (usually organizations) can request and manage their own computing resources. Broad network access allows services to be offered over the Internet or private networks. Pooled resources means that customers draw from a pool of computing resources, usually in remote data centres. Services can be scaled larger or smaller; and use of a service is measured and customers are billed accordingly. 
Cloud computing security is the set of control-based technologies and policies designed to adhere to regulatory compliance rules and protect information, data applications and infrastructure associated with cloud computing use. Because of the cloud's very nature as a shared resource, identity management, privacy and access control are of particular concern. With more organizations using cloud computing and associated cloud providers for data operations, proper security in these and other potentially vulnerable areas have become a priority for organizations contracting with a cloud computing provider.Cloud computing security processes should address the security controls the cloud provider will incorporate to maintain the customer's data security, privacy and compliance with necessary regulations. The processes will also likely include a business continuity and data backup plan in the case of a cloud security breach.
 The concept of cloud computing fills a perpetual need of IT: a way to increase capacity or add capabilities on the fly without investing in new infrastructure, training new personnel, or licensing new software. Cloud computing encompasses any subscription-based or pay-per-use service that, in real time over the Internet, extends IT's existing capabilities. The goal of cloud computing is to apply traditional supercomputing, or high-performance computing power, normally used by military and research facilities, to perform tens of trillions of computations per second, in consumer-oriented applications such as financial portfolios, to deliver personalized information, to provide data storage or to power large, immersive computer games. To do this, cloud computing uses networks of large groups of servers typically running low-cost consumer PC technology with specialized connections to spread data-processing chores across them. This shared IT infrastructure contains large pools of systems that are linked together. Often, virtualization techniques are used to maximize the power of cloud computing.


                       

                    
Referensi
http://searchcloudcomputing.techtarget.com/definition/cloud-computing
www.priv.gc.ca/resource/fs-fi/02_05_d_51_cc_e.pdf
http://searchcompliance.techtarget.com/definition/cloud-computing-security
http://www.webopedia.com/TERM/C/cloud_computing.html
[ Read More ]
Rabu, 26 Maret 2014

Mobile Computing Applications

Mobile computing is human–computer interaction by which a computer is expected to be transported during normal usage. Mobile computing involves mobile communication, mobile hardware, and mobile software. Communication issues include ad hoc and infrastructure networks as well as communication properties, protocols, data formats and concrete technologies. Hardware includes mobile devices or device components. Mobile software deals with the characteristics and requirements of mobile applications. - Wikipedia

Examples of applications such as mobile banking :

Push Email
Push email is an email system that provides an always-on capability, in which new email is actively transferred (pushed) as it arrives by the mail delivery agent (MDA) (commonly called mail server) to the mail user agent (MUA), also called the email client. Email clients include smartphones and, less strictly, IMAP personal computer mail applications.
In Blackberry, BlackBerry uses wireless mail user agent devices and a BlackBerry Enterprise Server (BES) attached to a traditional email system. The BES monitors the email server, and when it sees new email for a BlackBerry user, it retrieves (pulls) a copy and then pushes it to the BlackBerry handheld device over the wireless network.
BlackBerry became very popular, in part because it offers remote users "instant" email; new emails appear on the device as soon as they arrive, without the need for any user intervention. The handheld becomes a mobile, dynamically updating, copy of the user's mailbox. As a result of the success of BlackBerry, other manufacturers have developed push email systems for other handheld devices, such as Symbian- and Windows Mobile-based mobile phones. However, they only support push email for some email services.
With the release of the BlackBerry 10 operating system for its new generation of mobile device, BES is no longer available for non-corporate client email delivery. Instead, BlackBerry 10 offers POP, IMAP, or ActiveSync for transferring email to and from a device. Of these, the latter two can provide push email delivery if the server supports it.

Mobile Banking
Mobile banking is a system that allows customers of a financial institution to conduct a number of financial transactions through a mobile device such as a mobile phone or personal digital assistant.
Mobile banking differs from mobile payments, which involve the use of a mobile device to pay for goods or services either at the point of sale or remotely,analogously to the use of a debit or credit card to effect an EFTPOS payment.
The earliest mobile banking services were offered over SMS, a service known as SMS banking. With the introduction of smart phones with WAP support enabling the use of the mobile web in 1999, the first European banks started to offer mobile banking on this platform to their customers.
Mobile banking has until recently (2010) most often been performed via SMS or the mobile web. Apple's initial success with iPhone and the rapid growth of phones based on Google's Android (operating system) have led to increasing use of special client programs, called apps, downloaded to the mobile device. With that said, advancements in web technologies such as HTML5, CSS3 and JavaScript have seen more banks launching mobile web based services to complement native applications. A recent study (May 2012) by Mapa Research suggests that over a third of banks have mobile device detection upon visiting the banks' main website. A number of things can happen on mobile detection such as redirecting to an app store, redirection to a mobile banking specific website or providing a menu of mobile banking options for the user to choose from.

From the above explanation, we can conclude that Mobile computing applications are required to inform a news or information in the state of moving (mobile). 
Mobile computing applications make us easy  to do something more fast. We just need install the application what we need on our mobile computing. There are free and paid.  This is mobile computing appliation that many people use :
  • Database queries over the static network for information such as weather,or  trac conditions, and performing share transactions, or home shopping.
  • Client{server applications, such as World Wide Web (WWW) browsing, electronic mail, Usenet news, and remote sessions on static computers.
  • Multimedia applications, such as a video phone, television broadcasts, video mail, and video on demand.
  • Collaborative working, requiring a group protocol for distributed transactions and floor control.
[ Read More ]
Selasa, 25 Maret 2014

Client Server

Client-Server merupakan salah satu jaringan komputer. Di dalam jaringan client server terdapat sesuatu yang namanya server dan client. Server yaitu komputer yang menyediakan fasilitas bagi komputer-komputer lain, sedangkan client yaitu komputer-komputer yang menerima atau menggunakan fasilitas yang disediakan oleh server.

Client yang biasanya digunakan secara luas saat ini adalah web browser dimana berkomunikasi dengan web server melalui internet untuk mendapatkan dan menampilkan isi halaman web.

Menurut Gallaugher & Ramanathan (1996) : 
client/server adalah client mengirim permintaan ke server, server menterjemahkan pesan, kemudian berusaha memenuhi permintaan . 
Menurut Blaha & Premerlani (1998) :
client/server adalah suatu arsitektur dimana sumber daya server menyediakan komputasi untuk banyak komponen client. Client dapat mengakses satu server atau multiple server. Client dan server bisa berjalan pada mesin yg sama atau berbeda, ditulis dalam berbagai bahasa dan menggunakan sistem operasi yang berbeda.





Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu :


1. Servis (layanan)
  • Hubungan antara proses yang berjalan pada mesin yang berbeda
  • Pemisahan fungsi berdasarkan ide layanannya
  •  Server sebagai provider, client sebagai konsumen
2. Sharing resources (sumber daya): Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.

3. Asymmetrical protocol (protokol yang tidak simetris ): Many-to-one relationship antara client dan server.Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client.

4. Transparansi lokasi: Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client.

5. Mix-and-Match : Perbedaan server client platforms

6. Pesan berbasiskan komunikasi; Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban.

7. Pemisahan interface dan implementasi: Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.
  • Client Server System
  • Client / Server Application
  
Perbedaan Tipe Client-Server

1.File Servers
  • File server vendors mengklaim bahwa mereka pertama menemukan istilah client-server.
  • Untuk sharing file melalui jaringan
2.Database Servers
  • Client mengirimkan SQL requests sebagai pesan pada database server,selanjutnya hasil perintah SQL dikembalikan.
  • Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta dan kemudian semua record dikembalikan pada client.
3.Transaction Servers (Transaksi Server)
  • Client meminta remote procedures yang terletak pada server dengan sebuah SQL database engine.
  • Remote procedures ini mengeksekusi sebuah grup dari SQL statement
  • Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi
4.Groupsware Servers
  • Dikenal sebagai Computer-supported cooperative working
  • Manajemen semi-struktur informasi seperti teks, image, , bulletin boards dan aliaran kerja
  • Data diatur sebagai dokumen
5.Object Application Servers
  • Aplikasi client/server ditulis sebagai satu set objek komunikasi
  • Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB)
  • Client meminta sebuah method pada remote object
6.Web Application Servers (Aplikasi Web Servers)
  • World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web.
  • Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP. 

Kelebihan dan Kekurangan Client- Server

Kelebihan
  • Dari segi kecepatan, tipe jaringan ini memiliki kecepatan akses yang lebih tinggi , dikarenakan SERVER tidak dibebani sebagai Workstation.
  • Dari segi Back Up, tipe jaringan ini memiliki sistem Back Up dan keamanan yang lebih baik, dikarenakan Back Up dilakukan terpusat pada server.
  • Dari segi keamanan dan administrasi, Tipe jaringan ini lebih baik, dikarenakan hanya ada satu pemakai saja yang bertugas sebagai Administrator yang mengatur Sistem keamanan dan Administrasi dalam jaringan.
Kekurangan
  • Segala jenis hubungan antara Server dan Workstation , tergantung seluruhnya kepada Server, Jika server mengalami gangguan , maka seluruh jaringan akan trganggu.
  • Biaya operasional yang mahal.
  • Memerlukan sebuah komputer yang memiliki kemampuan yang sangat baik yang akan dijadikan sebagai Server.




Referensi :
[ Read More ]
Senin, 17 Maret 2014

Konsep Objek Terdistribusi dan Objek Interface

     Pembahasan kali ini dengan tema "Komunikasi dalam Sistem Terdistribusi" dan saya mendapatkan sub bahasan mengenai  konsep objek terdistribusi dan objek interface. Untuk pembahasan lainnya tersedia pada link kelompok diakhir artikel ini.

Dalam system terdistribusi berbasis obyek , memainkan peran kunci dalam membangun transparansi distribusi. Hal ini menjadi penting karena sistem relatif mudah untuk menyembunyikan aspek distribusi di belakang antar muka obyek. Seiring perkembangannya, sistem client server akhirnya dinilai tidak efisien lagi. 

Dalam membuat aplikasi client server, programmer masih harus membuat fungsi-fungsi yang sama untuk aplikasi yang berbeda. Kadang kala kode program yang sama digunakan dengan melakukan copy paste dan melakukan sedikit perubahan untuk menyesuaikan dengan aplikasi yang baru dibuat. Jika ada perubahan, fungsi tersebut dalam masing-masing aplikasi harus dis update sat persatu lagi. Kita akan melihat bagaimana prinsip-prinsip sistem terdistribusi yang diterapkan ke sejumlah basis obyek sistem.

CORBA
Common Object Request Broker Architecture (CORBA) merupakan standar yang dikeluarkan oleh Object Management Group (OMG). Spesifikasi CORBA ini berisi sebuah spesifikasi  infrastruktur yang disebut Object Request Broker (ORB) yang memungkinkan aplikasi klien untuk dapat berkomunikasi dengan obyek secara remote. Spesifikasi ini meliputi antarmuka program, protokol komunikasi dan model obyek atau layanan yang memungkinkan aplikasi yang ditulis dengan berbagai macam bahasa pemrograman.

CORBA membungkus kode program yang dibuat dengan bahasa pemrograman tertentu menjadi sebuah obyek yang ditambah dengan informasi mengenai kemampuan kode program dan cara mengaksesnya. Obyek tersebut dapat dipanggil oleh program lain melalui jaringan. CORBA menggunakan interface definition languange (IDL) untuk menunjukkan interface atau antarmuka yang dapat digunakan oleh program atau obyek lain. Dari IDL tersebut CORBA akan memetakannya ke implementasi yang lebih spesifik dari masing-masing bahasa pemrograman.

COM
Component Object Model (COM) adalah teknologi yang diciptakan oleh Microsoft untuk memungkinkan komunikasi antaraplikasi. Teknologi ini sudah  disediakan untuk beberapa platform tetapi kebanyakan digunakan untuk platform Windows. Teknologi ini sudah diperkenalkan oleh microsoft pada tahun 1993 tetapi baru populer pada tahun 1997. Perkembangan teknologi COM ini bermula dari teknologi OLE (Object Linking and Embedding) yang dibuat untuk memungkinkan aplikasi dapat saling bertukar data.

DCOM
Pada tahun 1996 diperkenalkan Distributed Component Object Model (DCOM) sebagai jawaban Microsoft atas CORBA. DCOM dibandingkan dengan COM memiliki  kelebihan mampu untuk terdistribusi dan berkomunikasi antarkomponen melalui jaringan. DCOM dan CORBA saling berkompetisi untuk menjadi standar dalam distribusi komponen melalui internet. Namun dibalik kesulitan dalam hal keamanan, sebuah browser yang berjalan menggunakan teknologi http sudah dapat menggantikan teknologi tsb.

RMI
Remote Method Invocation (RMI) adalah sebuah teknik pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI menggunakan paradigma pemrograman berorientasi obyek (Object Oriented Programming). RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari remote method. Dengan dibolehkannya program Java memanggil method pada remote obyek, RMI membuat pengguna dapat mengembangkan aplikasi Java yang terdistribusi pada jaringan. RMI menyediakan mekanisme dimana server dan client berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi

Langkah-Langkah Pembuatan Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi interface, seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan. Definisi yang ada pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.

Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam langkah tersebut adalah: 
  1. Mendefinisikan remote interface
  2. Implementasi remote interface dan server
  3. Pengembangan client (atau applet) yang menggunakan remote interface
  4. Mengkompilasi source files dan mem-buat stub and skeletons
  5. Memulai (start) RMI registry
  6. Menjalankan server dan client
[ Read More ]
 
 

Link List

Recent Comments