Selasa, 10 April 2018

Computation Theory and Cloud Computing

Nama : Afifah Rezky E.
NPM : 50414394
Kelas : 4IA22
Materi : 1&2

Introduction
Coputational Theory
Computational theory is the branch of computer science and mathematics that discusses whether and how a problem can be solved on computational models, using algorithms. This field of science deals primarily with regard to computability and complexity, in relation to computational formalism.

To conduct computational studies closely, computer scientists work with mathematical abstractions from computers called computational models. There are several models used, but the most commonly studied Turing machine. A Turing machine can be thought of as a personal computer table with infinite memory capacity, but can only be accessed in separate and discrete sections. Computer scientists study Turing machines because they are easily formulated, analyzed and used for proof, and because they represent a computational model that is considered to be the most powerful, most sensible model possible. Unlimited memory capacity may be seen as an unattainable trait, but any "decidable" problem solved by a Turing machine will always only require a finite amount of memory. So basically any problem that can be solved (decided) by meisn Turing can be solved by a computer that has a limited amount of memory.

Implementation of Modern Computing
Implementation of Modern Computing in the Field of Economics
Implementation in economic science is the study of agent-based computational modeling, computational econometrics and statistics, financial computing, computational modeling of dynamic macroeconomic systems, programming specifically designed for economic computing, and the development of aids in computing economics education. the problem that must be solved by the algorithm for example is to solve the theory of statistics to solve the financial problems.
One example of computing in economics is statistical computing. Statistical computing is the department that studies the techniques of data processing, program making, and data analysis and statistical information system preparation techniques such as database compilation, data communications, network systems, and statistical data dissemination. Computing can be used to solve economic problems such as Data Mining, with data mining, a company can solve problems in the most effective way possible.

Implementation of Modern Computation in Chemistry
Implementation of modern computation in the field of chemistry is Computational Chemistry is the use of computer science to help solve chemical problems, for example the use of super computers to calculate the structure and molecular properties. The term chemical theory can be defined as a mathematical description for chemistry, whereas computational chemistry is typically used when mathematical methods are developed well enough to be used in computer programs. It should be noted that the word "exact" or "perfect" does not appear here, because very few chemical aspects can be calculated appropriately. Almost all aspects of chemistry can be described in the scheme of quantitative or qualitative computing almost.
Implementation of Modern Computation in Mathematics.
Resolving a problem relating to mathematical calculations, but in the sense that will be discussed in the discussion of modern computing is a system that will solve mathematical problems using a computer by compiling algorithms that can be understood by computers that are useful for solving human problems. There is a numerical analysis that is an algorithm used to analyze mathematical problems. For example, the application of mathematical computational techniques includes numerical methods, scientific computing, finite element method, different methods, scientific data mining, scientific process control and other related methods to solve real estate issues are large.
Implementation of Computing in the Field of Geography
Geography is the study of location and equation, and spatial variations of physical phenomena, and humans on the surface of the earth. Computing in geology is usually used for weather forecasting, especially in Indonesia there is one state agency with the name of BMKG (Meteorology, Climatology and Geophysics Agency), namely the state agency that examines observing the meteorology of air quality and geophysical climatology in order to stay in accordance with the legislation applicable in Indonesia.
Implementation of modern Computation in the field of Physics
The implementation of modern computing in the field of physics is Computational Physics which studies a combination of Physics, Computer Science and Applied Mathematics to provide solutions to "complex and complex events in the real world" either by using simulations as well as the proper use of algorithms. The understanding of physics in theory, experimentation, and computation must be comparable in order to produce the appropriate numerical and visualization / modeling solutions to understand the problems of Physics. To perform work such as integral evaluation, solving differential equations, solving simultaneous equations, plotting a function / data, making the development of a series of functions, finding the roots of equations and working with complex numbers that are the object of applying computational physics. Many software or languages ​​are used, both MatLab, Visual Basic, Fortran, Open Source Physics (OSP), Labview, Mathematica, etc. are used for understanding and finding numerical solutions to problems in Computational Physics.
Implementation of modern computing in the field of geology
In the field of geology computational theory is usually used for mining, a computer system is used to analyze mineral materials and minerals contained in the soil. For example, Mining and used to analyze mineral materials and minerals contained in the soil.

Cloud Computing
Introduction
Cloud computing is a method for delivering information technology (IT) services in which resources are retrieved from the Internet through web-based tools and applications, as opposed to a direct connection to a server. Rather than keeping files on a proprietary hard drive or local storage device, cloud-based storage makes it possible to save them to a remote database. As long as an electronic device has access to the web, it has access to the data and the software programs to run it.
It's called cloud computing because the information being accessed is found in "the cloud" and does not require a user to be in a specific place to gain access to it. This type of system allows employees to work remotely. Companies providing cloud services enable users to store files and applications on remote servers, and then access all the data via the internet.

