Selasa, 25 Maret 2014

Thread

Definisi Thread
 Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.

Multithread
Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.

Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa.

Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani.

Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.


Keuntungan Thread Keuntungan dari program yang multithreading dapat dipisah menjadi empat kategori:

1. Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.

2. Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama. 3. Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.

4. Utilisasi arsitektur multiprocessor: Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum).


Tiga model Multithreading: 

1.     Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.

2.     Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.

3.     Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.


Kesimpulan

Thread adalah alur kontrol dari suatu proses.

Keuntungan menggunakan Multithreading: 
1. Meningkatkan respon dari pengguna.
2. Pembagian sumber daya.
3. Ekonomis.
4. Mengambil keuntungan dari arsitektur multiprosessor.
Tiga model Multithreading: 
1. Model Many-to-One.
2. Model One-to-One.
3. Model Many-to-Many.



Sumber:
http://alandalhaq.blogspot.com/2012/04/implementasi-thread-multithreaded.html

Senin, 24 Maret 2014

Analysis Of The Influence Of Mobile Computing to Business Development

 Definition of Mobile Computing
Technology is the ability to deal with displacement / movement of people in the use of computers in practice. From this definition we can conclude that the Mobile Computing today is much needed, given the needs of today's computer usage is very high, so that the use of Mobile Computing to facilitate computer users in performing their activities by using a computer.

Type Mobile Computing
Mobile Computing that there are currently several types, such as:
·         Laptops 
·         Wearable Computer 
·         PDA (Personal Digital Assistants) 
·         SmartPhone 

Tools For Mobile Computing
Below are some tools Mobile Computing and usefulness.
·         Java ME, popular for gaming
·         Symbian, general purpose, supported Nokia
·         Android is a Linux-based
·         iPhone, only on Mac OS X
·         Lazarus, Object Pascal ported beneficial to
·         Palm OS, Strong in U.S.
·         etc.

Mobile Computing Research
Wireless Communications
·         Quality of connectivity 
·         Bandwidth limitations
Mobility
·         Location transparency 
·         Location dependency
Portability
·         Power limitations 
·         Display, processing, storage limitations


How Would A Mobile Computing Affects Life Of A Businessman And Ordinary People?

Whenever there's something new on the market, people would categorize if that is intended for businessmen or for ordinary people. A lot of technologies and machines are introduced and launched in the market including mobile computing devices. The advantages of this mobile computing device are both applicable for businessmen and ordinary people. So everybody can use these devices to make life easier, have a convenient way of living, safety purposes, and easy access.
The purpose why these mobile computing devices were developed is to bring a maximum advantage that our lives may possibly have. Almost everybody wants to be updated and don't want to be behind the updates. Well, this is just a single advantage of this discovery. It wanted us to be updated real time. If we maximize this gadgets and electronics, there's no way for us to be left alone from anybody else. All parts of the globe are reachable and things are possible. Even if your family is across the globe, you can still feel their presence by maximizing the benefit of these devices anywhere and wherever.
For businesses, this could only be the easiest and the fastest way to approved businesses anywhere in the globe. You don't really need to be in person just to approve any transactions. This way could save money, effort, time, and no delays. Everything could be a click away and transactions easily approved in just a second. Just imagine a business with out this help. For sure a businessman would have to fly for hours or travel for even days just to be on their businesses. It would only be an expense of money. Getting tired even before you do your job, and real hassle that will cause delay and even loses. Or even worst, a business will be at stake and total risk.
Not to mention that everybody has a choice to use these computers for convenient life. It would make our life easy in any means possible. Like if we are on the way driving to home, we can call a family member to prepare for a meal since you may be very hungry. Even in just simple aspects of a simple person, these mobiles will surely help us. Its safety purpose can even save someone's life and could be a way to avoid any danger. It is hassle free to use and to maximize this machine. All of these features are made easy for us to be updated real time, do businesses and transactions right then and there, convenient and hassle free. You can protect your properties and even your families with the use of these techniques.
There are a lot of other minor advantages brought by this computing device. Its main purpose of existence is for us to improve and make life easier than we ever thought. If used potentially to its maximum, effects will surely be advancement in ones life.

TYPES OF TECHNOLOGY TRENDS THAT WILL IMPACT BUSINESS STRATEGIES IN 2014

1. Mobile devices will keep you in contact at all times

Cumbersome desktop computers might work well at home, but you can expect to do most of your business from a mobile device. Laptops will likely remain popular since they have built-in keyboards that people already know how to use. Tablet PCs, however, will become important companion pieces.

2. Cross-device software will help you save time and money

Since you will use several devices in 2014, software providers will respond by letting you download programs to many devices at once without forcing you to pay more. Many developers have already recognized the importance of cross-device software. When you download apps, they often have the opportunity to install the small programs on six or more devices.
This will make it easier for you to learn how to use the software that’s important to your industry. Instead of spending a lot of time trying to figure out how to use several programs, you’ll just adapt to different types of screens.
Of course, it doesn’t hurt that multi-device software helps you save money. Imagine buying separate programs for your desktop, laptop, tablet, and smartphone. That would get expensive fast!

