Senin, 12 Mei 2014

QUANTUM COMPUTING

A quantum computer is a computer design which uses the principles of quantum physics to increase the computational power beyond what is attainable by a traditional computer. Quantum computers have been built on the small scale and work continues to upgrade them to more practical models.

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. Knowing the spin state of one entangled particle - whether the direction of the spin is 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 superposition, 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. Quantum entanglement allows qubits that are separated by incredible distances to interact with each other immediately, in a communication that is 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.
Entanglement is a real phenomenon (Einstein called it "spooky action at a distance"), which has been demonstrated repeatedly through experimentation. The mechanism behind it cannot, as yet, be fully explained by any theory. One proposed theory suggests that all particles on earth were once compacted tightly together and, as a consequence, maintain a connectedness. Much current research is focusing on how to harness the potential of entanglement in developing systems for quantum cryptography and quantum computing.

Operations on pure qubit states
There are various kinds of physical operations that can be performed on pure qubit states
  1. A quantum logic gate can operate on a qubit: mathematically speaking, the qubit undergoes a unitary transformation. Unitary transformations correspond to rotations of the qubit vector in the Bloch sphere.
  2. Standard basis measurement is an operation in which information is gained about the state of the qubit. The result of the measurement will be either ,with probability , or , with probability . Measurement of the state of the qubit alters the values of α and β. For instance, if the result of the measurement is α is changed to 1 (up to phase) and β is changed to 0. Note that a measurement of a qubit state entangled with another quantum system transforms a pure state into a mixed state.


Quantum Gate
Quantum computing and specifically the quantum circuit model of computation, a 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.

Shor's algorithm
Named after mathematician Peter Shor, is a quantum algorithm (an algorithm that runs on a quantum computer) for integer factorization formulated in 1994. Informally it solves the following problem: Given an integer N, find its prime factors.
On a quantum computer, to factor an integer N, Shor's algorithm runs in polynomial time (the time taken is polynomial in log N, which is the size of the input). Specifically it takes time O((log N)3), demonstrating that the integer factorization problem can be efficiently solved on a quantum computer and is thus in the complexity class BQP. This is substantially faster than the most efficient known classical factoring algorithm, the general number field sieve, which works in sub-exponential time — aboutO(e1.9 (log N)1/3 (log log N)2/3). The efficiency of Shor's algorithm is due to the efficiency of the quantum Fourier transform, and modular exponentiation by repeated squaring


Senin, 28 April 2014

cloud computing

CLOUD COMPUTING


Cloud computing is a type of computing that relies on sharing computing resources rather than having local servers or personal devices to handle applications.
In cloud computing, the word cloud (also phrased as "the cloud") is used as a metaphor for "the Internet," so the phrase cloud computing means "a type of Internet-based computing," where different services  such as servers, storage and applications are delivered to an organization's computers and devices through the Internet.
Cloud computing is comparable to grid computing, a type of computing where unused processing cycles of all computers in a network are harnesses to solve problems too intensive for any stand-alone machine.

The world of the cloud has lots of participants:
·         The end user who doesn’t have to know anything about the underlying technology.
·         Business management who needs to take responsibility for the governance of data or services living in a cloud. Cloud service providers must provide a predictable and guaranteed service level and security to all their constituents.

·         The cloud service provider who is responsible for IT assets and maintenance.



Advantages of cloud computing

1.  Worldwide Access. Cloud computing increases mobility, as you can access your documents from any device in any part of the world. For businesses, this means that employees can work from home or on business trips, without having to carry around documents. This increases productivity and allows faster exchange of information. Employees can also work on the same document without having to be in the same place.
2.      More Storage. In the past, memory was limited by the particular device in question. If you ran out of memory, you would need a USB drive to backup your current device. Cloud computing provides increased storage, so you won’t have to worry about running out of space on your hard drive.
3.      Easy Set-Up. You can set up a cloud computing service in a matter of minutes. Adjusting your individual settings, such as choosing a password or selecting which devices you want to connect to the network, is similarly simple. After that, you can immediately start using the resources, software, or information in question.
4.      Automatic Updates. The cloud computing provider is responsible for making sure that updates are available – you just have to download them. This saves you time, and furthermore, you don’t need to be an expert to update your device; the cloud computing provider will automatically notify you and provide you with instructions.
5.      Reduced Cost. Cloud computing is often inexpensive. The software is already installed online, so you won’t need to install it yourself. There are numerous cloud computing applications available for free, such as Dropbox, and increasing storage size and memory is affordable. If you need to pay for a cloud computing service, it is paid for incrementally on a monthly or yearly basis. By choosing a plan that has no contract, you can terminate your use of the services at any time; therefore, you only pay for the services when you need them