Advantages of Cloud Computing:
Cost
Cloud computing eliminates the capital expense of buying hardware and software and setting up and running on-site datacenters—the racks of servers, the round-the-clock electricity for power and cooling, the IT experts for managing the infrastructure. It adds up fast.
Speed
Most cloud computing services are provided self service and on demand, so even vast amounts of computing resources can be provisioned in minutes, typically with just a few mouse clicks, giving businesses a lot of flexibility and taking the pressure off capacity planning.
Global Scale
The benefits of cloud computing services include the ability to scale elastically. In cloud speak, that means delivering the right amount of IT resources—for example, more or less computing power, storage, bandwidth—right when its needed and from the right geographic location.
Productivity
On-site datacenters typically require a lot of “racking and stacking”—hardware set up, software patching and other time-consuming IT management chores. Cloud computing removes the need for many of these tasks, so IT teams can spend time on achieving more important business goals.


Performance
The biggest cloud computing services run on a worldwide network of secure datacenters, which are regularly upgraded to the latest generation of fast and efficient computing hardware. This offers several benefits over a single corporate datacenter, including reduced network latency for applications and greater economies of scale.
Reliability
Cloud computing makes data backup, disaster recovery and business continuity easier and less expensive, because data can be mirrored at multiple redundant sites on the cloud provider’s network.
Disadvantages of Cloud Computing
Initially, security was seen as a detractor from using the cloud, especially when it came to sensitive medical records and financial information. While regulations are forcing cloud computing services to shore up their security and compliance measures, it remains an ongoing issue. Media headlines are constantly screaming about data breaches at this or that company, in which sensitive information has made its way into the hands of malicious hackers who may delete, manipulate or otherwise exploit the data (though, according to some reports, most of the data breeches have been with on-site systems, not those in the cloud).  Encryption protects vital information, but if the encryption key is lost, the data disappears.
Servers maintained by cloud computing companies can fall victim to a natural disasters, internal bugs and power outages, too. And unfortunately, the geographical reach of cloud computing cuts both ways: A blackout in California could paralyze users In New York; a firm in Texas could lose its data if something causes its Maine-based provider to crash.
Ultimately, as with any new technology, there is a learning curve for employees and managers. But with many individuals accessing and manipulating information through a single portal, inadvertent mistakes can transfer across an entire system.
Types of Cloud Computing
SAAS
Saas (Software as a Service) provides clients with the ability to use software applications on a remote basis via an internet web browser. Software as a service is also referred to as “software on demand”.
Clients can access SaaS applications from anywhere via the web because service providers host applications and their associated data at their location. The primary benefit of SaaS, is a lower cost of use, since subscriber fees require a much smaller investment than what is typically encountered under the traditional model of software delivery. Licensing fees, installation costs, maintenance fees and support fees that are routinely associated with the traditional model of software delivery can be virtually eliminated by subscribing to the SaaS model of software delivery. Examples of SaaS include: Google Applications and internet based email applications like Yahoo! Mail, Hotmail and Gmail.
PAAS
PaaS (Platform as a Service) provides clients with the ability to develop and publish customized applications in a hosted environment via the web. It represents a new model for software development that is rapidly increasing in its popularity. An example of PaaS is Salesforce.com.
PaaS provides a framework for agile software development, testing, deployment and maintenance in an integrated environment. Like SaaS, the primary benefit of PaaS, is a lower cost of use, since subscriber fees require a much smaller investment than what is typically encountered when implementing traditional tools for software development, testing and deployment. PaaS providers handle platform maintenance and system upgrades, resulting in a more efficient and cost effective solution for enterprise software development.
IAAS
IaaS (Infrastructure as a Service) allows clients to remotely use IT hardware and resources on a “pay-as-you-go” basis. It is also referred to as HaaS (hardware as a service). Major IaaS players include companies like IBM, Google and Amazon.com. IaaS employs virtualization, a method of creating and managing infrastructure resources in the “cloud”. IaaS provides small start up firms with a major advantage, since it allows them to gradually expand their IT infrastructure without the need for large capital investments in hardware and peripheral systems.