3. Marketing data will come from multiple sources

In 2014, it will become increasingly important for you to learn how to market your products and concepts to precise audiences.
Social media has made marketing more targeted and effective. Of course, many companies have already tapped into this potential. The difference is that more businesses will start integrating information from multiple sources. You might get information from Facebook, your own website, Google, and other data sources.

4. Scalable data plans will become more important

An increased reliance on mobile devices will mean that more people and businesses have to invest in wireless data plans. A tablet can only do so much without accessing the Internet.
Unfortunately, those data plans can cost quite a bit of dosh, especially when you stream video content (we’ll keep mum about whether you’re just watching a movie or trying to convince a client that she needs your services). To combat growing prices, many companies will start to look at scalable data plans.
Scalable data plans differ from those that you probably have for your smartphone. With a scalable plan, you get to exceed your monthly limit without paying ridiculous fees. Many Internet Service Providers will also let customers jump from low-cost packages to higher-cost ones when they go over their allotted data. That’s a great alternative to paying extra fees.

5. Cloud data storage options will become increasingly important

Despite the concerns that many industries have about cloud storage ability and willingness to keep information secure, people will have little choice but to keep more information on these systems as opposed to their hard drives.
While it does raise some concerns, it also offers many advantages to businesses that work in a global marketplace. As many companies have already found, cloud systems make it possible for employees to access information from all over the world. If you have a meeting in China, you can always download a presentation from your cloud system instead of begging someone back at the office to take it off your PC and send it to you. The convenience, in other words, will likely outweigh the concerns. As more industries get involved, cloud service providers will probably find that they have to improve their security measures. That could make it safer for everyone to use.

6. Companies will make more of their own apps

In 2013, people get most of their apps through online stores. This next year will reveal a shift towards proprietary apps owned by employers.
Instead of relying on apps made by outside developers, more companies will start creating apps they can distribute among employees.
A company that builds its own app can include specific features designed to boost productivity and meet client demands. You don’t get that kind of flexibility from many third-party apps.
Many employers will also decide to regulate third-party apps. By assigning a manager to review available apps, the company can make sure that it spends money wisely while giving employees the tools they need to succeed.

7. More employers will ask you to Bring Your Own Device

There is good news for people who hate their workplace computers. Research shows that over two-thirds of companies already let employers bring their own devices to work. BYOD, as it’s called, boosts productivity by keeping employees in constant contact and making it easier for them to work outside of the office.
There’s even research showing that 43 percent of executives encourage BYOD because they want employees to get more work done away from the office. Given the advantages, you can expect this trend to continue in 2014.

8. You will receive BYOD training

As more employers encourage workers to BYOD, they will also need to create training programs that teach workers how to become more productive without compromising network security. Like many technological changes, there are some potential downsides.
Luckily, companies find that a comprehensive BYOD program makes the average employee about $3,150 more valuable every year compared to employees who do not BYOD. Companies that only offer basic BYOD training, see a $400 increase in value.
That means you might as well prepare for training that will turn you into a more valuable employee.
Rederence :
http://tweakyourbiz.com/technology/2013/08/15/8-technology-trends-that-will-impact-business-strategies-in-2014/

http://mobile-computing.bafree.net/how-would-a-mobile-computing-affects-life-of-a-businessman-and-ordinary-people.php

http://ariwiyanto83.blogspot.com/

http://asikgaasik.wordpress.com/2010/05/01/mengenai-mobile-computing/

Senin, 17 Maret 2014

Konsep Objek Terdistribusi Dan Object Interface

Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi developer namun seiring dengan perkembangannya, sistem ini 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 di update satu persatu lagi. Hal ini mengakibatkan perawatan program menjadi susah dan fungsi-fungsi tersebut dapat menjadi tidak konsisten satu sama lain.

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

Ref :

 

http://www.slideshare.net/slideshow/embed_code/10629151#

http://www.slideshare.net/slideshow/embed_code/10629191#

http://www.scribd.com/doc/76924729/System-Terdistribusi-Berbasis-Objek

Selasa, 11 Maret 2014

Karakteristik Sistem Terdistribusi

1. No global clock
 Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi,
oleh karena asynchronous message passing
 Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global state
sistem saat ini (disebabkan oleh concurrency dan message passing)
2. Independent failure
 Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
 Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan
3. Concurrency of components
Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama
dalam jaringan komputer) secara bersamaan.
• Setiap komponen Hardware atau Software bersifat otonom.
• Sinkronisasi dan koordinasi dengan message passing.
• Sharing resource
Masalah umum dalam system concurrent:
- Deadlock
- Lifelock
- Komunitas yang tidak handal

Ref :
1. http://www.scribd.com/doc/19554770/1PENGENALAN-SISTEM-TERDISTRIBUSI
3. http://adang.staff.gunadarma.ac.id/Downloads/files/587/CatatanSistemTerdistribusi1.pdf