The working principle of cloud computing

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.

 Characteristics cloud computing

1. On-demand self-service. This means provisioning or de-provisioning computing resources as needed in an automated fashion without human intervention. An analogy to this is electricity as a utility where a consumer can turn on or off a switch on-demand to use as much electricity as required.
2. Ubiquitous network access. This means that computing facilities can be accessed from anywhere over the network using any sort of thin or thick clients (for example smartphones, tablets, laptops, personal computers and so on).
3. Resource pooling. This means that computing resources are pooled to meet the demand of the consumers so that resources (physical or virtual) can be dynamically assigned, reassigned or de-allocated as per the requirement. Generally the consumers are not aware of the exact location of computing resources. However, they may be able to specify location (country, city, region and the like) for their need. For example, I as a consumer might want to host my services with a cloud provider that has cloud data centers within the boundaries of Australia.
4. Rapid elasticity. Cloud computing provides an illusion of infinite computing resources to the users. In cloud models, resources can be elastically provisioned or released according to demand. For example, my cloud-based online services should be able to handle a sudden peak in traffic demand by expanding the resources elastically. When the peak subsides, unnecessary resources can be released automatically.
5. Measured service. This means that consumers only pay for the computing resources they have used. This concept is similar to utilities like water or electricity.

SECURITY

Security. When using a cloud computing service, you are essentially handing over your data to a third party. The fact that the entity, as well as users from all over the world, are accessing the same server can cause a security issue. Companies handling confidential information might be particularly concerned about using cloud computing, as data could possibly be harmed by viruses and other malware. That said, some servers like Google Cloud Connect come with customizable spam filtering, email encryption, and SSL enforcement for secure HTTPS access, among other security measures.

The biggest question most have with Cloud Computing is will it be Safe? The answer is “NO”  Reason why is everything that Cloud Computing is based on is mechanical, although it seems virtual. The Safety of the data (information), is only as Safe as the will and determination of the individual that wants to have at it.

THE CONCEPT OF CLOUD COMPUTING
COMPUTIN
The first building block is the infrastructure where the cloud will be implemented. Some people make the assumption that environment should be virtualized, but as cloud is a way to request resources in an on-demand way and if you have solutions to provide  on bare metal, then why not? The infrastructure will support the different types of cloud (IaaS, PaaS, SaaS, BPaaS).
To be able to provide these services you will need Operating System Services (OSS), which will be in charge of deploying the requested service, and Business System Services (BSS), mainly used to validate the request and create the invoice for the requested services. Any metrics could be used to create the invoice (for example, number of users, number of CPUs, memory, usage hours/month). It is very flexible and depends on the service provider.
A cloud computing environment will also need to provide interfaces and tools for the service creators and users. This is the role of the Cloud Service Creator and Cloud Service Consumer components.
Now, let’s see how it works in reality.
Generally, you log in to a portal (enterprise or public wise) and you order your services through the Cloud Service Consumer. This service has been created by the cloud service provider and can be a simple virtual machine (VM) based on an image, some network components, an application service such as an WebApp environment and a service such as MongoDB. It depends on the provider and type of resources and services.
The cloud provider will validate, through the BSS, your request and if the validation is okay (credit card, contract), it will provision the request through the OSS.
You will receive, in one way or another, the credentials to access your requested services and you will usually receive a monthly invoice for your consumption.

Selasa, 01 April 2014

Karakteristik Sistem Terdistribusi 2