Grid Computing
Grid Computing is the use of resources that involve multiple distributed and geographically dispersed computers to solve large-scale computing problems. Grid computing is a branch of distributed computing. The computer grid has a more prominent difference and is applied to the infrastructure side of the completion of a process.
Grid computing is a form of clusters (composites) computers that tend not bound by geographical boundaries. On the other hand, clusters are always implemented in one place by combining multiple computers over a network.
The initial idea of ​​grid computing begins with the existence of distributed computing, ie studying the use of co-ordinated computers that are physically separate or distributed. Distributed systems require different applications with centralized systems. Then it develops again into parallel computing which is a computing technique simultaneously by utilizing multiple computers simultaneously.
Grid computing offers a low-cost computing solution, which utilizes scattered and heterogeneous resources and easy access from anywhere. Globus Toolkit is a collection of software and libraries for creating open-source grid computing environments. With the grid computing environment is expected to simplify and optimize the execution of programs that use parallel libraries. And Indonesia has used Grid system and named InGrid (Inherent Grid).
The grid computing system began operations in March 2007 and continues to be developed to date. InGrid connects several public and private universities spread across Indonesia and several government agencies such as the Meteorology and Geophysics Agency.


Concept of Grid Computing
Some basic concepts of grid computing:
Resources are managed and controlled locally.
Different resources may have different policies and mechanisms, including Computing resources managed by different batch systems, Different storage systems at different nodes, Different policies are entrusted to the same user on different resources on the Grid.
Dynamic nature: Resources and users can change frequently
Collaborative environment for e-community (electronic community, on the internet)
Three things are shared, sharing in a grid system, among others: Resource, Network and Process. The usefulness / service of the grid system itself is to perform high throughput computing in the field of research, or other computing process that requires a lot of computer resources.

How Grid Computing Works
According to a short article by Ian Foster there is a check-list that can be used to identify that a system doing grid computing is:
The system coordinates the computational resources that are not under a centralized control. If the resources used are within a single domain of administrative domains, then the computation can not be said to be grid computing
The system uses standards and protocols that are open (not linked to a particular implementation or product). Grid computing is composed of agreements on fundamental issues, required to realize large-scale computing together. Agreements and standards required are in the areas of authentication, authorization, resource search, and access to resources.
The system strives to achieve sophisticated quality of service, (nontrivial quality of service) that is far above the quality of service of individual components of the grid computing.

Advantages and Disadvantages of Grid Computing
The use of Grid Computing System for companies will provide many benefits, either directly or indirectly. Some of these benefits include:

Grid computing promises increased utilities, and greater flexibility for infrastructure resources, applications and information. And also promising increased productivity of company work.
Grid computing can provide money savings, both in terms of capital investment and operating costs.

And some of the obstacles experienced by Indonesian people in applying grid computing technology are as follows:

The overly bureaucratic management of the institutions causes them to be reluctant to give up their facilities for joint use in order to gain greater benefits for the wider community.
Still at least Human Resources are competent in managing grid computing. Contonhya lack of sufficient knowledge for IT technicians as well as non-technical users about the benefits of grid computing itself.

Grid Computing Example
Scientific Simulation
Grid computing is implemented in physics, chemistry, and biology to simulate complex processes.
Medical Images
Use of grid data and grid computing to store medical-image. An example is the eDiaMoND project.
Computer-Aided Drug Discovery (CADD)
Grid computing is used to aid drug discovery. One example is: Molecular Modeling Laboratory (MML) at the University of North Carolina (UNC).

Big Science
Grid data and grid computing are used to assist government-sponsored laboratory projects. Examples are found in DEISA.
E-Learning
Grid computing helps build infrastructure to meet the needs of information exchange in education. An example is AccessGrid.

Virtualization in Cloud Computing
Virtualization is the "creation of a virtual (rather than actual) version of something, such as a server, a desktop, a storage device, an operating system or network resources".
In other words, Virtualization is a technique, which allows to share a single physical instance of a resource or an application among multiple customers and organizations. It does by assigning a logical name to a physical storage and providing a pointer to that physical resource when demanded.
What is the concept behind the Virtualization?
Creation of a virtual machine over existing operating system and hardware is known as Hardware Virtualization. A Virtual machine provides an environment that is logically separated from the underlying hardware.
The machine on which the virtual machine is going to create is known as Host Machine and that virtual machine is referred as a Guest Machine
Types of Virtualization:
Hardware Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly installed on the hardware system is known as hardware virtualization.
The main job of hypervisor is to control and monitoring the processor, memory and other hardware resources.
After virtualization of hardware system we can install different operating system on it and run different applications on those OS.
Usage:
Hardware virtualization is mainly done for the server platforms, because controlling virtual machines is much easier than controlling a physical server.
Operating System Virtualization:
When the virtual machine software or virtual machine manager (VMM) is installed on the Host operating system instead of directly on the hardware system is known as operating system virtualization.
Usage:
Operating System Virtualization is mainly used for testing the applications on different platforms of OS.
Server Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly installed on the Server system is known as server virtualization.
Usage:
Server virtualization is done because a single physical server can be divided into multiple servers on the demand basis and for balancing the load.
Storage Virtualization:
Storage virtualization is the process of grouping the physical storage from multiple network storage devices so that it looks like a single storage device.
Storage virtualization is also implemented by using software applications.
Usage:
Storage virtualization is mainly done for back-up and recovery purposes.
How does virtualization work in cloud computing?
Virtualization plays a very important role in the cloud computing technology, normally in the cloud computing, users share the data present in the clouds like application etc, but actually with the help of virtualization users shares the Infrastructure.
The main usage of Virtualization Technology is to provide the applications with the standard versions to their cloud users, suppose if the next version of that application is released, then cloud provider has to provide the latest version to their cloud users and practically it is possible because it is more expensive.
To overcome this problem we use basically virtualization technology, By using virtualization, all severs and the software application which are required by other cloud providers are maintained by the third party people, and the cloud providers has to pay the money on monthly or annual basis.

Distributed Computing
Distributed Computing can be defined as the use of a distributed system to solve a single large problem by breaking it down into several tasks where each task is computed in the individual computers of the distributed system. A distributed system consists of more than one self directed computer that communicates through a network. All the computers connected in a network communicate with each other to attain a common goal by making use of their own local memory. On the other hand, different users of a computer possibly might have different requirements and the distributed systems will tackle the coordination of the shared resources by helping them communicate with other nodes to achieve their individual tasks.
Generally, in case of individual computer failures there are toleration mechanisms in place. However, the cardinality, topology and the overall structure of the system is not known beforehand and everything is dynamic.
Distributed Computing System Examples
World Wide Web
Social Media Giant Facebook
Hadoop’s Distributed File System (HDFS)
ATM
Cloud Network Systems(Specialized form of Distributed Computing Systems)
Google Bots, Google Web Server, Indexing Server
To a normal user, distributed computing systems appear as a single system whereas internally distributed systems are connected to several nodes which perform the designated computing tasks. Let’s consider the Google web server from user’s point of view. When users submit a search query they believe that Google web server is single system where they need to log in to Google.comand search for the required term. What really happens is that underneath is a Distributed Computing technology where Google develops several servers and distributes them in different geographical locations to provide the search result in seconds or at time milliseconds.
The below image illustrates the working of master/slave architecture model of distributed computing architecture where the master node has unidirectional control over one or more slave nodes. The task is distributed by the master node to the configured slaves and the results are returned to the master node.
Benefits of Distributed Computing
Distributed computing systems provide a better price/performance ratio when compared to a centralized computer because adding microprocessors is more economic than mainframes.
Distributed Computing Systems have more computational power than centralized (mainframe) computing systems. Distributed Computing Systems provide incremental growth so that organizations can add software and computation power in increments as and when business needs.

Map Reduce and NoSQL (Not Only SQL)
Map Reduce andNoSQL (Not Only SQL) is a framework programming to help users develop a large size data that can be distributed to each other. Map-Reduce is one of the most important technical concepts in cloud technology especially because it can be implemented in a distributed computing environment. Thus it will guarantee the scalability of our application.
One example of the real implementation of this map-reduce in a product is what Google does. With inspiration from the functional programming map and reducing Google can generate a highly scalable distributed filesystem, Google Big Table. And also inspired by Google, in the realm of open source visible acceleration development of other framework that is also distributed and using the same concept, open source project is named Apache Hadoop.
MapReduce is a Google-released programming model intended to process giant distributed and parallel data in a cluster of thousands of computers. In processing the data, MapReduce is divided into 2 main processes, namely Map and Reduce. The Map process is tasked with collecting information from the pieces of data distributed within each computer in the cluster (group of connected computers). The result is left to the Reduce process for further processing. The result of the Reduce process is the final result sent to the user.
NoSQL is a database type that is very much different from the concept of RDBMS or ODBMS. The main difference itself is that it does not recognize the term relation and does not use the concept of schema. In NoSQL, each table stands alone independent of other tables. NoSQL Database is a database of type NoSQL, ie this database is not familiar with the term relational and does not use the concept of schema. Examples of NoSQL Databases are MongoDB.
Contrary to the misunderstanding caused by its name, NoSQL does not prohibit structured query languages (SQL) While it is true that some NoSQL systems are completely non-relational, others just avoid selected relational functions like fixed table schemes and join operations. For example, instead of using tables, NoSQL databases might organize data into objects, key / value pairs or tuples.