Jaringan komputer ada dimana-mana. Internet adalah salah satunya, seperti dari beberapa jaringan yang ada. Jaringan telepon seluler, jaringan perusahaan, jaringan pabrik, jaringan kampus, jaringan rumah, semua ini, baik secara terpisah dan dalam kombinasi. Dalam buku ini bertujuan tujuan untuk menjelaskan karakteristik jaringan komputer yang berdampak pada perancang sistem dan implementasi mengajukan konsep utama dan teknik yang telah dikembangkan untuk membantu dalam tugas merancang dan menerapkan sistem.
Komputer yang terhubung oleh sebuah jaringan dapat dipisahkan oleh jarak. Mereka mungkin di pisahkan benua, di gedung yang sama atau dalam ruangan yang sama. Definisi kita tentang sistem terdistribusi telah dalam sebagai berikut:

  • Concurrency : Dalam sebuah jaringan pada komputer, pelaksanaan program secara bersamaan memiliki norma disini. Aku bisa melakukan pekerjaan saya pada komputer saya sementara anda lakukan pekerjaan anda pada komputer anda, berbagi sumber daya seperti halaman web tersebut atau file ketika diperlukan. Kapasitas sistem untuk menangani sumber daya bersama dapat ditingkatkan dengan menambahkan sumber daya lebih ( untuk contoh. Komputer ) untuk jaringan.
  • No global clock: Ketika program harus bekerja sama mereka berkoordinasi tindakannya dengan bertukar pesan. Dekat koordinasi sering tergantung pada berbagi ide dari waktu di mana program berjalan. Tapi ternyata terdapat batasan untuk keakuratan dalam jaringan komputer yang bisa mensinkron jam tunggal yang global dan tidak ada gagasan waktu yang tepat . Ini akibat langsung dari fakta bahwa satu-satunya komunikasi adalah dengan mengirimkan pesan melalui jaringan.
  • Independent Failures: Semua sistem komputer bisa gagal, dan itu adalah tanggung jawab untuk desainer sistem untuk merencanakan untuk konsekuensi dari kemungkinan kegagalan. Sistem terdistribusi dapat gagal dengan cara baru. Kesalahan dalam jaringan mengakibatkan isolasi komputer yang terhubung ke dalamnya, tapi itu tidak berarti bahwa mereka berhenti berjalan. Pada kenyataannya, program-program mereka tidak mungkin mampu mendeteksi apakah jaringan telah gagal atau telah menjadi sangat lambat. Demikian pula, kegagalan komputer, atau tak terduga penghentian program di suatu tempat di dalam sistem (kecelakaan), tidak segera dibuat diketahui untuk komponen lain yang mengkomunikasikan. Setiap komponen sistem dapat gagal secara independen, meninggalkan yang lain masih tetap berjalan. 
Referensi : George Coulouris, Distributed Systems Concepts and Design

















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.

Software Agent dan Karakteristik Bahasa Pemrograman

Software Agent bisa diklasifikasikan sebagai :

  1. Desktop Agent
          Yaitu agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS). Yang termasuk dalam klasifikasi ini adalah:

  • Operating System Agent
  • Application Agent 
  • Application Suite Agent
   
     2.   Internet Agent

          Yaitu agent yang hidup dan bertugas dalam lingkungan jaringan Internet, melakukan tugasnya yaitu memanage informasi yang ada di Internet. Yang termasuk dalam klasifikasi ini adalah :
  • Web Search Agent
  • Web Server Agent
  • Information Filtering Agent
  •  Information Retrieval Agent 
  • Notification Agent
  • Service Agent
  • Mobile Agent

Bahasa Pemrograman
Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan. Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya di pakai [Knabe, 1995] [Brenner et al., 1998]. Diantaranya yaitu :

1. Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan beberapa peneliti menganggap agent adalah obyek yang aktif, maka juga agent harus diimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-oriented programming language).

2. Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup dan berjalan diberbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakai untuk implementasi adalah yang terlepas dari platform, atau dengan kata lain program tersebut harus bisa dijalankan di platform apapun (platform independence).

3. Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan (network environment), diperlukan kemampuan untuk melakukan komunikasi secara fisik. Sehingga diperlukan bahasa pemrograman yang dapat mensupport pemrograman yang berbasis network dan komunikasi.
4. Security:
Faktor keamanan (security) adalah factor yang sangat penting dalam memilih bahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobil agent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yang bisa membuat agent bergerak dengan aman.

5. Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi kode program secara runtime, sehingga diperlikan bahasa pemrograman untuk software agent yang dapat menangani masalah runtime tersebut.
Dari karakteristik diatas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai berikut :

  • Java
  • Telescript
  • Tcl/Tk, Safe-Tcl, Agent-Tcl