NoSQL Database
NoSQL is an approach to databases that represents a shift away from traditional relational database management systems (RDBMS). To define NoSQL, it is helpful to start by describing SQL, which is a query language used by RDBMS. Relational databases rely on tables, columns, rows, or schemas to organize and retrieve data. In contrast, NoSQL databases do not rely on these structures and use more flexible data models. NoSQL can mean “not SQL” or “not only SQL.” As RDBMS have increasingly failed to meet the performance, scalability, and flexibility needs that next-generation, data-intensive applications require, NoSQL databases have been adopted by mainstream enterprises. NoSQL is particularly useful for storing unstructured data, which is growing far more rapidly than structured data and does not fit the relational schemas of RDBMS. Common types of unstructured data include: user and session data; chat, messaging, and log data; time series data such as IoT and device data; and large objects such as video and images.
TYPES OF NOSQL DATABASES
Several different varieties of NoSQL databases have been created to support specific needs and use cases. These fall into four main categories:
Key-value data stores: Key-value NoSQL databases emphasize simplicity and are very useful in accelerating an application to support high-speed read and write processing of non-transactional data. Stored values can be any type of binary object (text, video, JSON document, etc.) and are accessed via a key. The application has complete control over what is stored in the value, making this the most flexible NoSQL model. Data is partitioned and replicated across a cluster to get scalability and availability. For this reason, key value stores often do not support transactions. However, they are highly effective at scaling applications that deal with high-velocity, non-transactional data.
Document stores: Document databases typically store self-describing JSON, XML, and BSON documents. They are similar to key-value stores, but in this case, a value is a single document that stores all data related to a specific key. Popular fields in the document can be indexed to provide fast retrieval without knowing the key. Each document can have the same or a different structure.
Wide-column stores: Wide-column NoSQL databases store data in tables with rows and columns similar to RDBMS, but names and formats of columns can vary from row to row across the table. Wide-column databases group columns of related data together. A query can retrieve related data in a single operation because only the columns associated with the query are retrieved. In an RDBMS, the data would be in different rows stored in different places on disk, requiring multiple disk operations for retrieval.
Graph stores: A graph database uses graph structures to store, map, and query relationships. They provide index-free adjacency, so that adjacent elements are linked together without using an index.
Multi-modal databases leverage some combination of the four types described above and therefore can support a wider range of applications.
BENEFITS OF NOSQL
NoSQL databases offer enterprises important advantages over traditional RDBMS, including:
Scalability: NoSQL databases use a horizontal scale-out methodology that makes it easy to add or reduce capacity quickly and non-disruptively with commodity hardware. This eliminates the tremendous cost and complexity of manual sharding that is necessary when attempting to scale RDBMS.
Performance: By simply adding commodity resources, enterprises can increase performance with NoSQL databases. This enables organizations to continue to deliver reliably fast user experiences with a predictable return on investment for adding resources—again, without the overhead associated with manual sharding.
High Availability: NoSQL databases are generally designed to ensure high availability and avoid the complexity that comes with a typical RDBMS architecture that relies on primary and secondary nodes. Some “distributed” NoSQL databases use a masterless architecture that automatically distributes data equally among multiple resources so that the application remains available for both read and write operations even when one node fails.
Global Availability: By automatically replicating data across multiple servers, data centers, or cloud resources, distributed NoSQL databases can minimize latency and ensure a consistent application experience wherever users are located. An added benefit is a significantly reduced database management burden from manual RDBMS configuration, freeing operations teams to focus on other business priorities.
Flexible Data Modeling: NoSQL offers the ability to implement flexible and fluid data models. Application developers can leverage the data types and query options that are the most natural fit to the specific application use case rather than those that fit the database schema. The result is a simpler interaction between the application and the database and faster, more agile development.

References:
https://hafidhadinegoro.wordpress.com/2016/03/24/teori-komputasi-implementasi/amp/
https://www.investopedia.com/terms/c/cloud-computing.asp
https://apprenda.com/library/cloud/introduction-to-cloud-computing/
https://azure.microsoft.com/en-in/overview/what-is-cloud-computing/
http://deynarkhairunnisa.blogspot.co.id/2015/10/pengantar-komputasi-grid.html
http://febbri-grunge.blogspot.co.id/2015/06/komputasi-grid-grid-computing.html
https://id.wikipedia.org/wiki/Komputasi_grid
https://dyaherwiyanti.wordpress.com/2016/03/28/map-reduce-dan-nosql-not-only-sql/
http://basho.com/resources/nosql-databases/
https://www.dezyre.com/article/cloud-computing-vs-distributed-computing/94
https://www.javatpoint.com/virtualization-in-cloud-computing

Senin, 12 Maret 2018

Review Jurnal

REVIEW JURNAL CLOUD COMPUTING

Judul jurnal : Cloud Computing : Solusi ICT?
Nama : Afifah Rezky
NPM : 50414394


Salah satu topik terhangat Information and Communication Technology (Teknologi Informasi dan Komunikasi) saat ini adalah cloud computing. Teknologi cloud computing dihadirkan sebagai upaya untuk memungkinkan akses sumber daya dan aplikasi dari mana saja melalui jaringan Internet, sehingga keterbatasan pemanfaatan infrastruktur ICT yang sebelumnya ada dapat diatasi. NIST mendefiniskan Clud Computing adalah sebuah model untuk kenyamanan, akses jaringan on-demand untuk menyatukan pengaturan konfigurasi sumber daya komputasi (seperti, jaringan, server, media penyimpanan, aplikasi, dan layanan) yang dapat dengan cepat ditetapkan dan dirilis dengan usaha manajemen yang minimal atau interaksi dengan penyedia layanan. Pembahasan paper dimulai dengan uraian dari beberapa pendapat dan penelitian terdahulu tentang teknologi cloud computing, selanjutnya ditinjau kelebihan dan kekurangan yang dapat ditimbulkan atas implementasi cloud computing. Pembahasan diakhiri dengan kesimpulan apakah cloud computing merupakan solusi ICT ? dan saran yang dapat dijadikan bahan pertimbangan penguna dalam implementasi cloud computing.

Tiga model layanan dari cloud computing [6], yaitu :
1. Cloud Software as a Service (SaaS). Kemampuan yang diberikan kepada konsumen untuk menggunakan aplikasi penyedia dapat beroperasi pada infrastruktur cloud.
Aplikasi dapat diakses dari berbagai perangkat klien melalui antarmuka seperti web browser (misalnya, email berbasis web). Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar termasuk jaringan, server, sistem operasi, penyimpanan, atau bahkan kemampuan aplikasi individu, dengan kemungkinan pengecualian terbatas terhadap pengaturan konfigurasi aplikasi pengguna tertentu. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti FaceBook.
2. Cloud Platform as a Service (PaaS). Kemampuan yang diberikan kepada konsumen untuk menyebarkan aplikasi yang dibuat konsumen atau diperoleh ke infrastruktur cloud computing menggunakan bahasa pemrograman dan peralatan yang didukung oleh provider. Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar termasuk jaringan, server, sistem operasi, atau penyimpanan, namun memiliki kontrol atas aplikasi yang disebarkan dan memungkinkan aplikasi melakukan hosting konfigurasi. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
3. Cloud Infrastructure as a Service (IaaS). Kemampuan yang diberikan kepada konsumen untuk memproses, menyimpan, berjaringan, dan sumber komputasi penting yang lain, dimana konsumen dapat menyebarkan dan menjalankan perangkat lunak secara bebas, yang dapat mencakup sistem operasian aplikasi. Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar tetapi memiliki kontrol atas sistem operasi, penyimpanan, aplikasi yang disebarkan, dan mungkin kontrol terbatas komponen jaringan yang pilih (misalnya, firewall host). Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.


Kelebihan Cloud Computing
· Menghemat biaya investasi awal untuk pembelian sumber daya.
· Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
· Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
· Menjadikan kolaborasi yang terpercaya dan lebih ramping.
· Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.

Kekurangan Cloud Computing
· Hal penting dalam cloud computing adalah koneksi internet, diperlukan bandwith yang memadai dan stabil agar cloud computing berjalan dengan baik. Komputer akan menjadi lambat atau tidak bisa dipakai sama sekali jika internet bermasalah atau kelebihan beban.
· Perusahaan yang menyewa layanan dari cloud computing tidak punya akses langsung ke sumber daya. Jadi, semua tergantung dari kondisi vendor/penyedia layanan cloud computing.
· Jika server penyedia layana rusak atau punya layanan backup yang buruk, maka perusahaan akan mengalami kerugian besar.

Kesimpulan
Profesional ICT dituntut untuk meningkatkan keahlian yang dimiliki atas penerapan teknologi cloud computing. Dengan kemampuan dan keterampilan yang dimiliki, para profesional dapat menangkap peluang baru yang dapat digunakan sebagai kesempatan untuk memperluas kompetensi mereka.
Perusahaan perlu mengembangkan pengetahuan dan pemahaman tenaga ICT yang mereka miliki, sehingga nantinya transisi ke teknologi berbasis cloud akan yang diterapkan dapat berhasil dan menguntungkan.
Teknologi dalam bidang ICT begitu cepat berkembang, dan ini merupakan sebuah tantangan. Maka dibutuhkan kesiapan para profesional dan perusahaan ICT untuk mengantisipasi perkembangan tersebut.

Tugas Pengantar Komputasi Modern

PENGANTAR KOMPUTASI MODERN

Nama : Afifah Rezky
NPM : 50414394

Cloud Computing atau komputasi awan merupakan gabungan dari pemanfaatan teknologi komputer dan pengembangannya yang berbasis internet. Komputasi awan sering ditemui diperusahaan-perusahaan besar, tujuannya agar pengguna dapat mengakses data kapan saja dan di mana saja tanpa adanya batas dan yang lebih penting adanya koneksi internet. Cloud computing dibagi menjadi tiga yaitu: "Aplikasi", "storage", dan "konektivitas" Setiap segmen memiliki tujuan yang berbeda dan menawarkan produk yang berbeda untuk pebisnis dan individu di seluruh dunia. Cloud computing memungkinkan konsumen dan pebisnis untuk menggunakan aplikasi tanpa instalasi dan mengakses file pribadi mereka di komputer manapun dengan akses internet. Teknologi ini memungkinkan untuk komputasi yang jauh lebih efisien dengan memusatkan penyimpanan data, pengolahan dan bandwidth.

Menurut jurnal yang dipublikasikan IEEE :
Internet Computing / Cloud Computing adalah suatu paradigma dimana informasi secara permanen tersimpan di server internet dan tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, handheld, sensor-sensor, monitor dan lain-lain.

Contoh Cloud Computing
Cloud computing saat ini sedang populer, namun apa contoh dari Cloud Computing itu, berikut adalah lima contoh dari sekian banyak Cloud Computing saat ini:
1)        Email
Email adalah salah satu alat komunikasi yang sudah cukup lama ada. Dalam email tersimpan data-data pada saat kita mengirimkan atau menerima data. Yang berupa tulisan atau file. Data-data tersebut dapat kita akses sewaktu-waktu kita perlukan , tanpa kita harus menyimpan data tersebut pada komputer pribadi sendiri. Orang lain juga dapat mengakses data tersebut tapi tentunya yang hanya menerima email itu saja.
2)      Data storage online
Penyimpanan data pada komputer personal tentu akan santa terbatas. Jika harus membeli server sendiri amat sangat mahal sekali. Oleh sebab itu saat ini kita dapat menyewa atau bahkan ada yang menyediakan server gratis yang dapat kita akses secara online. Contohnya adalah Humyo, ZumoDrive, Microsoft’s SkyDrive, S3 from Amazon, dan masih banyak yang lain.
3)      Colaboration Tools
Penkolaborasian data sering kali diperlukan. Karena data yang ingin kita simpan bermacam-macam jenisnya dan fungsinya. ada banayk tools yang dapat digunakan. Conothnya adalah Spicebird, Mikogo, Stixy and Vyew t.
4)      Virtual Office
Sering kita memerlukan office untuk memproses data-data. Saat ini kita dapat menggunakan office tidak hanya yang sudah terinstall namun kita juga dapat menggunakan office yang disediakan secara online. Contohnya antara lain Ajax13, ThinkFree and Microsoft’s Office Live.
5)      Kekuatan ekstra processing 
Bila membutuhkan kekuatan untuk memproses secara cepat tanpa perlu membeli perangkat tambahan maka salah satu solusinya adalah Amazon’s EC2 virtual computing ini juga dapat diatur sesuai dengan kebutuhan individu masing -masing orang. Contoh yang lain adalah AbiCloud, Elastichosts and NASA’s Nebula platform.



PENGANTAR KOMPUTASI GRID
Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk Internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.
Berbeda dengan cloud computing, Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar. Dalam hal bisa disebut sebagai parallel computing baik itu secara riil maupun virtual.

Secara generik, keuntungan dasar dari penerapan komputasi Grid, yaitu:
Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle.
Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas.
Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik.
Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik

Arsitektur GRID Computing
GRID COMPUTING dibangun dengan jalan menggabungkan sistem-sistem komputasi grid yang berada di institusi-institusi penelitian (GRID-2, 3, 4) menjadi satu kesatuan. Konfigurasi perangkat keras dan perangkat lunak masing-masing sistem di tingkat institusi dapat berbeda, namun dengan mengoperasikan teknologi grid computing seperti GT4 pada simpul-simpul penghubung dari masing-masing sistem, keseluruhan sistem membentuk satu kesatuan infrastruktur komputasi grid. Dengan konfigurasi seperti ini, jika dibutuhkan,pengguna di suatu institusi dapat memanfaatkan sumber daya komputasi yang berada di luar institusinya.

Komponen-komponen penting :
1. GRAM: Grid Resource Allocation & Management
Komponen ini bertanggung jawab dalam mengelola seluruh sumber daya komputasi yang tersedia dalam sistem komputasi grid. Pengelolaan ini mencakup eksekusi program pada seluruh komputer yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai penjadwalan (scheduling) dan koordinasi antar proses.
2. RFT/GridFTP: Reliable File Transfer/Grid File Transfer Protocol
Komponen ini memungkinkan pengguna mengakses data yang berukuran besar dari simpul-simpul komputasi yang tergabung dalam sistem komputasi grid secara efisien dan dapat diandalkan.
3. MDS: Monitoring & Discovery Service
Komponen ini memungkinkan pengguna sistem GT4 melakukan monitoring proses komputasi yang tengah berjalan sehingga masalah yang timbul dapat segera diketahui.

4. GSI: Grid Security Infrastructure
Komponen ini bertanggung jawab atas keamanan sistem komputasi grid secara keseluruhan. Sistem keamanan GT4 dibangun atas komponen-komponen standar keamanan yang telah teruji, yang mencakup proteksi data, autentikasi, delegasi, dan autorisasi. Konfigurasi dasar GT4 mengasumsikan baik pengguna maupun layanan menggunakan standar keamanan yang menggunakan standar kunci publik X.509.



VIRTUALISASI

Virtualisasi dibidang komputer adalah sebuah teknologi, yang memungkinkan untuk membuat versi virtual yang bersifat fisik, contohnya sistem operasi, storge data atau sumber daya jaringan. Disini memiliki Hypervisor yang gunanya untuk memproses sebuah software atau firmware. Virtualisasi adalah membuat sebuah simulasi dari perangkat keras, sistem operasi, jaringan maupun yang lainnya. Di bidang teknologi informasi, virtualisasi digunakan sebagai sarana untuk improvisasi skalabilitas dari perangkat keras yang ada.

Dengan virtualisasi, beberapa sistem operasi dapat berjalan secara bersamaan pada satu buah komputer. Hal ini tentunya dapat mengurangi biaya yang harus dikeluarkan oleh sebuah perusahaan.
Perangkat lunak yang digunakan untuk menciptakan virtual machine pada host machine biasa disebut sebagai hypervisor atau Virtual Machine Monitor (VMM). Menurut Robert P. Goldberg dalam tesisnya yang berjudul Architectural Principles For Virtual Computer Systems pada hal 23 menyebutkan bahwa tipe-tipe dari VMM ada 2 yaitu:
Type 1 berjalan pada fisik komputer yang ada secara langsung. Pada jenis ini hypervisor/VMM benar-benar mengontrol perangkat keras dari komputer host-nya. Termasuk mengontrol sistem operasi-sistem operasi guest-nya. Contoh implementasi yang ada adalah KVM dan OpenVZ. Adapun contoh yang lain seperti VMWare ESXi, Microsoft Hyper-V.
Type 2 berjalan pada sistem operasi diatasnya. Pada tipe ini sistem operasi guest berada diatas sistem operasi host. Contoh tipe ini adalah VirtualBox.



DISTRIBUTED COMPUTATION DALAM CLOUD COMPUTING

Komputasi Terdistribusi merupakan salah satu tujuan dari Cloud Computing, karena menawarkan pengaksesan sumber daya secara parallel, para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain tidak akan terpengaruh, dapat menghemat biaya operasional karena tidak membutuhkan sumber daya (resourches). 

Kegiatan ini merupakan kumpulan beberapa computer yang terhubung untuk melakukan pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi lain antar computer yang dimana membutuhkan sebuah jaringan agar computer satu dan lainnya bisa saling berhubung dan melakukan interaksi. Hal ini semua dilakukan dengan cloud computing yang seperti kita ketahui memberikan layanan dimana informasinya disimpan di server secara permanen dan disimpan di computer client secara temporary.

Distribusi komputasi ini memiliki definisi mempelajari penggunaan terkoordinasi dari computer secara fisik terpisah atau terdistribusi. Pada distributed computing ini, program dipisah menjadi beberapa bagian yang dijalankan secara bersamaan pada banyak computer yang terhubung melalui jaringan internet.



MAP REDUCE DAN NOSQL

Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu sama lain. Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.

NoSQL adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memcache, ataupun yang lebih canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB, dan yang lainnya.
Wikipedia menyatakan NoSQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.

Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan datadan desain database yang berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skala bilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani.NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan.

Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarangbahasa query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel

Kesimpulan
Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table. Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.



NOSQL DATABASE
Nosql adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem database relasional. Nosql tidak membutuhkan skema table dan menghindari operasi join dan berkembang secara horizontal. Selain itu NoSQL merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam membuat suatu program dan proses pengembangannya. Penjelasan lebih mengenai NoSQL database akan dijelaskan pada sub bab dibawah ini.

Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan datadan desain database yang berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skala bilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani.NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan.

Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarangbahasa query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel

Sumber :