261206021302

155
’LNWDW.XOLDK (( ’LVWULEXWHG6\VWHPDQG,QWHU2SHUDELOLW\ 2OHK 6RQ\6XPDU\R 1,3 6(.2/$+7,1**,7(.12/2*,7(/.20 %$1’81*

Upload: sofian-wiranandi

Post on 23-Jun-2015

177 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 261206021302

'LNWDW�.XOLDK��

((������'LVWULEXWHG�6\VWHP�DQG�,QWHU�2SHUDELOLW\�

�����

2OHK����

6RQ\�6XPDU\R�1,3�����������

����������

6(.2/$+�7,1**,�7(.12/2*,�7(/.20�%$1'81*������

Page 2: 261206021302

/HPEDU�3HQJHVDKDQ��

Diktat Kuliah

EE-5523 Distributed System and Inter-Operability

Oleh :

Sony Sumaryo

NIP.: 9367070

Bandung, Maret 2004

Disahkan Oleh :

��

�Sekretaris Program S2 Kepala Unit Perpustakaan

Jurusan Teknik Elektro

���Heroe Wijanto, Ir. MT. Yani Nuraeni, Dra.

NIP.: 9268054 NIP.: 9167035

Page 3: 261206021302

.DWD�3HQJDQWDU��

Buku ini merupakan diktat untuk mata kuliah EE5523-Distributed System and Inter-Operability. Diktat ini merupakan keluaran yang pertama kalinya sehingga masih banyak memerlukan masukan untuk perbaikan diktat selanjutnya. Saya juga mengucapkan banyak terimakasih kepada saudara/saudari: Gelar Budiman, Hasdi Radiles, Indrarini Dyah Irawati, Ody Dasa F., Yusuf Yarif S., Irhandi dan Wimpi Gustina M., atas masukannya untuk bagian Studi Kasus. Bandung, Maret 2004 Penulis, Sony Sumaryo

Page 4: 261206021302

i

'DIWDU�,VL����

�.DWD�3HQJDQWDU�����&KDUDFWHUL]DWLRQ�RI�'LVWULEXWHG�6\VWHPV ������'HVLJQ�*RDOV� � � � � � � � � � ������1HWZRUNLQJ�GDQ�,QWHUQHWZRUNLQJ�� � � � � � � ������,QWHUSURFHVV�&RPPXQLFDWLRQ���� � � � � � � � �������5HPRWH�3URFHGXUH�&DOOLQJ��53&����� � � � � � � �������'LVWULEXWHG�2SHUDWLQJ�6\VWHPV���� � � � � � � �������'LVWULEXWHG�)LOH�6\VWHPV���� � � � � � � � �������7LPH�GDQ�&RRUGLQDWLRQ���� � � � � � � � �������1DPH�6HUYLFHV��� � � � � � � � � � ��� ����5HSOLFDWLRQ� � � � � � � � � � ��������7UDQVDFWLRQV�GDQ�'HDGORFN� � � � � � � � ��������)DXOW�7ROHUDQFH� � � � � � � � � � ��������'LVWULEXWHG�6KDUHG�0HPRU\�� � � � � � � � ��������6HFXULW\� � � � � � � � � � � ��������6WXGL�.DVXV� � � � � � � � � � ����5HIHUHQVL�� � � � � � � � � � � ���������� �� �

Page 5: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

1 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�,��

&KDUDFWHUL]DWLRQ�RI�'LVWULEXWHG�6\VWHPV������

�����,QWURGXFWLRQ�

A distributed system consists of a collection of autonomous computers linked by a computer network and equipped with distribute software. Distributed System software enables computers to coordinate their activities and to share the resources of the system (hardware, software, data). Users of a well-designed distributed system should perceive a single, integrated computing facility even though it may be implemented by many different computers in different locations. Contoh : Distributed UNIX WAN applications

7DEHO�����.HXQWXQJDQ�'LVWULEXWHG�6\VWHPV�7HUKDGDS�&HQWUDOL]HG�6\VWHPV�,WHPV� 'HVFULSWLRQ�Economics Microprocessors offer a better price/performance Speed A distributed system may have more total computing power than

mainframe Inherent Distribution Some applications involve spatially separated machines Reliability If one machine crashes, the system as a whole can still survive Incremental growth Computing power can be added in small increments

7DEHO�����.HXQWXQJDQ�'LVWULEXWHG�6\VWHPV�7HUKDGDS�,VRODWHG��3HUVRQDO��&RPSXWHUV�,WHP� 'HVFULSWLRQ�Data sharing Allow many users access to a common data base Device sharing Allow many users to share expensive peripherals

like color printers Communication Make human-to-human communication easier,

e.g. E-mail Flexibility Spread the workload over the available machines

in the most cost effective way

Page 6: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

2 Distributed System and Inter-Operability

__________________________________________________________________________________________ 7DEHO�����.HUXJLDQ�'LVWULEXWHG�6\VWHPV�,WHP� 'HVFULSWLRQ�Software Sedikit software untuk distributed system Networking Jaringan dapat saturasi atau problem Security Rentan

Interoperability: refers to the ability of two different networks to work together. For example, interoperability describes how networks can communicate or share data with each other, regardsless of whether these networks use the same network architecture. Interoperability is taken for granted when the networks are homogeneous Æ when they use same architecture. It also refers to the ability of different software products to work together in the same environment.

�*DPEDU�����&RQWRK�'LVWULEXWHG�6\VWHP�6HGHUKDQD�

Page 7: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

3 Distributed System and Inter-Operability

__________________________________________________________________________________________

��*DPEDU�����$�&HQWUDOL]HG�0XOWL�8VHU�6\VWHP�

�������.H\�&KDUDFWHULVWLFV��5HVRXUFH�VKDULQJ�Hardware: disks, printers ; Software: files, database, windows� Resources dalam distributed system secara fisik berada di salah satu computer dan dapat diakses oleh computer lain melalui komunikasi. Agar supaya dapat sharing secara efektif, setiap resource harus diatur oleh sebuah program yang mampu memberikan interface komunikasi sehingga resources dapat diakses, dimanipulasi dan di update dengan reliable dan konsisten.. Resource Manager : merupakan sebuah software module yang mengatur sekelompok resources dengan tipe tertentu User dapat menggunakan shared resources dari system dengan berkomunikasi dengan Resource Manager. &OLHQW�VHUYHU�PRGHO�Terdapat sekumpulan server processes (masing-masing berfungsi sebagai Resource manager) dan sekumpulan client processes. Beberapa processes secara bersamaan dapat sebagai client maupun server processes. Semua shared resources diatur oleh server processes. Client processes memohon ke server kapan saja bila perlu mengakses resource, dan bila permohonan itu valid sever akan memberikan aksi yang diminta dan memberikan reply ke client processes.

2EMHFW�EDVHG�PRGHO�Setiap shared resource dipandang sebagai sebuah object. Object didentifikasi secara unik dan bisa pindah kemana saja di dalam jaringan tanpa merubah identitasnya. Object dapat bersikap sebagai pengguna resources dan resource managers.

�2SHQQHVV�

Page 8: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

4 Distributed System and Inter-Operability

__________________________________________________________________________________________ Openness dari system distribusi ditentukan terutama melalui tingkat seberapa�jauh resource-sharing services baru dapat ditambahkan tanpa mengganggu atau duplikasi terhadap service yang ada. Openness dicapai melalui publishing dari spesifikasi dan interfacing software.

�&RQFXUUHQF\�Istilah ini mengacu pada bahwa beberapa user dapat memohon atau mengakses resources pada saat yang bersamaan. Idealnya processor mampu melayani beberapa permintaan user secara simultan.

��6FDODELOLW\�Mengacu kepada kemampuan system untuk tumbuh (sebagai contoh makin bertambahnya jumlah komputer). Sistem dan software aplikasi tak perlu berubah ketika skala/ukuran dari sistem bertambah.

���)DXOW�7ROHUDQFH�Mengacu kepada kemampuan system untuk terus berfungsi setelah adanya kegagalan software atau hardware. Fault tolerance dapat dicapai melalui dua pendekatan: hardware redundancy, software recovery.

7UDQVSDUHQF\�Mengacu bahwa user tak tahu bahwa beberapa resources yang berbeda yang sedang diakses tersebar diberbagai tempat. Sistem dirasakan sebagai satu kesatuan daripada sekelompok komponen yang independent. Jenis transparency:

* Access transparency * Location transparency * Concurrency transparency * Replication transparency * Failure transparency * Migration transparency * Performance transparency * Scaling transparency

Page 9: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

5 Distributed System and Inter-Operability

__________________________________________________________________________________________

�*DPEDU�����3HUNHPEDQJDQ�3HQJHPEDQJDQ�'LVWULEXWHG�6\VWHP�

���������

Page 10: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

6 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�,,��

'HVLJQ�*RDOV��

������

����%DVLF�'HVLJQ�,VVXHV��

1DPLQJ�* Global meaning * Must be supported by a name interpretation system * Name dikatakan resolved ketika nama diterjemahkan ke dalam bentuk yang bisa digunakan untuk meminta sebuah aksi pada resource atau object yang dituju oleh name tsb. Resolution dari name bias melibatkan beberapa tahapan translasi. * Selalu dipecahkan/resolved relative terhadap beberapa context * Naming Scheme dapat dirancang untuk melindungi resources terhadap para pengakses yang tak berhak. * Design issue: to design naming schemes that will scale to an appropriate degree and in which names are translated efficiently to meet appropriate goals for performance.

&RPPXQLFDWLRQ�* Sangat mempengaruhi performansi distributed system * Komunikasi antara sepasang proses melibatkan operasi di dalam pengirim dan penerima processes yang secara bersama-sama menghasilkan : transfer of data dan synchronization. * Client-server communication * Group multicast * Design issue: to optimize the implementation of communication in distributed systems while retaining a high level programming model for its use.

6RIWZDUH�6WUXFWXUH�Software harus menyediakan : basic resource management (spt.: memory allocation and protection, process creation and processor scheduling, interprocess communication, peripheral device handling), user and application services serta service lain untuk application program sehingga service-service baru dapat ditambahkan dengan mudah. Open systems: terintegrasinya computer dengan arsitektur dan operating system kernel yang berbeda, dan penambahan aplikasi baru berdampingan dengan yang sudah ada. Kategori software:

Page 11: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

7 Distributed System and Inter-Operability

__________________________________________________________________________________________

��2SHUDWLQJ�V\VWHP�NHUQHO�VHUYLFHV�� � Harus berupa software kernel dalam setiap computer, bertanggung jawab dalam penyediaan basic set of resources dan services serta perlindungan basic hardware component dari akses yang tak diijinkan. � ��2SHQ�VHUYLFHV�� Dengan kategori ini, service-service baru dapat dibangun dan dipasang sebagaiman diperlukan serta dapat beradaptasi terhadap banyak aplikasi yang berbeda. � ��'LVWULEXWHG�SURJUDPPLQJ�VXSSRUW�� � Mendukung program-program distributed.

- $SSOLFDWLRQV��

*DPEDU�����.DWHJRUL�6RIWZDUH�GL�'DODP�6XDWX�'LVWULEXWHG�6\VWHP� Design issue: to structure a system so that new services can be introduced that will interwork fully with existing services without duplicating existing services without duplicating existing service elements. ��

:RUNORDG�DOORFDWLRQ�* Processor pool model * Shared-memory multiprocessors * Design issue: how to deploy the processing and communication and resources in a network to optimum effect in the processing of a changing workload.

Page 12: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

8 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�����0RGHO�3URFHVVRU�3RRO���&RQVLVWHQF\�PDLQWHQDQFH�Perlu karena adanya pemisahan proses resources dan concurrency Macamnya:�

* Update consistency * Cache consistency * Replication consistency * Clock consistency * User Interface consistency

����8VHU�5HTXLUHPHQWV�)XQFWLRQDOLW\�

Fungsi yang disediakan system terdistribusi tidak kurang dari fungsi yang disediakan oleh computer tunggal

5HFRQILJXUDELOLW\�Kemampuan untuk mengakomodasi perubahan dalam: short-term changes, medium-to-long-term evolution.

4R6�Menyangkut: performance (seperti kecepatan akses), reliability dan availability, security. ������

Page 13: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

9 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�,,,��

1HWZRUNLQJ�GDQ�,QWHUQHWZRUNLQJ����

���������3HQGDKXOXDQ�3HUIRUPDQFH�3DUDPHWHUV: - Latency : waktu yang dibutuhkan oleh sebuah pesan kosong (an empty message) antara computer yang terkait. Ditentukan oleh software overhead, routing delays dan banyaknya pengakses jaringan. - Data transfer rate: kecepatan data yang dapat ditransfer antara dua computer di dalam jaringan. Ditentukan oleh karakteristik fisik 0HVVDJH� WUDQVIHU� UDWH yang diperlukan jaringan untuk mentransfer sebuah pesan dengan panjang dalam ukuran bits antara dua komputer = latency + (length in bits / data transfer rate). 7RWDO�V\VWHP�EDQGZLGWK: total volume trafik yang dapat ditransfer melintasi jaringan/network selama waktu yang ditentukan. 3HUIRUPDQFH�5HTXLUHPHQW: Contoh: waktu transmit sebuah request message dan terima sebuah reply message tidak boleh lebih lama dari waktu yang diperlukan untuk mengakses disk. 5HOLDELOLW\�UHTXLUHPHQWV: diperlukan oleh hamper kebanyakan aplikasi distributed system. Jenis network : • LANs : * jaringan dalam satu gedung atau campus, latency – rendah kecuali trafik sangat tinggi. * transfer rate ( saat ini) : 0.2 - 100 Mbit/s Æ cukup untuk aplikasi distributed system • WANs : * computer yang berkomunikasi berada pada lokasi yang berbeda (kota, negara, benua) * transfer rate (saat ini) : 20 – 500 kbps Æ belum cukup untuk aplikasi distribute system * penerapan B-ISDN dengan teknologi ATM Æ cukup untuk aplikasi distribute system • MANs:

Page 14: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

10 Distributed System and Inter-Operability

__________________________________________________________________________________________ * berdasarkan fibre optic dengan jangkauan lokasi kota sampai jarak transmisi 50 km, * data transfer rate mirip B-ISDN dan bisa menggunakan teknologi ATM, * persyaratan jaringan mirip LAN tetapi dengan jarak yang lebih jauh. An internetwork is a communication subsystem in which several networks are linked together to provide common data communication facilities that conceal the technologies and protocols of the individual component networks and methods used for their interconnection. Internetwork sangat dibutuhkan untuk implementasi distributed system. �����3URWRFROV�Protocol: a well-known set of rules and formats to be used for communication between process in order to perform a given task. Protocol mengandung dua bagian:

• A specification of the sequence of messages that must be exchanged • A specification of the format of the data in the messages.

Definisi protocol merupakan contoh bagus untuk open system Protocol diimplementasikan oleh sepasang software module yang terletak di pengirim dan penerima komputer. Protocol layers :

• Network software disusun dalam hirarki layers • Layer direpresentasikan oleh module di setiap computer yang terhubung ke jaringan • Setiap layer menyediakan service pada layer di atasnya dan menggunakan service

yang disediakan oleh layer dibawahnya. • A complete set of protocol layers disebut sebagai : protocol suite / protocol stack. • OSI Reference Model di adop untuk pengembangan standard protocol Æ open system.�

�Paket yang dikirim biasanya terdiri dari field: header dan data. Field data yang dikirim panjangnya variable dan memiliki panjang maksimum yang disebut Maximum Transfer Unit (MTU). �Transport layer bertugas menyediakan QHWZRUN�LQGHSHQGHQW�PHVVDJH�WUDQVSRUW�VHUYLFH�antara sepasang network port. Port: software-definable destination points for communication within a host computer. Jenis data transport service: connection-oriented, connectionless. �������

Page 15: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

11 Distributed System and Inter-Operability

__________________________________________________________________________________________ 7DEHO�����7DEHO�3URWRNRO�26,��

*DPEDU�����&RQWRK�-DULQJDQ�.DPSXV�

Page 16: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

12 Distributed System and Inter-Operability

__________________________________________________________________________________________

�*DPEDU�����:LGH�$UHD�1HWZRUN�

��

Page 17: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

13 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�,9��

,QWHUSURFHVV�&RPPXQLFDWLRQ������������

����%XLOGLQJ�%ORFNV�RI�,QWHUSURFHVV�&RPPXQLFDWLRQ� Process adalah program atau bagian program yang dieksekusi pada sebuah computer. Struktur data di program aplikasi harus disesuiakan formatnya sebelum ditransmisikan, dan kemudian dibangun kembal di penerima. Agar supaya dua komputer dapat bertukar GDWD�YDOXHV:

• 9DOXHV di konversikan ke bentuk data eksternal yang disetujui sebelum ditransmisikan dan dikonversi kembali dalam bentuk lokal di penerima. Contoh Sun XDR.

�*DPEDU�����;'5�0HVVDJH�

�• Konversi ke bentuk data eksternal dapat dihilangkan pada komunikasi antara dua

komputer yang sejenis. Ketika komunikasi FRQQHFWLRQ�RULHQWHG digunakan, sepasang komputer yang berkomunikasi bernegoisasi untuk menyepakati bentuk data eksternal.

• Alternatif lain, mengirimkan GDWD� YDOXHV dalam bentuk aslinya bersamaan dengan identifikasi arsitektur, dan penerima mengkonversikan data tersebut bila perlu.

Page 18: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

14 Distributed System and Inter-Operability

__________________________________________________________________________________________ Marshalling: process of taking a collection of data items and assembling them into a form suitable for transmission in a message. Unmarshalling is the process of disassembling them on arrival to produce an equivalent collection of data items at the destination. Marshalling consists of both the flattening of structured data items into a sequence of basic data items into a sequence of basic data items and translation of those data items into an external data representation. Marshalling bisa dilakukan dengan “by hand”. Single message passing dapat didukung oleh dua operasi komunikasi message: 6HQG� and 5HFHLYH� Contoh operasi 6HQG� and 5HFHLYH� menggunakan port dan dalam bentuk modul interface Modula-2: '(),1,7,21�02'8/(�0HVVDJH��(;3257�48$/,),('�0HVVDJH��(UURU5HSRUW��3RUW,G��6HQG��5HFHLYH��7<3(�� 3RUW,G � JOREDO�SRUW�LGHQWLILHU��UHSUHVHQWHG�IRU�H[DPSOH�E\�����ELWV ��� 0HVVDJH� �5(&25'�� � GDWD,WHPV�� VHTXHQFH�RI�E\WHV ���� (1'��� (UURU7\SH �121(�7,0(287���9$5�(UURU5HSRUW�(UURU7\SH��� XVHG�ZKHQ�5HFHLYH�WLPHV�RXW ��352&('85(�6HQG�S�3RUW,G�P�0HVVDJH���352&('85(�5HFHLYH�S�3RUW,G��9$5�P�0HVVDJH���(1'�0HVVDJH���������������������������������������������������������������������������������������������������� �Sending process menambahkan messages ke buffer/queues and receiving process menghilangkan messages dari buffer/queues. Komunikasi antara sending dan receiving process bisa bersifat synchronous dan asynchronous. Dalam komunikasi bersifat synchronous, perlu sinkronisasi antara sending dan receiving process pada setiap message. Kapan saja 6HQG�dikeluarkan, sending process diblock sampai FRUUHVSRQGLQJ� 5HFHLYH. Kapan saja 5HFHLYH� dikeluarkan, process terblock sampai message datang. Dalam bentuk asynchronous, 6HQG� operation adalah non-blocking yaitu proses pengiriman message parallel/bersamaan dengan sending process. Sedangkan 5HFHLYH� GDSDW� EHUVLIDW�EORFNLQJ�atau�QRQ�EORFNLQJ� Dalan bentuk non-blocking, the receiving process proceeds with its program after issuing a 5HFHLYH� operation which provides a buffer to be filled in the background, but it must separately receive notification that its buffer has been filled. Dalam Internet protocol alamat tujuan dari messages direpresentasikan dengan sebuah �SRUW�QXPEHU yang digunakan oleh sebuah process dan ,QWHUQHW� DGGUHVV dari computer di mana process berjalan.

Page 19: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

15 Distributed System and Inter-Operability

__________________________________________________________________________________________ Dalam system terdistribusi berlaku location transparency, yaitu identifikasi tujuan message tak tergantung lokasi (Contoh di FLIP protocol). Tetapi hal tersebut perlu proses mapping ke lower-level address yang sedang berlaku. ��7DEHO�����0HVVDJH�'HVWLQDWLRQV�0HVVDJH�GHVWLQDWLRQ� 2SHUDWLQJ� V\VWHP� DQG�

GLVWULEXWHG� SURJUDPPLQJ�HQYLURQPHQWV�

/RFDWLRQ�LQGHSHQGHQW"�

Process V Yes Ports Mach, Chorus and Amoeba Yes Sockets BSD 4.x UNIX No Groups of processes V, Amoeba Yes Groups of ports Chorus Yes Objects Clouds, Emerald Yes

*DPEDU�����3RUW�6HEDJDL�7XMXDQ�0HVVDJH�

Unreliable message merujuk ke single message transmitted dari pengirim ke penerima tanpa acknowledgement atau balasan. Pengiriman reliable message membutuhkan message identifier yang terdiri dari UHTXHVW,G�dan identifier dari sender process. ����&OLHQW�6HUYHU�&RPPXQLFDWLRQ��

*DPEDU�����.RPXQLNDVL�5HTXHVW�5HSO\�

Page 20: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

16 Distributed System and Inter-Operability

__________________________________________________________________________________________ Protokol 5HTXHVW�UHSO\�terdiri dari 3 buah PHVVDJH�FRPPXQLFDWLRQ�SULPLWLYHV: 'R2SHUDWLRQ��*HW5HTXHVW�dan 6HQG5HSO\� 'R2SHUDWLRQ�digunakan oleh client untuk meminta remote operation. _______________________________________________________________________ 352&('85(�'R2SHUDWLRQ�VHUYHU3RUW�3RUW,G��UHTXHVW�0HVVDJH��9$5�UHSO\�0HVVDJH���// send request message (UHTXHVW)�to server at port VHUYHU3RUW and receive reply UHSO\�� 'R2SHUDWLRQ� dapat diimplementasikan dengan menggunakan 6HQG� operation yang berisi request message, dan kemudian diikuti 5HFHLYH�operation. Ketika 'R2SHUDWLRQ� digunakan oleh client, process di-blocked sampai server melakukan operation yang diminta dan mengirim UHSO\�PHVVDJH ke FOLHQW�SURFHVV. _________________________________________________________________________ 352&('85(�*HW5HTXHVW��VHYHU3RUW�3RUW,G��9$5�UHTXHVW�0HVVDJH�����acquire a client request (UHTXHVW)�via server port VHUYHU3RUW� 352&('85(�6HQG5HSO\�FOLHQW3RUW�3RUW,G��UHSO\�0HVVDJH�����send reply message (UHSO\) to client at its port FOLHQW3RUW� *HW5HTXHVW digunakan oleh server process untuk mendapatkan permintaan service. Ketika server telah mengeksekusi operasi yang diindikasikan di UHTXHVW� PHVVDJH, server menggunakan 6HQG5HSO\� untuk mengirim UHSO\� PHVVDJH ke client. Ketika UHSO\� PHVVDJH diterima client, maka 'R2SHUDWLRQ�di-unblocked dan eksekusi program berikutnya di client berlanjut. Struktur 5HTXHVW�UHSO\�PHVVDJH: messageType requestId procedureId arguments 'R2SHUDWLRQ� di client membangkitkan UHTXHVW,G� untuk setiap UHTXHVW� PHVVDJH dan server mengcopynya ke dalam UHSO\�PHVVDJH yang terkait. SURFHGXUH,G�merujuk ke prosedur server yang mengimplementsikan operasi yang diminta oleh client. �'R2SHUDWLRQ�sebaiknya menggunakan timeout ketika menunggu UHSO\�PHVVDJH dari server. Aksi yang diambil ketika timeout terjadi tergantung pada jenis protocol RPC yang digunakan.

• Request (R) protocol : Message sent by: client: 5HTXHVW�• Request-reply (RR) protocol: Message sent by: client: 5HTXHVW; server: 5HSO\�• Request-reply-acknowledge reply (RRA) protocol: Message sent by: client: 5HTXHVW;

server: 5HSO\��client: $FNQRZOHGJH�UHSO\���

Page 21: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

17 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�����0RGHO�&OLHQW�6HUYHU�

�������

���

*DPEDU�����)LOH�KHDGHU�K�\DQJ�'LJXQDNDQ�ROHK�&OLHQW�'DQ�6HUYHU

Page 22: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

18 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU������D��&RQWRK�6HUYHU��E��&RQWRK�3URVHGXU�&OLHQW��

*DPEDU�����%HEHUDSD�&RQWRK�3HUWXNDUDQ�0HVVDJH�8QWXN�.RPXQLNDVL�&OLHQW�6HUYHU�

Page 23: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

19 Distributed System and Inter-Operability

__________________________________________________________________________________________ �����*URXS�&RPPXQLFDWLRQ��0XOWLFDVW�PHVVDJH lebih sesuai untuk model komunikasi dari sebuah process ke sekelompok process yang lain. Sebagai contoh dimana service diimplementasikan pada sejumlah process yang berbeda di dalam beberapa komputer yang berbeda. 0XOWLFDVW�PHVVDJH�adalah message yang dikirim oleh sebuah process ke anggota dari sebuah group process. 0XOWLFDVW� PHVVDJH� sangat berguna untuk membangun distributed system dengan karakteristik: )DXOW�WROHUDQFH�EDVHG�RQ�UHSOLFDWHG�VHUYLFHV �Replicated services terdiri dari sekelompok server. Permintaan client di-multicast ke seluruh anggota group yang setiap anggota group melakukan operasi identik. Jadi jika salah satu server gagal, maka client masih tetap bisa dilayani.

Kasus ini membutuhkan setiap server menerima semua request, sehingga semua server melakukan hal yang sama dan pada state yang sama pada suatu saat. Untuk mencapai ini diperlukan DWRPLF�PXOWLFDVW�

Message yang ditransmisikan oleh atomic multicast diterima oleh seluruh process yang menjadi anggota dari UHFHLYLQJ� JURXS� atau tidak diterima oleh salah satupun dari mereka. Process yang gagal/failed tidak bisa lagi menjadi anggota group.

�/RFDWLQJ�REMHFWV�LQ�GLVWULEXWHG�VHUYLFHV�0XOWLFDVW�PHVVDJH�dapat digunakan untuk melokalisasi object didalam distributed services.

%HWWHU�SHUIRUPDQFH�RI�WKH�VHUYLFH�WKURXJK�UHSOLFDWHG�GDWD�

0XOWLSOH�XSGDWH�Multicast ke sebuah group dapat digunakan untuk memberitahu process ketika sesuatu terjadi.

5HOLDEOH�PXOWLFDVW adalah metoda transmisi message dengan cara best effort ( mis. Can be repeated) ke seluruh anggota group. 8QUHOLDEOH�PXOWLFDVW hanya mentransmisikan multicast message hanya sekali. Atomic dan reliable multicast menyediakan FIFO ordering antara sepasang process. Ini bias dicapai dengan pemberian sequence number pada message. Ketika beberapa message ditransmisikan ke sebuah group oleh WRWDOO\�RUGHUHG� PXOWLFDVW��message akan mencapai ke seluruh anggota group dalam urutan yang sama. Contoh implementasi: 352&('85(�PXOWLFDVW�GHVWLQDWLRQ��$55$<�2)�3RUW,G��P�0HVVDJH���9$5�L�&$5',1$/��%(*,1�� )25�,�� ��72�+,*+�GHVWLQDWLRQV��'2�6HQG�GHVWLQDWLRQV�L���P�(1'���(1'���

Page 24: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

20 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�����&ORVHG�*URXS�'DQ�2SHQ�*URXS��

Process 0 mengirim message ke anggota Group yaitu process 1, 3 dan 4.

(a) Implementasi Multicast. (b) Implementasi Broadcast. (c) Implementasi Unicast

�*DPEDU�����*URXS�$GGUHVVLQJ��

�������������

Page 25: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

21 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�9��

5HPRWH�3URFHGXUH�&DOOLQJ��53&�������

��������3HQGDKXOXDQ� Remote Procedure Call (RPC):

• Adalah mekanisme yang mengijinkan program memanggil procedure (FDOO�SURFHGXUH) yang berada pada komputer lainnya;

• Ketika process pada komputer (machine) A memanggil (call) sebuah prosedur pada computer B, process pemanggil pada computer A ditunda/menunggu, dan eksekusi dari procedure terpanggil di computer B dikerjakan. Informasi yang dapat dikirimkan dari pemanggil ke terpanggil berupa parameter-parameter dan dapat datang kembali dalam hasil procedure. Tak ada pengiriman message yang tampak oleh programmer.

• Enabling clients to communicate with servers by calling procedures in similar way to the conventional use of procedure calls in high-level languages. The RPC is modelled on the local procedure call, but the called procedure is executed in a different process and usually a different computer from the caller.

����2SHUDVL�'DVDU��Tahapan RPC:

• The Client procedure calls the client stub. • The client stub builds a message and traps to the kernel. • The kernel sends the message to the remote kernel. • The remote kernel gives the message to the server stub. • The server stub unpacks the parameters and calls the server. • The server does the work and returns the result to the stub. • The server stub packs it ina message and traps to the kernel. • The remote kernel sends the message to the client’s kernel. • The client’s kernel gives the message to the client stub. • The stub unpacks the result and returns to the client.

Page 26: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

22 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�����&DOOV�GDQ�0HVVDJHV�SDGD�53&��

(a) Kondisi Stack sebelum pemanggilan ��������� (b) Kondisi Stack ketika procedure yang dipanggil aktif.

(c) Kondisi Stack setelah operasi pemanggilan.

*DPEDU�����.RQGLVL�6WDFN�3DGD�3HPDQJJLODQ�3URFHGXUH Contoh sebuah Call : FRXQW� �UHDG�IG��EXI��QE\WHV��� UHDG� misalkan adalah UHPRWH� SURFHGXUH. Read rutin diekstrak dari Library. Kemudian program mengikuti FDOOLQJ�VHTXHQFH seperti pada Gambar 5.2. Lalu FOLHQW�VWXE membungkus parameter-parameter ke dalam message dan kemudian meminta kernel mengirimkan message tersebut ke server. Setelah memanggil VHQG� , client stub memanggil UHFHLYH� lalu blocking sampai reply datang. Ketika message sampai di server, kernel melewatkannya ke VHUYHU�VWXE yang diikatkan pada DFWXDO� VHUYHU. 6HUYHU� VWXE memanggil UHFHLYH�dan terblock menunggu

Page 27: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

23 Distributed System and Inter-Operability

__________________________________________________________________________________________ kedatangan messages. 6HUYHU� VWXE menguraikan parameter dari message dan kemudian memanggil prosedur server. Ketika VHUYHU� VWXE mendapatkan kontrol kembali, ia kemudian mengepak/membungkus hasilnya di message dan memanggil VHQG�untuk mengirimkannya ke client. Ketika message tiba di mesin client, kernel di mesin client lalu mengcopy message ke ZDLWLQJ� EXIIHU dan FOLHQW�SURFHVV tidak terblock. &OLHQW�VWXE memeriksa message, menguraikan hasilnya dan lalu mengcopinya ke pemanggil/caller. Ketika caller mendapatkan kembali kontrolnya (setelah memanggil UHDG�, ia tahu bahwa data telah tersedia dan ia tak tahu bahwa data diperoleh dari komputer lainnya.

*DPEDU�����&ULWLFDO�3DWK�GDUL�&OLHQW�NH�6HUYHU��

����3DUDPHWHU�3DVVLQJ��Parameter marshalling : packing parameter into a message.

�*DPEDU�����&RQWRK�3URFHGXUH�GDQ�&RUUHVSRQGLQJ�0HVVDJH�

Page 28: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

24 Distributed System and Inter-Operability

__________________________________________________________________________________________ Contoh representasi :

• Character code: EBCDIC (digunakan IBM mainframe), ASCII (digunakan IBM PC) • Integer: 1s complement, 2s complement • Booleans: 0 (false), 1 (true) • Floating –point numbers: IEEE format • Representasi message: little endian (Intel format), big endian( SPARC format)

(a) Bentuk message asli pada 486 (b) Message setelah setelah diterima oleh SPARC (c) Message setelah diinversi.

*DPEDU�����&RQWRK�5HSUHVHQWDVL�0HVVDJH�

�How should information be representated in the messages ?

• Dengan menggunakan sebuah format VWDQGDUG�QHWZRUN atau bentuk canonical untuk character code, integer dan sebagainya

• Client menggunakan format aslinya dan diindikasikan pada byte pertama dari message

*DPEDU�����3HUKLWXQJDQ�VXP������6HFDUD�5HPRWH��

�����'\QDPLF�%LQGLQJ�Bagaimana client mengetahui server ? Cara menggunakan network address tidak flexible. Beberapa sistem terdistribusi menggunakan cara G\QDPLF�ELQGLQJ untuk pencocokkan client dengan server yang sesuai. Contoh formal specification dari server:

Page 29: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

25 Distributed System and Inter-Operability

__________________________________________________________________________________________ �LQFOXGH��KHDGHU�K!��VSHFLILFDWLRQ�RI�ILOHBVHUYHU��YHUVLRQ�������� ORQJ�UHDG�LQ�FKDU�QDPH>0$;B3$7+@��RXW�FKDU�EXI>%8)B6,=(@��� � � LQ�ORQJ�E\WHV��LQ�ORQJ�SRVLWLRQ���� ORQJ�ZULWH�LQ�FKDU�QDPH>0$;B3$7+@��RXW�FKDU�EXI>%8)B6,=(@��� � � LQ�ORQJ�E\WHV��LQ�ORQJ�SRVLWLRQ���� LQW�FUHDWH�LQ�FKDU>0$;B3$7+@��LQ�LQW�PRGH���� LQW�GHOHWH�LQ�FKDU>0$;B3$7+@���HQG��ILOHBVHUYHU�: name of the server 3.1 : version number UHDG��ZULWH�� FUHDWH��GHOHWH��procedure yang disediakan oleh server. Untuk setiap procedure, tipe dari setiap parameter diberikan: LQ��RXW��LQ�RXW� Arahnya relatif ke server. %XI���tempat dimana file server meletakkan data yang diminta oleh client. The primary use of the formal specification is as input to the VWXE�JHQHUDWRU�, which produces both the client stub and the server stub. Both are then put into appropriate libraries. When a user (client) program calls any of the procedures defined by this specification, the corresponding client stub procedure is linked into its binary. Ketika server mulai dieksekusi, server mengirim message ke program yang disebut ELQGHU�untuk membuat eksistensi server diketahui (H[SRUW the server interface). Process itu disebut sebagai UHJLVWHULQJ�server. Untuk register, server memberikan ke binder yaitu: nama server, version number, unique id dan sebuah KDQGOH yang digunakan untuk mengetahui lokasi (bias berupa: Ethernet address, IP address, X.500 adress, .. Ketika client memanggil salah satu remote procedure untuk pertama kali( katakanlah read), the client stub melihat bahwa�UHDG belum dikaitkan (di-bound) ke sebuah server, lalu client stub mengirim message ke binder meminta� LPSRUW�version number dan nama. Binder akan mengecek jika salah satu atau lebih server telah export sebuah interface dengan nama dan version number tsb. Jika tak ada yang mendukung, pemanggilan UHDG�akan gagal. Jika server yang sesuai ada, binder memberikan handle-nya dan unique id ke client stub. Client stub menggunakan handle sebagai alamat untuk message request. �������

Page 30: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

26 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�9,��

'LVWULEXWHG�2SHUDWLQJ�6\VWHPV����������

����3HQGDKXOXDQ� Operating System (OS) adalah software (yaitu system program) yang menjalankan computer. Contoh OS: DOS, OS/2, UNIX, System 7. Tugas operating system:

• berurusan dengan hardware komputer; • menyediakan lingkungan/environment dan interface ke user; • mengeksekusi user commands atau program instructions; • mengontrol/mengatur input dan output, memory, file dan directory.

'LVWULEXWHG� RSHUDWLQJ� V\VWHP : kumpulan dari komponen software yang menyederhanakan tugas/task pemrograman dan mendukung aplikasi yang sangat luas. Distributed operating system bersifat modular dan extensible. Modularity didasarkan pada dukungan adanya komunikasi antara modul. Distributed operating system bertindak sebagai sebuah infrastruktur /rangka dasar untuk QHWZRUN�WUDQVSDUHQW� UHVRXUFH� PDQDJHPHQW� Infrastruktur mengatur low-level resources (seperti Processor, memory, network interface dan peripheral device yang lain) untuk menyediakan sebuah platform untuk pembentukan/penyusunan higher-level resources (seperti Spreadsheet, electronic mail messages, windows). ����.HUQHO�Kernel adalah bagian utama dari operating system. Kernel menyediakan WKH�PRVW� HVVHQWLDO dan EDVLF�V\VWHP�VHUYLFHV seperti process, memory management, set processor register. Kernel dapat men-set up DGGUHVV�VSDFHV untuk melindungi processes dari akses yang tak berhak. � Ada dua pendekatan dalam perancangan kernel: pendekatan PRQROLWKLF� dan pendekatan PLFURNHUQHO. Kernel disebut PRQROLWKLF bila ia melakukan semua fungsi dasar operating system, FRGH dan datanya berjumlah besar. Code-nya XQGLIIHUHQWLDWHG yaitu code-nya non-modular. Monolithic kernel dapat berisi beberapa server process.

Page 31: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

27 Distributed System and Inter-Operability

__________________________________________________________________________________________ Mikrokernel hanya menyediakan WKH� PRVW� EDVLF� DEVWUDFWLRQ� antara lain: � SULQFLSDOO\�SURFHVVHV�� PHPRU\� GDQ� LQWHU�SURFHVV� FRPPXQLFDWLRQ��Mikrokernel tampak sebagai sebuah layer antara hardware layer dan layer yang terdiri PDMRU�V\VWHP�FRPSRQHQW disebut VXEV\VWHP��� Komponen utama mikrokernel: * Process manager * Thread manager * Communication manager * Memory manager * Supervisor

. *DPEDU�����$UVLWHNWXU�0LFURNHUQHO�

6.3 Processes dan Threads Sebuah SURFHVV terdiri dari sebuah H[HFXWLRQ� HQYLURQPHQW� bersama-sama dengan satu atau lebih WKUHDG. Sebuah�WKUHDG adalah RSHUDWLQJ�V\VWHP�DEVWUDFWLRQ dari sebuah activity. Sebuah H[HFXWLRQ� HQYLURQPHQW adalah unit dari UHVRXUFH�PDQDJHPHQW : D� FROOHFWLRQ� RI� ORFDO� NHUQHO�PDQDJHG�UHVRXUFHV�WR�ZKLFK�LWV�WKUHDGV�KDYH�DFFHVV�� Execution environment terutama terdiri dari: * sebuah address space * thread synchronization and communication resources Dalam arsitektur microkernel, KLJKHU�OHYHO� UHVRXUFHV seperti RSHQ� ILOH dan ZLQGRZ tidak tampak sebagai kumpulan resources dari H[HFXWLRQ� HQYLURQPHQW. +LJKHU�OHYHO� UHVRXUFHV diimplementasikan oleh server dan aksesnya melalui VHUYHU�SRUW. Thread dapat dibuat dan ditutup secara dinamik jika dibutuhkan. Di dalam distributed system, adalah dimungkinkan memiliki banyak thread di dalam sebuah process. Setiap process memiliki: SURJUDP� FRXQWHU�� VWDFN�� UHJLVWHU� VHW�� DGGUHVV� VSDFH�� JOREDO�YDULDEOHV. Setiap process satu sama lain di dalam komputer bisa saling berinteraksi melalui LQWHUSURFHVV�FRPPXQLFDWLRQ�SULPLWLYH, seperti message.

Page 32: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

28 Distributed System and Inter-Operability

__________________________________________________________________________________________ Pembentukan SURFHVV pada distributed operating system harus mempertimbangkan dua hal: XWLOL]DWLRQ� RI� PXOWLSOH� FRPSXWHU dan pembagian infrastruktur pendukung process kedalam system service yang terpisah. Thread dalam banyak hal seperti OLWWOH�PLQL�SURFHVV atau disebut OLJKWZHLJKW�SURFHVV. Setiap thread bekerja/run berdasarkan urutan yang ketat. Setiap thread memiliki SURJUDP� FRXQWHU dan VWDFN untuk menandai posisi kondisi yang berlangsung. Thread dapat membentuk anak thread dan dapat ter-blocked. Semua thread di dalam sebuah SURFHVV memiliki address space yang sama, hal ini berarti tak ada perlindungan diantara thread. Organisasi beberapa (misalkan tiga SURFHVV) SURFHVV dengan satu thread di dalam tiap process-nya dalam sebuah komputer digunakan bila beberapa process tersebut tidak saling tergantung/unrelated. Sedangkan organisasi (misalkan satu) process yang didalam process memiliki beberapa thread, digunakan bila thread tersebut merupakan bagian job yang sama dan secara aktif dan bekerjasama satu sama lain. Thread bisa pada kondisi salah satu dari beberapa state:

• UXQQLQJ : thread dalam kondisi aktif • EORFNHG�: tak aktif dan menunggu thread lainnya untuk membukanya • UHDG\� : di-schedule/di-rencanakan untuk aktif dan akan segera aktif bila

gilirannya (bekerja) dating • WHUPLQDWHG : thread telah keluar/selesai dari job-nya.

3 macam organisasi thread dalam sebuah process:

• 'LVSDWFKHU�ZRUNHU�PRGHO: dispatcher thread membaca permintaan yang dating. Setelah mengujinya lalu memilih sebuah idle worker thread dan meminta menangani permintaan tersebut.

• 7HDP� PRGHO : semua thread sama levelnya dan masing-masing mengolah permintaan yang dituju kepadanya. Tak ada dispatcher thread.

• 3LSHOLQH� PRGHO : thread pertama membangkitkan beberapa data dan meneruskan data tersebut ke thread selanjutnya untuk diolah.

Page 33: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

29 Distributed System and Inter-Operability

__________________________________________________________________________________________

Gambar atas : 3 process dengan setiap process terdiri dari sebuah thread. (b) Satu process dengan 3 threads.

Gambar bawah : (a) Model Dispatcher/Worker. (b) Model Team. (c) Model Pipeline. �

*DPEDU�����2UJDQLVDVL�7KUHDG�'DODP�6HEXDK�3URFHVV Thread programming merupakan FRQFXUUHQW� SURJUDPPLQJ. Didalam implementasi thread, FDOO�diperlukan untuk pembentukan thread, penghapusan dan sinkronisasi. 7KUHDG�VFKHGXOLQJ : SUHHPSWLYH�VFKHGXOLQJ dan QRQ�SUHHPSWLYH�VFKHGXOLQJ Set (sekelompok) primitives (misalkan OLEUDU\� FDOOV) yang tersedia untuk user berkaitan dengan thread disebut WKUHDGV�SDFNDJH��Ada dua cara implementasi thread package: di user space dan di kernel. Dalam implementasi di 8VHU�6SDFH, kernel hanya memandang sebagai VLQJOH�WKUHDGHG�SURFHVV. Keuntungan implementasi ini adalah dapat diimplementasikan pada operating system yang tak mendukung PXOWL�WKUHDG. Pada implementasi ini, thread bekerja di atas UXQWLPH� V\VWHP yang berupa sekumpulan procedure yang mengatur thread-thread tersebut. Dalam implementasi thread di Kernel, tidak dibutuhkan runtime system. Pembuatan dan penghancuran thread dengan membuat NHUQHO�FDOO� �

Page 34: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

30 Distributed System and Inter-Operability

__________________________________________________________________________________________

�(a) A user-level threads package. (b) A threads packaged managed.

�*DPEDU�����,PSOHPHQWDVL�7KUHDGV�3DFNDJH��

Perbandingan process dan thread: * pembentukan thread baru dalam eksisting process lebih “murah” daripada pembuatan process; * switching ke thread berbeda di dalam process yang sama adalah lebih murah dibandingkan switching ke thread milik process yang berbeda; * thread di dalam sebuah process bisa share data dan resources lainnya dengan efisien dan mudah dibandingkan ke process terpisah; * thread didalam sebuah process tidak dilindungi dari lainnya. ����1DPLQJ�DQG�3URWHFWLRQ� Misalkan WH[WXDO�QDPH: “/project/status” digunakan oleh manusia/human untuk mengacu ke sebuah file dan resource lainnya. Nama tersebut di-resolved ke ORZHU�OHYHO� LGHQWLILHU yang dikenal oleh service yang mengatur resource. Umumnya sebuah service mengatur beberapa resource, tiap resource tersebut dapat diakses secara mandiri oleh client. Untuk mencapai hal tersebut, service menyediakan sebuah identifier untuk setiap resource. Permintaan client di arahkan ke FRPPXQLFDWLRQ� VHUYLFH. Permintaan / request client berisi VHUYLFH�VSHFLILF�LG� yang kemudian request tersebut dikirim menggunakan FRPPXQLFDWLRQ�LG. &RPPXQLFDWLRQ� VHUYLFH diimplementasikan oleh kernel yang bertanggung jawab untuk “looking up” FRUUHVSRQGLQJ� SK\VLFDO� VHUYHU� DGGUHVV dan menentukan message route-nya. Server yang menerima message “memandang” VHUYLFH�VSHFLILF�LGHQWLILHU. Reconfigurability is the capacity of a distributed system to accommodate evolution and short-term changes in run-time conditions such as computer or network load, or failure, without disruption.

Page 35: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

31 Distributed System and Inter-Operability

__________________________________________________________________________________________ Tujuan utama skema proteksi adalah menjamin bahwa setiap process hanya dapat mengakses resources yang process tersebut. telah mempunyai ijin aksesnya. �3URWHFWLRQ�GRPDLQ adalah sebuah� SURWHFWLRQ� HQYLURQPHQW� VKDUHG oleh sekelompok process: yaitu sekelompok pasangan <resource, right>. ����5HDO�7LPH�'LVWULEXWHG�6\VWHPV�Real-time program (and system): interact with the external world in a way that involves time. When a stimulus appears, the system must respond to it in a certain way and before a certain deadline. Jenis stimulus:

• Periodic :terjadi secara regular/teratur setiap T second misalnya; • Aperiodic : berulang tetapi tak teratur/not regular • Sporadic : tak diharapkan

Jenis real time system: * Soft real-time system: kehilangan deadline kadang-kadang tetap tidak masalah; * Hard real time system: tidak diperbolehkan kehilangan deadline satupun.

*DPEDU�����&RQWRK�'LVWULEXWHG�5HDO�7LPH�&RPSXWHU�6\VWHP� Mitos realtime system: a) Real-time systems are about writing device drivers in assembly code Saat ini system real time terlalu kompleks jika diimplementasikan dengan assembly language. b) Real-time computing is fast computing Tidak harus. Tetapi kadang yang diperlukan adalah akurasi. c) Fast computers will make real-time system obsolete ? Tidak Design Issues : a. Clock Synchronization b. Event-Triggered versus Time-Triggered Systems

Page 36: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

32 Distributed System and Inter-Operability

__________________________________________________________________________________________ Even-Triggered system adalah interrupt driven. Problem utama system ini adalah system dapat gagal pada kondisi beban yang berat/heavy load. Pada time-triggered real-time system, clock interup terjadi setiap T ms misalnya. Time-triggered real-time system hanya sesuai lingkungan yang relative static dan system behaviour diketahui sebelumnya. c. Predictability Salah satu sifat penting dari setiap real time system adalah behaviour-nya dapat diprediksi sebelumnya d. Fault Tolerance e. Language support.

��

Page 37: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

33 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�9,,��

'LVWULEXWHG�)LOH�6\VWHPV���������

����3HQGDKXOXDQ� File: adalah sebuah abstraksi dari SHUPDQHQW�VWRUDJH. Dalam kebanyakan sistem, sebuah file didefinisikan sebagai sebuah deretan/sequence dari VLPLODU�VL]HG� GDWD� LWHP� Sistem File bertanggung jawab untuk: RUJDQL]DWLRQ�� VWRUDJH�� UHWULHYDO�� QDPLQJ�� VKDULQJ dan SURWHFWLRQ�ILOH� 'LUHFWRU\: untuk menjaga WUDFN�RI� ILOH. Directory umumnya berisi sejumlah entry yang tiap entrynya berisi sebuah file. )LOH� 6HUYLFH: spesifikasi dari apa yang system file tawarkan kepada client. Spesifikasi menguraikan primitive yang tersedia, parameter dan action yang dilakukan. Terhadap client, file service mendifinisikan secara teliti service apa yang dapat ditawarkan, tetapi tak mengatakan apapun bagaimana mengimplementasikannya. Hal ini berkaitan dengan ILOH�V\VWHP�LQWHUIDFH� )LOH� 6HUYHU: sebuah process yang berjalan/run pada beberapa mesin dan membantu mengimplementasikan file service. Persyaratan 'LVWULEXWHG�ILOH�VHUYLFH��

• Access transparency • Location transparency • Concurrency transparency • Failure transparency • Performance transparency • Hardware and operating system heterogeneity • Scalability • Replication transparency • Migration transparency • Support for fine-grained distribution of data • Tolerance to network partitioning and detached operation

������)LOH�6HUYLFH�&RPSRQHQWV�

Page 38: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

34 Distributed System and Inter-Operability

__________________________________________________________________________________________ )LOH�VHUYLFH�FRPSRQHQW terdiri dari: IODW�ILOH�VHUYLFH��GLUHFWRU\�VHUYLFH��FOLHQW�PRGXOH��)ODW�ILOH�VHUYLFH� dan GLUHFWRU\� VHUYLFH masing-masing meng-eksport interface untuk digunakan program client. Interface RPC dari IODW� ILOH� VHUYLFH dan GLUHFWRU\� VHUYLFH� bersama-sama menyediakan FRPSUHKHQVLYH� VHW� RI� RSHUDWLRQ untuk mengakses file. &OLHQW� PRGXOH mengintegrasikan IODW� ILOH�VHUYLFH�dan GLUHFWRU\�VHUYLFH agar tersedia programming interface tunggal untuk pengoperasian file. )ODW� ILOH� VHUYLFH�� concern pada implementasi operasi pada isi file. UFIDs (Unique File Identifiers) digunakan untuk mengidentifikasikan file dalam semua permintaan yang terkait operasi flat file service. Ketika flat file service menerima request untuk membuat file, ia membangkitkan UFID baru untuk file tersebut dan mengembalikan UFID ke peminta. 'LUHFWRU\�6HUYLFH� menyediakan pemetaan antara WH[W�QDPH�untuk file dan UFIDs. Ketika file dibuat, client module harus merekam UFID dari file dalam diretory bersama-sama dengan text name. Directory service menyediakan fungsi yang dibutuhkan untuk membangkitkan dan meng-update directory dan mendapatkan UFID dari directory. &OLHQW�PRGXOH��run di setiap client computer, mengintegrasikan dan perluasan dari operasi flat file service dan directory service dibawah single application programming interface yang tersedia untuk user-level program di dalam client computer. Client module menyembunyikan low-level constructs (seperti UFID) dari XVHU�OHYHO�SURJUDP.

*DPEDU�����.RPSRQHQ�)LOH�6HUYLFH �����,QWHUIDFH��Deskripsinya : : 3URFHGXUH1DPH�DUJXPHQW��� DUJXPHQW��� «�� �Æ� �UHVXOW��� UHVXOW��«��5(32576�HUURU��HUURU���'HVFULSWLRQ���

Page 39: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

35 Distributed System and Inter-Operability

__________________________________________________________________________________________ Flat File Service: Contoh: 5HDG�)LOH��L�Q�Æ�'DWD��±�5(32576�%DG3RVLWLRQ��,I����L���/HQJWK�)LOH���5HDGV�D�VHTXHQFH�RI�XS�WR�Q�LWHPV�LQ�)LOH�VWDUWLQJ�DW�LWHP�L�DQG�UHWXUQV�LW�LQ�'DWD��,I�L�!�/HQJWK�)LOH���5HWXUQV�WKH�HPSW\�VHTXHQFH��UHSRUW�DQ�HUURU��������)LOH: adalah UFID dari file��'DWD��sequence of data items. i, n, l : integer Contoh diatas adalah interface RPC yang digunakan oleh modul client. Directory Service: Contoh: ------- /RRNXS�'LU��1DPH��$FFHVV0RGH��8VHU,'����!�)LOH��5(32576�1RW)RXQG��1R$FFHVV��/RFDWHV�WKH�WH[W�QDPH�LQ�WKH�GLUHFWRU\�DQG�UHWXUQV�WKH�UHOHYDQW�8),'��UHSRUWV�DQ�HUURU�LI� LW�FDQQRW�EH�IRXQG�RU�LI�WKH�FOLHQW�PDNLQJ�WKH�UHTXHVW�LV�QRW�DXWKRUL]HG�WR�DFFHVV�WKH�ILOH�LQ�WKH�PDQQHU�VSHFLILHG�E\�$FFHVV0RGH��'LU�: UFID dari directory 1DPH��text name $FFHVV0RGH��operasi file service yang mana UFID di perlukan. XVHU,'��an identifier enabling the directory service to identify a client 1RW)RXQG���HUURU��QDPH�DEVHQW�IURP�GLUHWRU\� 1R$FFHVV��HUURU��FDOOHU�GRHV�QRW�KDYH�DFFHVV�SHUPLVVLRQ� ����'LVWULEXWHG�)LOH�6\VWHP�'HVLJQ��Distributed file system umumnya mempunyai dua komponen: WUXH�ILOH�VHUYLFH dan GLUHFWRU\�VHUYLFH�� 7UXH� ILOH� VHUYLFH berkaitan dengan operasi pada individual file seperti: pembacaan, penulisan, penambahan.� 'LUHFWRU\� VHUYLFH berkaitan dengan: pembentukan dan pengaturan directory seperti: penambahan dan penghapusan file dari directory.� )LOH�6HUYLFH�,QWHUIDFH�Struktur file dapat berupa: VHTXHQFH�RI� E\WHV�� VHTXHQFH�RI� UHFRUGV� File memiliki DWWULEXWHV�yang merupakan sepotong informasi tentang file tetapi tak merupakan bagian file itu sendiri. Attribute tersebut biasanya adalah: RZQHU��VL]H��FUHDWLRQ�GDWH��DFFHVV�SHUPLVVLRQ� File service biasanya menyediakan primitive untuk membaca dan menulis beberapa attributes. Proteksi dalam distributed system biasanya menggunakan teknik: FDSDELOLWLHV dan DFFHVV�FRQWURO� OLVW��Dengan capabilities, setiap user mempunyai sebuah ticket “ capability” untuk setiap object yang diakses. Capability menspesifikasikan bentuk ijin akses misalnya reading diijinkan tetapi writing dilarang.�Access control list berkaitan dengan daftar pemakai/user yang akan mengakses file dan bagaimana caranya. �

Page 40: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

36 Distributed System and Inter-Operability

__________________________________________________________________________________________ File service dapat diuraikan dalam dua jenis: XSORDG�GRZQORDG� PRGHO dan UHPRWH� DFFHVV�PRGHO��8SORDG�'RZQORDG�PRGHO :file service hanya menyediakan dua operasi utama: UHDG�ILOH�dan ZULWH� ILOH. Di model ini file dipindahkan/moving secara keseluruhan pada satu arah tertentu. Model ini, efisiensinya yangat tinggi, tapi perlu cukup storage di client untuk menyimpan seluruh file yang diperlukan. File system bekerja/runs di client.�5HPRWH� DFFHVV�PRGHO: file service menyediakan sejumlah besar operasi seperti: pembukaan dan penutupan file, pembacaan dan penulisan file, pengujian file attribute, dan sebagainya.�

(a) Upload/download model. (b) Remote access model.

*DPEDU������-HQLV�)LOH�6HUYLFH File dapat memiliki V\PEROLF� QDPH (seperti SURJ�F) yang digunakan oleh orang, tetapi juga memiliki internal name yaitu ELQDU\�QDPH, yang digunakan oleh sistem itu sendiri. �'LUHFWRU\�6HUYHU�,QWHUIDFH�Directory service mendifinisikan beberapa DOSKDEHW�dan V\QWD[�untuk pembentukan file (dan directory) name. Beberapa sistem membagi file name dalam dua bagian. Bagian kedua, file extension, menyatakan jenis file. Semua distributed system memperbolehkan directory berisi subdirectory, sehingga user dapat mengelompokkan bersama-sama file yang berkaitan. Directory bisa berupa: tree atau graph.

Page 41: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

37 Distributed System and Inter-Operability

__________________________________________________________________________________________

(a) A directory tree contained on one machine. (b) A directory graph on two machines.

�*DPEDU������'LUHFWRU\

���������������

Page 42: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

38 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�9,,,��

7LPH�GDQ�&RRUGLQDWLRQ����������

����3HQGDKXOXDQ�Sinkronisasi didalam distributed system lebih rumit daripada sistem terpusat. Sinkronisasi didalam Distributed system menggunakan distributed algorithm. Pada umumnya distributed algorithm memiliki sifat:

• Informasi yang relevan tersebar diantara beberapa mesin/computer yang autonom • Process membuat keputusan berdasarkan hanya pada informasi local • 6LQJOH�SRLQW�RI�IDLOXUH�di dalam sistem sangat dihindari • Tak ada clock bersama ( FRPPRQ�FORFN�) atau sumber SUHFLVH�JOREDO�WLPH

�����6LQNURQLVDVL�3K\VLFDO�&ORFN�Physical clock sangat dibutuhkan untuk beberapa sistem misalkan real time system. Sumber clock phisik mengalami apa yang disebut dengan FORFN�GULIW�yaitu perhitungan waktunya pada laju yang berbeda. Clock drift disebabkan antara lain frekuensi clock yang berubah dengan berubahnya temperature.

*DPEDU�����'ULIW�$QWDUD�&ORFN�.RPSXWHU�3DGD�'LVWULEXWH�6\VWHP Dibutuhkan clock phisik yang sangat akurat yang digunakan sebagai referensi clock. Saat ini yang banyak digunakan sebagai international standard clock adalah 8QLYHUVDO� 7LPH�&RRUGLQDWHG��87&���Clock tersebut berdasarkan waktu atomic. 6LQNURQLVDVL�SDGD�'LVWULEXWHG�6\VWHP���� 0HWRGD�&ULVWLDQ

Page 43: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

39 Distributed System and Inter-Operability

__________________________________________________________________________________________ Metoda ini menggunakan sebuah time server. Time server process menyediakan waktu (time) sesuai clock-nya berdasarkan permintaan. Time server disinkronisasikan dengan UTC. Jika process P meminta “ waktu” dengan message mr dan menerima nilai “ waktu” t dari message mt dari time server, kemudian process P mensetting clock-nya sesuai dengan waktu t + Ttrans dimana Ttrans adalah waktu pengiriman yang diperlukan oleh mt . Ttrans nilainya sangat sulit diprediksi dengan tepat. Pada umumnya Ttrans = min + x; x �����1LODL�PLQLPXP�min diperoleh jika tak ada process lain yang dieksekusi dan tak ada trafik lain di jaringan. Min dapat diukur atau diestimasikan. Nilai x tidak diketahui.

*DPEDU������6LQNQURQLVDVL�&ORFN�'HQJDQ�0HQJJXQDNDQ�7LPH�6HUYHU

0HWRGD�%HUNHOH\�Didalam algoritma ini digunakan sebuah coordinator computer yang dipilih sebagai PDVWHU�� Master secara periodic akan menanyakan (poll) computer lainnya (disebut slave) jam berapa di mereka. Slave kemudian akan mengirim kembali nilai clock mereka ke master. Master kemudian mengestimasi local clock slaves dengan mengobservasi URXQG�WULS� WLPHV dan kemudian membuat rata-rata waktu (termasuk clock milik master) berdasarkan jawaban slaves yang kemudian diberitahukan ke slave kembali untuk mempercepat atau memperlambat clock mereka sampai waktu spesifik dicapai. Akurasi dari algoritma tergantung pada QRPLQDO�PD[LPXP�URXQG�WULS�WLPH antara master dan slave.

*DPEDU�����&RQWRK�0HWRGD�%HUNHOH\ 1HWZRUN�7LPH�3URWRFRO��173��

Page 44: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

40 Distributed System and Inter-Operability

__________________________________________________________________________________________ NTP mendifinisikan sebuah arsitektur untuk layanan waktu dan protocol untuk mendistribusikan informasi waktu ke jaringan yang luas yang saling berhubungan. NTP sudah diadopsi sebagai standard untuk sinkronisasi clock di jaringan Internet. Feature dari NTP:

• 7R�SURYLGH�D�VHUYLFH�HQDEOLQJ�FOLHQWV�DFURVV�WKH�,QWHUQHW�WR�EH�V\QFKURQL]HG�DFFXUDWHO\�WR�87&��

• 7R�SURYLGH�D�UHOLDEOH�VHUYLFH�WKDW�FDQ�VXUYLYH�OHQJWK\�ORVVHV�RI�FRQQHFWLYLW\��• 7R�HQDEOH�FOLHQWV�WR�UHV\QFKURQL]H�VXIILFLHQWO\�IUHTXHQWO\��• 7R�SURYLGH�SURWHFWLRQ�DJDLQVW�LQWHUIHUHQFH�ZLWK�WKH�WLPH�VHUYLFH��

�3ULPDU\� VHUYHU dihubungkan langsung ke sumber waktu yang terhubung dengan UTC. 6HFRQGDU\�VHUYHU disinkronkan langsung ke SULPDU\�VHUYHU. Server yang dihubungkan logik hirarki disebut V\QFKURQL]DWLRQ�VXEQHW�, yang levelnya disebut : VWUDWD��3ULPDU\�VHUYHU�memiliki stratum 1 (lapisan 1), 6HFRQGDU\�VHUYHU�memiliki stratum 2 dst. Clock milik server dengan stratum tinggi mempunyai akurasi yang lebih rendah dari clock milik server dengan stratum yang lebih rendah.

*DPEDU�����&RQWRK�6LQNURQLVDVL�6XEQHW�'L�'DODP�,PSOHPHQWDVL�173� NTP server melakukan sinkronisai antara satu sama lainnya dengan salah satu dari 3 metoda: multicast, procedure-call dan symmetric mode.

Multicast mode Digunakan untuk high speed LAN. Procedure-call mode Prosedurnya mirip algoritma Cristian. Mode ini cocok dimana diperlukan akurasi yang lebih tinggi. Symmetric mode

Page 45: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

41 Distributed System and Inter-Operability

__________________________________________________________________________________________ )RU�XVH�E\�WKH�PDVWHU�VHUYHUV�WKDW�VXSSO\�WLPH�LQIRUPDWLRQ�LQ�/$1V�DQG�E\�WKH�KLJKHU�OHYHOV��VWUDWD� OHELK� UHQGDK��RI� WKH� V\QFKURQL]DWLRQ�VXEQHW��ZKHUH� WKH�KLJKHVW�DFFXUDFLHV�DUH� WR�EH�DFKLHYHG�� ����/RJLFDO�7LPH�GDQ�/RJLFDO�&ORFNV��Logical clock adalah VRIWZDUH� FRXQWHU yang secara monoton nilainya naik. Disini yang dipentingkan adalah bukan semua process setuju pada waktu terjadinya event secara tepat melainkan persetujuan pada urutan pada terjadinya event-event tersebut. Untuk mensinkronisasi ORJLFDO�FORFN, telah didefinisikan relasi KDSSHQV�EHIRUH. Ungkapan aÆ b dibaca “ a” terjadi sebelum b. Hal ini berarti semua process setuju dan event bahwa event pertama a terjadi lebih dulu, dan kemudian event b terjadi. Relasi KDSSHQV�EHIRUH�dapat diamati secara langsung dalam dua situasi:

• Jika a dan b event di dalam process yang sama, dan a terjadi sebelum b, kemudian a --> b adalah benar.

• Jika a adalah event dari message yang dikirim oleh suatu process dan b adalah event dari message yang diterima oleh process yang lain, kemudian a --> b adalah benar.Message tak dapat diterima sebelum dikirim.

Jika a Æ b dan b Æ c maka a Æ c. Jika dua event x dan y terjadi dalam process yang berbeda yang tidak mempertukarkan message (juga tidak melalui pihak ketiga), maka baik x Æ y maupun y Æ x adalah tak benar. Kedua event tersebut adalah FRQFXUUHQW�� Untuk setiap event a kita dapat menandai nilai waktunya (time value) C(a) pada yang mana semua process menyetujuinya. Jika a Æ b maka C(a) < C(b). Jadi jika a dan b dua event yang terjadi dalam process yang sama dan a terjadi sebelum b , maka C(a) < C(b).Jika a dan b menyatakan pengirim dan penerima dari sebuah message, maka C(a) < C(b). Untuk semua event a dan b, C(a) ��&�E�� Clock time C selalu bertambah tidak pernah berkurang. Koreksi waktu dapat dibuat dengan penambahan nilai positif bukan pengurangan.

*DPEDU�����&RQWRK�/RJLFDO�&ORFN

Page 46: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

42 Distributed System and Inter-Operability

__________________________________________________________________________________________ Asumsi yang digunakan pada Gambar 8.5 : * masing-masing process bekerja pada mesin yang berbeda, masing-masing memiliki clock-nya sendiri dan pada kecepatan konstan yang berbeda sama satu sama lainnya. * Setiap message membawa VHQGLQJ�WLPH�sesuai dengan clock pengirimnya. ����0XWXDO�([FOXVLRQ�Sistem yang melibatkan banyak process sering diprogram dengan mudah dengan menggunakan “ critical region” . Ketika sebuah process harus membaca atau meng-update shared data, ia pertama-tama memasuki sebuah “ critical region” untuk mencapai� PXWXDO�H[FOXVLRQ dan menjamin tak ada process lain yang akan menggunakan shared data pada saat yang bersama. Pada system processor tunggal, “ critical region” diproteksi menggunakan semaphore, monitor. Persyaratan dasar mutual exclusion: ME1 (safety) : Hanya satu process yang dieksekusi di “ critical region” pada suatu saat. ME2 (liveness): Permintaan dari process untuk memasuki “ critical region” pada akhirnya akan dijamin. ME3(ordering): urutan masuk ke critical region dijamin sesuai urutan KDSSHQHG�EHIRUH� Spesifikasi ini menjamin bahwa permintaan process pertama akan dijamin dilayani sebelum permintaan process yang kedua. �������&HQWUDOL]HG�$OJRULWKP� Sebagai contoh dapat dilihat pada Gambar 8.6. Dengan penjelasan sebagai berikut : Gambar (a) : Process 1 meminta coordinator untuk minta ijin untuk memasuki daerah “ critical region” . Ijin diberikan (granted). Gambar (b) : Process 2 kemudian meminta untuk memasuki “ critical region” yang sama. Koordinator tidak memberikan balasan/reply. Message permintaan process 2 lalu diantrikan pada buffer. Gambar (c) : Ketika process 1 keluar dari “ critical region” , ia lalu memberitahu koordiantor, yang kemudia coordinator memberikan jawaban “ OK” pada process 2.

*DPEDU�����&RQWRK�&HQWUDOL]HG�$OJRULWKP�

Page 47: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

43 Distributed System and Inter-Operability

__________________________________________________________________________________________ Skema ini mudah diimplementasikan dan hanya memerlukan 3 message untuk setiap penggunaan “ critical region” yaitu: request, grant/OK, release. Kelemahan skema ini adalah dimana coordinator sebagai “ single point of failure” , sehingga jika coordinator terganggu maka keseluruhan system juga terganggu. ��������'LVWULEXWHG�0XWXDO�([FOXVLRQ�Prosedur kerjanya sebagai berikut:

• Ketika sebuah process ingin memasuki sebuah critical region, process tersebut membangun sebuah message yang berisi: nama critical region yang ingin dimasuki, nomor process dan waktu saat itu.

• Process kemudian mengirim message ke semua process lainnya termasuk dirinya sendiri.

• Ketika sebuah process menerima message permintaan dari process lain, aksi yang diambil tergantung pada kondisi state-nya berkaitan dengan critical region yang disebut dalam message.

• Terdapat 3 kasus: * Jika receiver tidak dalam critical region dan tidak ingin memasukinya, ia akan mengirim kembali message OK ke sender/pengirim. * Jika receiver telah berada di critical region, ia tidak membalas message tersebut. Sebagai gantinya ia akan mengantrikan permintaan ke buffer. * Jika receiver ingin memasuki critical region tetapi belum melakukannya. Ia membandingkan “ timestamp” pada message yang datang dibandingkan dengan “ timestamp” nya di message yang telah ia kirim ke lain process. Rimestamp yang terendah yang akan “ menang” . Jika message yang dating memiliki timestamp lebih rendah dari miliknya maka ia akan mengirim balik message OK ke sender. Jika message-nya memiliki timestamp lebih rendah, receiver akan mengantrikan permintaaan pada buffer dan tak mengirimkan apa-apa. • Setelah mengirim permintaan ijin masuk critical region, process menunggu sampai

setiap process lainnya memberikan ijin. Segera setelah semua ijin diperoleh, ia lalu memasuki critical region.

• Ketika ia keluar dari critical region, ia mengirim message OK keseluruh process lainnya.

*DPEDU�����&RQWRK�'XD�3URFHVV�6HFDUD�%HUVDPDDQ�0HQFRED�0HPDVXNL�&ULWLFDO�5HJLRQ�<DQJ�6DPD

Page 48: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

44 Distributed System and Inter-Operability

__________________________________________________________________________________________

Pada algoritma ini harus digunakan primitive sebuah group communication atau setiap process harus mempertahankan keanggotaan group. Metoda ini bekerja dengan baik untuk grup kecil dari process yang tidak pernah merubah keanggotaan grupnya.

������7RNHQ�5LQJ�$OJRULWKP��

Process p1 ….pn disusun membentuk logical ring. Exclusion diperoleh dengan mendapatkan token dalam bentuk message yang dilewatkan dari process ke process dalam arah tunggal (mis. searah jarum jam) mengelilingi ring. Topology ring tak berkaitan dengan bentuk hubungan fisik yang ada. Jika process tidak ingin memasuki critical region, jika ia menerima token maka ia segera meneruskannya ke tetangganya. Process yang ingin masuk ke critical region harus menangkap token dan mempertahankannya. Untuk keluar dari critical region, process mengirim token ke tetangganya.

*DPEDU�����7RNHQ�5LQJ

�������3HUEDQGLQJDQ�$OJULWKP� 0HVVDJH� SHU�

HQWU\�H[LW�'HOD\� EHIRUH� HQWU\��LQ�PHVVDJH�WLPHV��

3UREOHPV�

Centralized 3 2 Coordinator crash Distributed 2(n-1) 2 (n-1) Crash of any process Token Ring 1 to � 0 to n-1 Lost token, process

crash ����$OJRULWPD�(OHFWLRQ�

Page 49: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

45 Distributed System and Inter-Operability

__________________________________________________________________________________________ Election adalah prosedur untuk memilih sebuah process dari group. Persyaratan utama process yang terpilih adalah unik.

$OJRULWPD�%XOO\���Contoh cara kerjanya:�

• Sekelomppok process terdiri dari 8 process dengan nomor 0 sampai 7. • Sebelumnya process 7 sebagai coordinator, tapi sekarang crashed. • Process 4 adalah yang pertama yang mengetahui hal itu, lalu ia mengirim

message ELECTION ke semua process yang mempunyai nomor lebih tinggi darinya (5, 6, 7).

• Process 5 dan 6 keduanya menjawab dengan OK. • Dengan mendapat respon OK, maka tugas process 4 selesai dan ia kemudian

menunggu siapa yang akan jadi pemenang sebagai coordinator. • Process 5 dan 6 keduanya mengirimkan ELECTION ke process dengan nomor

yang lebih tinggi. Pada kondisi ini process 6 tahu bahwa process 7 telah mati dan process 6 sebagai pemenang.

• Maka setelah siap maka process 6 mengirimkan message COORDINATOR ke semua process yang masih aktif.

• Setelah Process 4 menerima message COORDINATOR tersebut maka ia akan meneruskan pekerjaannya semula.

*DPEDU�����&RQWRK�$OJRULWPD�%XOO\ $OJRULWPD�5LQJ�

• Diasumsikan process-process secara fisik atau logik terurut sehingga setiap process tahu siapa successor-nya.

• Ketika sebuah process mengetahui coordinator tidak berfungsi, maka ia akan membangun sebuah message ELECTION yang berisi nomor processnya sendiri dan mengirimkan message tersebut ke succesornya.

Page 50: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

46 Distributed System and Inter-Operability

__________________________________________________________________________________________

• Jika successornya failed maka message akan melewatinya ke successor berikutnya sampai ditemukan process yang bekerja.

• Pada setiap langkah, pengirim akan menambahkan nomor processnya kedalam message.

• Akhirnya message kembali ke pengirim semula. Kemudian message diubah menjadi COORDINATOR message dan berkeliling kemabali dalam ring untuk menginformasikan ke semua process siapa yang akan menjadi coordinator (anggota process dengan nomor tertinggi) dan siapa anggota terbaru dari ring.

��������

Page 51: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

47 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�,;��

1DPH�6HUYLFHV���������

����3HQGDKXOXDQ� +XPDQ�UHDGDEOH� WH[WXDO� QDPH: digunakan untuk mengenal dan merekam nama (mudah diingat) yang merujuk ke resources. 6\VWHP� ,GHQWLILHU : dipilih untuk efisiensi yang dapat dipecahkan/diuraikan kembali dan disimpan oleh software dan berupa IL[HG�OHQJWK�ELW�VWULQJ. 7H[WXDO�QDPH�dan 6\VWHP�,GHQWLILHU secara bersama-sama disebut sebagai�QDPH. Beberapa tipe QDPH:

• Physical network address and logical internetwork address • Port, process and group identifier • Textual, human-readable service name • Resource identifiers • File

*DPEDU�����&RQWRK�1DPH�'LJXQDNDQ�8QWXN�0HQJDNVHV�6HEXDK�5HVRXUFH� Entitas dalam distributed system seperti user, computer dan service dikaitkan dengan attribute-nya. Sebagai attribute biasanya adalah address. Jadi, misalkan: user dengan name: proper name, login name, user identifier, electronic mail address. Computer dengan name: host name

Page 52: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

48 Distributed System and Inter-Operability

__________________________________________________________________________________________ Service dengan name: file service, printer service. Contoh attributenya: untuk service dan computer mempunyai physical address, user mempunyai electronic mail address dst. Attribute mempunyai DWWULEXWH�YDOXH yaitu SULPLWLYH�YDOXH seperti integer atau name mereka sendiri seperti Internet address 230.132.123.112. 3ULPLWLYH� QDPH adalah name yang tak dapat diuraikan (ORRNHG� XS) lebih jauh. Contohnya Ethernet address. 1DPH�VHUYLFH menyimpan data base dari ikatan (binding) antara sekelompok WH[WXDO�QDPH dan attribute untuk object seperti user dan computer. Operasi utama QDPH� VHUYLFH mendukung “ penguraian” (UHVROYH) name yaitu “ melihat” (look up) attribute dalam GDWDEDVH dari QDPH yang diberikan. Operasi yang lain misalkan pembuatan ikatan baru dengan name baru, penghapusan ikatan (binding). Persyaratan umum QDPH�VHUYLFH:

• 7R�KDQGOH�DQ�HVVHQWLDOO\�DUELWUDU\�QXPEHU�RI�QDPHV�DQG�WR�VHUYH�DQ�DUELWUDU\�QXPEHU�RI�DGPLQLVWUDWLYH�RUJDQL]DWLRQV�

• $�ORQJ�OLIHWLPH • +LJK�DYDLODELOLW\ • )DXOW�LVRODWLRQ • 7ROHUDQFH�RI�PLVWUXVW

�����6LPSOH�1DPH�6HUYLFH��616��SNS diperuntukkan untuk sebuah organisasi tunggal. 616�QDPHV��1DPH�VSDFH adalah koleksi dari semua YDOLG�QDPH yang dikenal oleh QDPH�VHUYLFH��616� QDPH terdiri dari pembatas “ .” Diikuti sederetan satu atau lebih QDPH� FRPSRQHQW��Contoh : �JHQH, �FV�JHQH, �FV�GLVWULE�JHQH Æ adalah valid name yang berbeda. 3UHIL[�dari QDPH�adalah bagian awal dari name yang hanya terdiri dari zero atau lebih dari keseluruhan component dan tidak diakhiri pembatas “ �” . Contoh SNS name : �FV�GLVWULE�JHQH Æ prefixnya adalah �FV dan �FV�GLVWULE SNS name merupakan SXUH�QDPH yaitu name-nya tak tergantung konfigurasi fisik. Jadi user, service, dan computer dapat berpindah lokasi tetapi dengan tetap mempertahankan name-nya. SNS name space dibagi secara organisasi (RUJDQL]DWLRQDOO\� SDUWLWLRQHG), yaitu name dibagi menurut KLJK�OHYHO� GLUHFWRULHV yang berkaitan dengan entitas administrasi yang berbeda didalam suatu organisasi. Contoh �FV�JHQH berkaitan dengan departemen Computer Science dan �SK\V�JHQH berkaitan dengan departemen fisika dalam suatu universitas. 1DPLQJ�GRPDLQ adalah QDPH�VSDFH untuk mana terdapat sebuah otoritas administratif tunggal untuk penetapan QDPH didalam domain tersebut.

Page 53: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

49 Distributed System and Inter-Operability

__________________________________________________________________________________________ 616�GDWD�DQG�RSHUDWLRQ� Client dari SNS menyimpan atribut dari name dalam bentuk �7\SH��9DOXH!� Dimana 7\SH menyatakan tipe dari object seperti: user, Service, Computer. �7DEHO�����$WULEXW�<DQJ�'LVLPSDQ�'DODP�616�7\SH� 9DOXH�User <login name, computer where mail is to be delivered, telephone

number, etc.> Service <address, version of service> Computer <architecture, operating system, network address, owner> Group <name1, name2,…> Alias <name> Directory <nameComponent1, nameComponent2,…> Operasi name service di SNS ========= %LQG�DFFHVVHG�3HUPLVVLRQV�� QDPH�7H[W�� DWWU�$WWULEXWHV�� Æ� ^6XFFHVV�� 1RW$OORZHG��$OUHDG\%RXQG��1R'LUHFWRU\`�Create a binding /RRNXS�QDPH��7H[W��W\SH�,QW��DWWU�$WWULEXWHV��Æ�^6XFFHVV��1RW)RXQG`�Looks up a name and returns attributes if name is bound. 8QELQG�DFFHVVH,G�� 3HUPLVVLRQV�� QDPH�7H[W�� Æ� ^6XFFHVV�� 1RW)RXQG�� 1RW$OORZHG��'LUHFWRU\1RW(PSW\`�Deletes a binding. ============= * 1DPH�UHVROXWLRQ : “ pencocokan” (ORRNLQJ�XS) name dengan atribut yang terkait. 1DPH�VHUYHUV�DQG�QDYLJDWLRQ�SNS menyimpan bagian yang berbeda dari data base name-nya pada beberapa server.

Page 54: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

50 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�����&RQWRK�3DUWLVL�1DPH�6SDFH�'LDQWDUD�1DPH�6HUYHU�3DGD�616� Proses lokalisasi/penemuan lokasi name untuk penguraian name dari beberapa server disebut QDYLJDWLRQ��Untuk kasus SNS , setiap komputer dalam sebuah organisasi menjalankan sebuah process yang disebut XVHU�DJHQW (UA) yang akan melakukan navigasi atas nama client pada computer tersebut. UA akan menguji validitas name dan berkomunikasi dengan name server bila perlu untuk penguraian name. Name server akan mengembalikan server name ke UA.� Contoh: Sebuah UA memiliki DGGUHVV� FDFKH untuk name �FV dan diminta untuk “ memecahkan” (resolve) name �FV�GLVWULE�JHQH. UA tersebut pertama-tama akan meminta UHVROXWLRQ� pada QDPH�VHUYHU �FV6HUYHU yang kemudian akan mengembalikan ke UA tersebut name��GO6HUYHU�yang menyimpan item dibawah name �FV�GLVWULE. Setelah „looking up“ entry untuk server tersebut untuk mendapatkan address (dari .cs.distrib.gene), kemudia UA akan mengirimkan name �FV�GLVWULE�JHQH ke �GO6HUYHU dan operasi UHVROXWLRQ berakhir.

Page 55: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

51 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;��

5HSOLFDWLRQ��������

�����3HQGDKXOXDQ�Replication (replikasi) : pemeliharaan RQ�OLQH�FRS\�dari data dan sumber-sumber (resources) lainnya. Motivasi/tujuan replikasi :

• 3HUIRUPDQFH�HQKDQFHPHQW � Replication dapat diterapkan sama-sama pada tingkatan server untuk meningkatkan layanan response time. Lebih disukai mendistribusikan data ke beberapa server, dan mengaturnya sehingga masing-masing server mampu melayani data untuk komunitas yang lebih kecil dan terdekat dengannya. • (QKDQFHG�DYDLOLELOLW\ • )DXOW�WROHUDQFH

Persyaratan replikasi:

• 5HSOLFDWLRQ�WUDQVSDUHQF\�: client tidak menyadari adanya banyak physical copy data. Data diorganisasikan sebagai individual ORJLFDO�GDWD�LWHP dan name-nya hanya satu.

• &RQVLVWHQF\ : tidak diinginkan dimana client yang berbeda akan mendapatkan hasil yang berbeda walaupun client-client tersebut melakukan permintaan yang sama pada logical data item yang sama.

������%DVLF�$UFKLWHFWXUH�0RGHO�Model Basic architecture ditunjukkan pada Gambar 10.1 dibawah ini.

*DPEDU������0RGHO�%DVLF�$UFKLWHFWXUH�8QWXN�3HQJDWXUDQ�'DWD�\DQJ�7HU�UHSOLNDVL

Page 56: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

52 Distributed System and Inter-Operability

__________________________________________________________________________________________

• Replica manager : process yang berisi replika (tiruan) data dan melakukan operasi yang langsung dituju kepadanya. Client process dapat juga bertindak sebagai replica manager. Umumnya setiap replica manager mempertahankan sebuah physical copy dari setiap logical data item.

• Client membuat deretan permintaan (series of requests). Setiap permintaan melibatkan kombinasi pembacaan (UHDG) dan updating logical data item. Permintaan yang tak melibatkan updating disebut UHDG�RQO\� UHTXHVW� . Permintaan yang meng-update sekurang-kurangnya sebuah data item disebut XSGDWH�UHTXHVW��

• Setiap permintaan dari client ditangani pertama kali oleh sebuah )URQW� (QG� �)(�� Front end berkomunikasi dengan satu atau lebih replica manager dengan cara PHVVDJH�SDVVLQJ. Dengan adanya FE maka transparansi replikasi dapat dicapai. FE dapat diimplementasikan pada setiap client atau pada process yang terpisah.

Gossip architecture

• Arsitektur ini digunakan untuk layanan yang sangat mensyaratkan ketersediaan data. • Pada arsitektur ini, replica manager mempertukarkan message „gossip“ secara

periodik untuk proses updating berdasarkan informasi yang mereka terima. • Normalnya Front End berkomunikasi dengan sebuah individual replica manager untuk

setiap operasi. Tetapi dapat juga FE langsung berkomunikasi dengan lebih dari satu replica manager per operasi.

*DPEDU������$UVLWHNWXU�*RVVLS Primary copy model

• Arsitektur ini untuk meningkatkan ketersediaan data. • Semua FE berkomunikasi dengan SULPDU\� VHUYHU yang sama ketika updating data.

Primary server mengirimkan data terbaru ke server lain yang disebut slave server. • FE bisa juga membaca data terbaru dari slave. • Jika primary server gagal/ada masalah, maka salah satu slave dapat dipromosikan

sebagai primary.

Page 57: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

53 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU������3ULPDU\�&RS\�0RGHO

�����5HSOLNDVL�3DGD�'LVWULEXWHG�)LOH�6\VWHPV�Ada 3 cara replikasi : ([SOLFLW� ILOH�UHSOLFDWLRQ��/D]\�ILOH�UHSOLFDWLRQ��)LOH�UHSOLFDWLRQ�XVLQJ�D�JURXS�� ([SOLFLW�ILOH�UHSOLFDWLRQ

Ketika process membuat sebuah file, maka file tersebut dibuat pada sebuah server. Dan kemudian dapat dibuat tambahan copy pada server lainnya bila diinginkan. Operasi tersebut diketahui oleh programmer/user. Network address dari semua copy tersebut dapat diasosiasikan dengan nama file, sehingga ketika nama file di-look up maka semua copy dapat ditemukan. /D]\�ILOH�UHSOLFDWLRQ Pada pendekatan ini, hanya satu copy yang dibuat dari sebuah file. Kemudian server sendiri akan membuat copynya / replikasinya pada server lainnya secara otomatis tanpa diketahui oleh programmer/user. )LOH�UHSOLFDWLRQ�XVLQJ�D�JURXS�Pada pendekatan ini semua copy /replikasi dibuat pada saat file aslinya dibuat. File replikasi dibuat pada sekelompok server yang menjadi anggota group.

Page 58: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

54 Distributed System and Inter-Operability

__________________________________________________________________________________________

(a) Explicit file replication. (b) Lazy file replication. (c) File replication using Group

�*DPEDU������&RQWRK�5HSOLNDVL

��

������������

Page 59: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

55 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;,��

7UDQVDFWLRQV�GDQ�'HDGORFN�������

������$WRPLF�7UDQVDFWLRQV���������3HQGDKXOXDQ�Apa yang telah kita bahas pada bab Time Coordination sebelumnya pada dasarnya sinkronisasi pada ORZ� OHYHO� seperti penggunaan semaphore. Pada bab ini kita akan bahas sinkronisasi pada abstraksi KLJKHU� OHYHO yang akan menyembunyikan isu-isu teknik dan membuat programmer konsentrasi pada pembuatan algoritma dan bagaimana process bekerja bersama-sama secara parallel. Abstraksi yang banyak digunakan adalah DWRPLF� WUDQVDFWLRQ atau WUDQVDFWLRQ atau DWRPLF�DFWLRQ.

�������7UDQVDFWLRQ�0RGHO�Diasumsikan:

• Sistem terdiri dari sejumlah process yang mandiri, yang dapat gagal secara acak. • Komunikasi umumnya tak reliable yaitu message dapat hilang, tetapi ORZHU�OHYHO�OD\HU

dapat mengatasinya dengan menggunakan prosedur WLPHRXW dan protokol retransmisi. Jadi dalam model ini error komunikasi diatasi secara transparan oleh ORZHU� OHYHO�VRIWZDUH��

�Ada 3 kategori storage : * Ordinary RAM memory : dimana isinya akan hilang jika tidak ada power atau crash * Disk storage : isinya akan tetap ada meskipun CPU gagal, tetapi isi akan hilang bila ada masalah di disk head. * Stable storage : dirancang sedemikian rupa isi/data tetap ada untuk segala kondisi kecuali kondisi seperti banjir atau gempa bumi. Storage ini sangat cocok untuk aplikasi yang memerlukan KLJK�GHJUHH�RI�IDXOW��� � � ����WROHUDQFH, seperti atomic transaction.

Page 60: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

56 Distributed System and Inter-Operability

__________________________________________________________________________________________

(a) Stable storage. (b) Crash after drive 1 is updated. (c) Bad spot

*DPEDU������6WDEOH�6WRUDJH

�7UDQVDFWLRQ�3ULPLWLYHV�Contoh:

• BEGIN_TRANSACTION : penandaan awal operasi transaction, • END_TRANSACTION : terminasi transaction • ABORT_TRANSACTION: penghentian transaction, dan mengembalikan nilai lama • READ : membaca data dari sebuah file atau object lainnya • WRITE: menulis data ke sebuah file atau object lainnya.

6LIDW�GDUL�7UDQVDFWLRQ�Sifat dasar transaction : atomic, consistent, isolated, durable. $WRPLF�Sifat ini menjamin bahwa setiap transaction terjadi secara lengkap atau tidak sama sekali. Jika terjadi secara lengkap, operasinya tidak dapat dibagi-bagi. Ketika transaction sedang berlangsung, process lainnya tak dapat melihat satupun intermediate state dari operasi transaction tersebut. &RQVLVWHQW�Transaction tidak merubah V\VWHP�LQYDULDQW�� ,VRODWHG�DWDX�VHULDOL]DEOH�Concurrent transaction tidak saling mengganggu satu sama lain. �

Page 61: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

57 Distributed System and Inter-Operability

__________________________________________________________________________________________

��

*DPEDU������&RQWRK�6HULDOL]DEOH �'XUDEOH�Sekali transaction menyatakan FRPPLW (menjamin), tak perduli apapun yang terjadi, WUDQVDFWLRQ bekerja terus dan hasil menjadi permanen. 1HVWHG�7UDQVDFWLRQ�Transaction bisa saja berisi beberapa subtransaction. Top-level transaction bisa bercabang membentuk “ anak” yang bekerja parallel satu sama lainnya, pada processor yang berbeda, untuk meningkatkan peformansi atau penyederhanaan pemrograman. �������,PSOHPHQWDVL��3ULYDWH�:RUNVSDFH�Secara prinsip pada implementasi ini, ketika process mulai sebuah transaction, process tersebut diberi sebuah SULYDWH�ZRUNVSDFH� Hanya index file yang dicopy-kan ke dalam private workspace. Index adalah blok dari data berkaitan dengan letak setiap file pada disk blocks. Ketika file block dimodifikasi, copy dari block dibuat dan alamat dari copy dimasukkan ke dalam index. Kemudian block dapat di-update tanpa mempengaruhi yang aslinya.

*DPEDU������3ULYDWH�:RUNVSDFH

Page 62: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

58 Distributed System and Inter-Operability

__________________________________________________________________________________________ :ULWHDKHDG�/RJ���,QWHQWLRQ�/LVW�Dengan metoda ini file dimodifikasi di tempat, tetapi sebelum block file diubah, sebuah record ditulis lebih dahulu ke writeahead log pada stable storage. Record tersebut berisi transaction yang membuat perubahan, file dan block yang diubah dan nilai lama dan baru. Hanya setelah log ditulis dengan sukses, maka kemudian perubahan dibuat pada file. Log record ditulis sebelum dieksekusinya statement yang berada di dalam transaction.

�*DPEDU������&RQWRK�:ULWHDKHDG�/RJ

��7ZR�3KDVH�&RPPLW�3URWRFRO�Dalam system terdistribusi, FRPPLW dari sebuah WUDQVDFWLRQ� memerlukan kerjasama dari banyak processor pada mesin yang berbeda. Pada protokol ini salah satu process sebagai coordinator dan yang lain sebagai subordinate. Jika semua process yang dipersiapkan (prepared) commit, maka transaction menjadi commit. Jika salah satu atau lebih process tidak commit maka transaction di batalkan.

��*DPEDU������7ZR�SKDVH�&RPPLW�3URWRFRO

��������&RQFXUUHQF\�&RQWURO�Suatu mekanisme diperlukan untuk menjaga agar satu transaction dengan transaction lainnya saling tidak mempengaruhi satu sama lainnya ketika beberapa transactions tertsebut dieksekusi secara simultan pada process yang berbeda pada processor yang berbeda. /RFNLQJ��3HQJXQFLDQ��

Page 63: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

59 Distributed System and Inter-Operability

__________________________________________________________________________________________ Pertama-tama process harus mengunci file sebelum process membaca (read) atau menulis (write) sebuah file sebagai bagian dari sebuah operasi transaction. Locking dapat dilakukan dengan menggunakan sebuah VLQJOH�FHQWUDOL]HG�ORFN�PDQDJHU, atau dengan sebuah ORFDO�ORFN�PDQDJHU pada setiap mesin untuk pengaturan local file., Lock manager memelihara daftar file yang terkunci dan menolak semua usaha untuk mengunci file yang sudah terkunci. Kunci (lock) normalnya diperoleh dan dilepas oleh transaction system dan tidak memerlukan aksi dari programmer. Jika read lock aktif pada sebuah file, maka read lock lainnya pada file tersebut diijinkan. Read lock digunakan untuk menjaga agar file tidak berubah. Sedang jika write lock aktif, maka write lock lainnya pada file tersebut tidak diijinkan. �2SWLPLVWLF�&RQFXUUHQF\�&RQWURO�Ide algoritma ini adalah “ terus maju dan kerjakan apa saja yang diinginkan tanpa memperhatikan apa yang dikerjakan oleh operasi yang lain. Jika ada masalah, selesaikan nanti saja” . Yang dikerjakan algoritma ini adalah menjaga track dari file yang telah dibaca dan ditulis. Pada titik FRPPLWWLQJ, algoritma menguji semua transaction yang lain untuk melihat jika ada bagian file-nya berubah sejak transaction dimulai. Jika demikian, transaction aborted. Jika tidak transaction menjadi committed.� �7LPHVWDPSV�Pada metoda ini concurrency control dilakukan dengan menandai setiap transaction dengan sebuah timestamp pada saat BEGIN_TRANSACTION. Timestamp harus dijamin unik untuk setiap transaction. Ketika process mencoba mengakses sebuah file, maka timestamp operasi read dan write dari file tersebut akan lebih rendah (lebih tua) daripada timestamp transaction yang sedang berlangsung. Jadi transaction dikerjakan sesuai dengan urutannya. Transaction dengan timestamp yang lebih rendah yang dikerjakan lebih dahulu. �����'HDGORFNV�Kondisi deadlock terjadi ketika beberapa process berebut untuk mengakses resource yang sama. Ada beberapa strategi untuk mengatasi deadlocks :

• Ostrich algorithm : abaikan masalah, anggap deadlock tidak ada. • Detection : biarkan deadlock terjadi, deteksi dan kemudian mencoba mengatasinya • Prevention : membuat secara structural deadlock tidak mungkin terjadi • Avoidance : hindari deadlock dengan mengalokasikan resource secara hati-hati.

'HDGORFN�'HWHFWLRQ�Ketika deadlock dideteksi pada konvensional operating system, cara mengatasinya adalah dengan “ membunuh” satu atau lebih process. Ketika deadlock dideteksi pada system berdasarkan atomic transaction, cara mengatasinya dengan membatalkan (aborting) satu atau lebih transaction. Salah satu metoda deadlock detection adalah Centralized Deadlock Detection.

&HQWUDOL]HG�'HDGORFN�'HWHFWLRQ�

Page 64: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

60 Distributed System and Inter-Operability

__________________________________________________________________________________________ Setiap mesin memiliki dan memelihara resource graph untuk process dan resource miliknya. Koordinator memiliki dan memelihara resource graph keseluruhan system. Ketika coordinator mendeteksi adanya siklus dalam resource graph berarti telah terjadi adanya deadlock, untuk mengatasinya coordinator “ membunuh” salah satu process. Metoda ini dapat mengakibatkan IDOVH�GHDGORFN� Contoh dapat dilihat gambar dibawah ini.

*DPEDU������&HQWUDOL]HG�'HDGORFN�'HWHFWLRQ�

Page 65: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

61 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;,,��

)DXOW�7ROHUDQFH����

��������&RPSRQHQWV�)DXOWV�Sistem dikatakan gagal (fail) apabila tidak mampu memenuhi spesifikasi tekniknya. Sistem Komputer dapat gagal karena IDXOW� beberapa komponen seperti: processor, memory, I/O device, cable atau software. Fault dapat diklasifikasikan sebagai: transient, intermittent, permanent. 7UDQVLHQW�IDXOW terjadi sekali dan kemudian menghilang. Jika operasi diulangi, fault tidak muncul. ,QWHUPLWWHQW�IDXOW terjadi kemudian menghilang, lalu muncul lagi, lalu menghilang lagi, dst. Contohnya seperti hubungan konektor yang loggar. 3HUPDQHQW� IDXOW terjadi seterusnya sampai komponen yang fault diperbaiki. Contoh chips terbakar, software bugs, disk head crash. Tujuan perancangan dan pembuatan system fault-tolerance adalah menjamin bahwa system secara keseluruhan mampu terus berfungsi secara benar meskipun fault terjadi. Jadi disini tidak mensyaratkan individual komponen yang sangat reliable. Rumus PHDQ�WLPH�WR�IDLOXUH��

������6\VWHP�)DLOXUHV�Keandalan sistem (system reliability) sangat penting di dalam sebuah sistem terdistribusi karena di dalam system tersebut terkandung sejumlah besar komponen dan kemungkinan terjadinya kegagalan sangat besar. Fault atau kesalahan suatu sistem dapat dibedakan menjadi: )DLO�VLOHQW� IDXOWV�dan %\]DQWLQH�IDXOWV�� )DLO�VLOHQW� IDXOWV� DWDX� IDLO�VWRS� IDXOWV: sistem berhenti dan tidak memberikan respon terhadap masukan yang ada. %\]DQWLQH� IDXOWV� : sistem terus bekerja meskipun IDXOW� dan memberikan hasil yang salah. Sistem yang mempunyai sifat dalam kondisi normal bekerja akan memberikan respon terhadapat input dalam waktu terbatas yang telah diketahui disebut sistem synchronous. Sistem yang tak punya sifat seperti itu disebut sistem asynchronous. Sistem asynchronous sangat sulit dikelola dibandingkan dengan synchronous.

Page 66: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

62 Distributed System and Inter-Operability

__________________________________________________________________________________________ �����3HQJJXQDDQ�5HGXQGDQF\�Pendekatan umum fault tolerance (toleransi terhadap kegagalan) adalah menggunakan redundancy. 3 jenis redundancy: LQIRUPDWLRQ� UHGXQGDQF\�� WLPH� UHGXQGDQF\� dan SK\VLFDO�UHGXQGDQF\�� ,QIRUPDWLRQ�UHGXQGDQF\��Metoda ini menambahkan extra bit untuk membuat sedemikian hingga dapat merecovery informasi yang telah rusak. Contoh Hamming code ditambahkan pada transmitted data. 7LPH�UHGXQGDQF\�Sebuah operasi dilakukan dan kemudian jika diperlukan diulangi lagi. Contoh, penggunaan atomic transaction. Jika transaction dibatalkan, proses tersebut dapat diulangi lagi tanpa menimbulkan masalah. Metoda ini sangat bermanfaat jika fault-nya adalah transient atau intermittent. 3K\VLFDO�UHGXQGDQF\�Pendekatan ini menggunakan penambahan perangkat ekstra. Sebagai contoh ekstra processor dapat ditambahkan ke system sehingga jika beberapa processor rusak maka system secara keseluruhan masih dapat berfungsi dengan benar. Ada dua cara untuk mengelola ekstra processor tersebut: DFWLYH�UHSOLFDWLRQ�dan SULPDU\�EDFNXS����������)DXOW�7ROHUDQFH�'HQJDQ�0HQJJXQDNDQ�$FWLYH�5HSOLFDWLRQ�Pada teknik ini semua processor/device digunakan sepanjang waktu dan setiap device memiliki replikasinya masing-masing sehingga dapat menyembunyikan fault dengan penuh.

*DPEDU������&RQWRK�$FWLYH�5HSOLFDWLRQ Gambar 12.1 menunjukkan sinyal melalui device A,B,C secara berurutan. Setiap device memiliki 3 replikasi. Dan setiap replikasi diikuti sebuah voter. Setiap voter memiliki 3 input dan satu output. Jika dua atau tiga input sama, maka output sama dengan input. Jika 3 input berbeda hasil output tak terdefinisi.

Page 67: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

63 Distributed System and Inter-Operability

__________________________________________________________________________________________ Misalkan element A2 gagal. Setiap voter V1, V2 dan V3 mendapatkan 2 masukan identik yang benar dan sebauh salah, tetapi Voter tetap menghasilkan output yang benar untuk masukan tahap berikutnya. Sehingga pada dasarnya efek A2 tidak berpengaruh secara keseluruhan system. �������)DXOW�7ROHUDQFH�'HQJDQ�0HQJJXQDNDQ�3ULPDU\�%DFNXS�Pada metoda ini setiap saat hanya ada satu server sebagai primary yang bekerja. Jika primary server gagal maka backup server akan mengambil alih.

�*DPEDU������&RQWRK�3ULPDU\�%DFN�XS�3DGD�2SHUDVL�:ULWH

Page 68: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

64 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;,,,��

'LVWULEXWHG�6KDUHG�0HPRU\���

���������&RQVLVWHQF\�0RGHO�Di dalam sistem Distributed Shared Memory terdapat banyak copy dari suatu file pada berbagai mesin / computer yang berbeda yang hanya dapat berkomunikasi dengan mengirimkan message melalui jaringan yang lambat (dibandingkan dengan kecepatan memori). Timbul masalah bagaimana meng-update copy dengan tetap menjaga semua copy dalam computer yang berbeda tetap konsisten. Sehingga diperlukan Consistency Model. Consistency Model pada dasarnya adalah : kontrak antara software dan memory. Jika software setuju mematuhi aturan-aturan tertentu, maka memori berjanji untuk bekerja dengan benar. Jika software melanggar aturan-aturan tersebut maka kebenaran operasi memori tidak lagi dapat dijamin. 6WULFW�&RQVLVWHQF\�Kondisi : “ setiap pembacaan lokasi memory x akan mengembalikan (menghasilkan bacaan) nilai yang disimpan oleh operasi penulisan yang paling akhir pada lokasi memory x” . Definisi tersebut mensiratkan perlunya suatu DEVROXWH�JOREDO�WLPH� Contoh: W(x)a dan R(y)b, berarti tulis ke x dengan nilai a dan baca y dengan mengembalikan nilai b. (a) Strictly consistent memory P1: W(x)1 P2: R(x)1 (b) Not strictly consistent memory P1: W(x)1 P2: R(x)0 R(x)1 Pada contoh (b) P2 membaca memori hanya beberapa saat (mungkin 1 nanosecond) setelah penulisan dan mendapatkan nilai 0, pembacaan berikutnya menghasilkan 1.

Page 69: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

65 Distributed System and Inter-Operability

__________________________________________________________________________________________ Jika memory memenuhi strictly consistent, semua penulisan segera tampak oleh semua process dan sebuah absolute global time dipertahankan. Model consistency ini merupakan model pemrogramman yang ideal. �6HTXHQWLDO�&RQVLVWHQF\�Kondisi : “ The result of any (sembarang) execution is the same as if the operations of all processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program” . Ketika beberapa process running secara parallel pada mesin-mesin yang berbeda, setiap valid interleaving dapat diterima, tetapi semua process harus melihat urutan yang sama dari PHPRU\� UHIHUHQFHV. Valid interleaving dapat berupa urutan interleaving apa saja asalkan semua process setuju terhadap urutan semua operasi pada shared memory. Kondisi yang tidak mengikuti sequentially consistent memory sbb.: sebuah memory dimana sebuah process melihat sebuah interleaving dan process yang lain melihat interleaving yang berbeda. Contoh dua hasil yang mungkin dari running program yang sama : (a) P1 : W(x)1 (b) P1: W(x)1 P2 : R(x)0 R(x)1 P2: R(x)1 R(x)1 Sequentially consistent memory tidak menjamin bahwa hasil pembacaan merupakan nilai yang ditulis oleh process lain dalam waktu satu ns lebih awal, satu us lebih awal atau satu menit lebih awal. �&DXVDO�&RQVLVWHQF\�Memory harus mematuhi kondisi: “ Writes that are potentially causally related must be seen by all process in the same order. Concurrent writes may be seen in a different order on different machines” . Jika event B disebabkan atau dipengaruhi oleh event A yang lebih awal, maka causality mensyaratkan bahwa setiap mesin lainnya pertama-tama melihat A lalu kemudian melihat B dan juga semua mesin lainnya melihat sequence event yang memenuhi causality pada urutan yang sama.. Jika dua process secara spontan dan simultan menulis dua variable, kedua process tersebut tidak berhubungan secara causal. Jika terdapat event pembacaan yang kemudian diikuti penulisan, kedua event tersebut potensial berhubungan secara causal. Operasi yang tidak berhubungan secara causal disebut FRQFXUUHQW� Contoh berikut sequence diperbolehkan oleh causally consistent memory, tetapi tak diperbolehkan oleh sequentially consistent memory atau strictly consistent memory. Disini penulisan W(x)2 dan W(x)3 adalah concurrent sehingga tidak diperlukan bahwa semua process melihat mereka pada urutan yang sama.

Page 70: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

66 Distributed System and Inter-Operability

__________________________________________________________________________________________ P1 : W(x)1 W(x)3 P2 : R(x)1 W(x)2 P3 : R(x)1 5�[���������5�[�� P4 : R(x)1 5�[���������5�[�� Contoh berikut menunjukkan suatu sequence yang melanggar causal memory: P1 : W(x)1 P2 : R(x)1 W(x)2 P3 : 5�[���������5�[�� P4 : 5�[���������5�[��

W(x)2 secara potensial tergantung dengan W(x)1 Contoh berikut menunjukkan sequence yang benar menurut causal memory : P1 : W(x)1 P2 : W(x)2 P3 : 5�[���������5�[�� P4 : 5�[���������5�[�� W(x)1 dan W(x)2 merupakan event penulisan yang concurrent. 35$0�&RQVLVWHQF\�Kondisinya: “ Writes done by a single process are received by all other processes in the order in which they were issued, but writes from different processes may be seen in a different order by different processes “ . Pada model ini, semua penulisan (write) yang dibangkitkan oleh process yang berbeda merupakan operasi yang concurrent. Contoh valid sequence menurut PRAM consistency tetapi bukan menurut causal consistency : P1 : W(x)1 P2 : R(x)1 W(x)2 P3 : 5�[���������5�[�� P4 : 5�[���������5�[��

Meskipun W(x)2 secara potensial tergantung dengan W(x)1. �:HDN�&RQVLVWHQF\��Sifatnya: 1. Accesses to synchronization variables are sequentially consistent. 2. No access to synchronization variables is allowed to be performed until all previous writes have completed everywhere. 3. No data access (read or write) is allowed to be performed until all previous access to synchronization variables have been perforemed.

Page 71: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

67 Distributed System and Inter-Operability

__________________________________________________________________________________________ Sinkronisasi sebelum pembacaan shared data dapat menjamin process mendapatkan nilai yang paling akhir. Sinkronisasi dikatakan telah dilakukan bila semua shared variable telah di-update. Contoh valid sequence menurut weak consistency. Pada contoh ini process P1 melakukan dua event write dan kemudian disinkronisasikan (ditandai huruf S). Jika P2 dan P3 belum disinkronisasikan , maka tak ada jaminan urutan event penulisan tersebut akan dilihat sama. P1 : W(x)1 W(x)2 S P2 : 5�[���������5�[�������6�P3 : 5�[���������5�[�����6� Contoh sequence yang tak valid menurut weak consistency : P1 : W(x)1 W(x)2 S P2 : S R(x)1 Disini P2 telah disinkronisasi, berarti memorynya telah di-up-date, sehingga ketika membaca x ia harus mendapatkan nilai 2. 5HOHDVH�&RQVLVWHQF\�Model ini memiliki dua jenis variabel sinkronisasi yaitu DFTXLUH dan UHOHDVH. Acquire digunakan untuk mengatakan pada system memori bahwa sebuah critical region akan dimasuki. Release variable mengatakan bahwa critical region baru saja dilepaskan. Variabel sinkronisasi tersebut dapat diimplementasikan pada opearsi-operasi tertentu. Aturannya: 1. Before an ordinary access to a shared variable is performed, all previous acquires done ba the process must have completed successfully. 2. Before a realease is allowed to be performed, all previous reads and writes done by the process must have completed. 3. The acquire and release access must be processor consistent. Contoh valid sequence menurut release consistency . P1 : Acq(L) W(x)1 W(x)2 Rel(L) P2 : Acq(L) R(x)2 Rel(L)�P3 : R(x)1 5LQJNDVDQ�&RQVLVWHQF\� 'HVFULSWLRQ�Strict Absolute time ordering of all shared access matters. Sequential All processes see all shared access in the same order Causal All processes see all causally related shared accesses in the same order Processor PRAM consistency + memory coherence PRTAM All processes see writes from each processor in the order they were

Page 72: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

68 Distributed System and Inter-Operability

__________________________________________________________________________________________

issued. Writes from different processors may not always be seen in the same order.

Weak Shared data can only be counted on to be consistent after a synchronization is done.

Release Shared data are made consistent when a critical region is exited. Entry Shared data are made consistent when a critical regeion is entered. � �����3DJH�%DVHG�'LVWULEXWHG�6KDUHG�0HPRU\�Dasar perancangan : * address space dibagi ke dalam potongan-potongan, dimana potongan tersebut disebar ke seluruh processor di dalam system. * performansi dapat ditingkatkan dengan membuat replikasi potongan yang hanya bersifat read.

*DPEDU������&RQWRK��3DJH�%DVHG�'LVWULEXWHG�6KDUHG�0HPRU\

Page 73: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

69 Distributed System and Inter-Operability

__________________________________________________________________________________________ Ketika sebuah nonlocal memory word ditunjuk, potongan memory yang berisi word tersebut diambil dari lokasinya saat ini dan diletakkan pada mesin yang membuat penunjukkan tersebut. Jika memory word yang ditunjuk tak ada, akan menyebabkan SDJH�IDXOW� Dengan kata lain SDJH� berpindah tempat secara dinamik melalui jaringan berdasarkan permintaan. Process dapat mengakses semua memory dengan menggunakan normal instruksi read dan write, dan tidak sadar ketika page fault dan network transfer terjadi. Akses remote data dideteksi dan dilindungi oleh Memory Management Unit (MMU). Pencapaian Consistency Ada dua pendekatan : update atau invalidation. Pada pendekatan update, penulisan (write) diperbolehkan dikerjakan secara local, tetapi alamat / address dari word yang telah termodifikasi dan nilai barunya di-broadcast secara simultan ke semua cache lainnya. Setiap cache yang memegang word yang sedang di-update melihat bahwa alamat nilainya telah dimodifikasi, sehingga ia meng-copy nilai baru dari bus ke cache-nya. Pada pendekatan invalidation, alamat dari word yang di-update di broadcast pada bus, tetapi nilai barunya tidak. Ketika sebuah cache melihat salah satu word-nya diupdate, maka ia menginvalid cache blok yang berisi word. Hasil akhir dengan metoda ini adalah hanya satu cache memegang word yang sudah termodifikasi. Metoda Page umumnya menggunakan pendekatan invalidation untuk mencapai Sequential Consistency. �����6KDUHG�9DULDEOH�'LVWULEXWHG�6KDUHG�0HPRU\�Metoda ini menggunakan share hanya variable dan data structure tertentu yang diperlukan oleh lebih dari satu process. Memungkinkan untuk meng-update suatu variabel tanpa mempengaruhi variable lainnya, dan bentuk fisik variabel pada page adalah kurang penting. 0XQLQ�Model ini didasarkan pada VRIWZDUH�REMHFW��setiap object dapat ditempatkan pada page yang terpisah dan MMU dapat digunakan untuk mendeteksi akses ke shared object. Munin didasarkan pada implementasi software release consistency. Penulisan (write) ke shared variable harus terjadi didalam critical region, pembacaan (read) dapat terjadi di dalam atau di luar critical region. Ketika process keluar dari critical region, shared variable dimodifikasi dan dijamin konsistensinya dan kemudian di-update ke semua mesin. Munin membedakan tiga kelas variable: RUGLQDU\� YDULDEOHV�� VKDUHG� GDWD� YDULDEOHV��V\QFKURQL]DWLRQ� YDULDEOHV�� Ordinary variable tidak dapat di-shared dan dapat dibaca dan ditulis hanya oleh process yang membuatnya.�Shared data variable tampak oleh process yang lain dan tampak menurut sequentially consistent dan hanya dapat digunakan didalam critical

Page 74: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

70 Distributed System and Inter-Operability

__________________________________________________________________________________________ region.� Synchronization variable (seperti lock) hanya dapat diakses melalui suatu V\VWHP�VXSSOLHG�DFFHVV�SURFHGXUHV���

*DPEDU������&RQWRK�2SHUDVL�'DVDU�0XQLQ Disamping menggunakan release consistency, Munin juga menggunakan teknik yang lain untuk meningkatkan performansinya. Misalkan mengklasifikasikan shared variable di dalam salah satu dari empat kategori : UHDG�RQO\��PLJUDWRU\��ZULWH�VKDUHG�GDQ�FRQYHQWLRQDO����0LGZD\� Konsistensi dipertahankan oleh semua process yang membutuhkan akses shared variable dan data structure yang dikerjakan di dalam critical region/section. Setiap critical section dijaga oleh variabel sinkronisasi khusus, umumnya ORFN�� Setiap shared variable yang diakses di dalam critical section harus secara eksplisit dihubungkan dengan lock dari critical section tersebut. Dengan cara ini, ketika sebuah critical section dimasuki atau keluar, Midway tahu secara persis shared variable yang mana yang akan diakses atau telah diakses. Midway mendukung tiga buah consistency protocol : entry, release dan processor. Baik pada Munin maupun Midway, programmer harus menyediakan informasi variabel yang mana yang akan dishared dan yang tidak. �������2EMHFW�%DVHG�'LVWULEXWHG�6KDUHG�0HPRU\� Sebuah REMHFW�adalah sebuah SURJUDPPHU�GHILQHG�HQFDSVXODWHG�GDWD�VWUXFWXUH� Object terdiri dari : internal data/state, object state dan procedure yang disebut dengan�PHWKRGV�atau RSHUDWLRQ. Untuk mengakses internal state, program harus meminta salah satu method. Method dapat mengubah internal state serta mengembalikan state. Sifat tersebut disebut dengan LQIRUPDWLRQ�KLGLQJ�� Process pada berbagai mesin VKDUH�sebuah abstract space yang berisi dengan VKDUHG�REMHFWV. Lokasi dan manajemen object ditangani secara otomatis oleh UXQWLPH�V\VWHP� Setiap process dapat meminta sembarang object tanpa memperhatikan dimana process dan object berada.

Page 75: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

71 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU������2EMHFW�%DVHG�'LVWULEXWHG�6KDUHG�0HPRU\ Keuntungan metoda ini dibandingkan metoda sebelumnya : 1. Lebih modular 2. Implementasi lebih fleksibel. 3. Sinkronisasi dan akses dapat diintegrasikan bersama-sama secara baik.

����������������

Page 76: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

72 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;,9��

6HFXULW\��

������Seperti yang telah diketahui pada umumnya bahwa protocol TCP/IP secara� GH� IDFWR�merupakan standar untuk RSHQ� V\VWHP�GDWD�FRPPXQLFDWLRQ�dan LQWHURSHUDELOLW\� Karena itu disini akan diuraikan VHFXULW\�di dalam lingkungan TCP/IP. ������3HUOLQGXQJDQ�7HUKDGDS�,QIUDVWUXNWXU��������6HFXULW\�XQWXN�+RVW�GDQ�$SOLNDVLQ\D�Perlindungan terhadap semua ancaman dengan hanya berdasarkan Host sangat sulit diterapkan. Untuk melindungi infrastruktur kita harus menerapkan perlindungan/security berdasarkan OD\HU. Kita seharusnya membangun pertahanan yang sesuai yang berada di dalam sistem sehingga penyusup yang mungkin bisa mengakses salah satu bagian dari sistem tidak akan secara otomatis dapat mengakses bagian lain dari sistem tersebut. Akses terhadap host yang berisi informasi rahasia membutuhkan pengontrolan yang hati-hati. Host di dalam sistem jaringan kita sebaiknya diinventarisir dan dilakukan klasifikasi jenis perlindungan atau security yang sesuai. �������1HWZRUN�6HFXULW\ Tujuan dari network security adalah penyediaan availability, integrity dan confidentiality. Atau dengan kata lain network security mempunyai tiga karakteristik yaitu availability, integrity dan confidentiality. Sistem dan lingkungan yang berbeda akan berbeda pula dalam penekanan pada setiap dari ketiga karakteristik tersebut. Sebagai contoh Internet Service Provider (ISP) lebih menaruh perhatian pada confidentiality dan integrity. Untuk lembaga keuangan seperti perbankan menekankan pada semua ketiga karakteristik tersebut, tetapi dengan tekanan khusus pada aspek integrity dari data yang dipertukarkan. Availability Availability menjamin bahwa informasi dan layanan dapat diakses dan berfungsi dengan benar (DFFHVVLEOH�DQG�IXQFWLRQDO) pada saat dibutuhkan.

Page 77: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

73 Distributed System and Inter-Operability

__________________________________________________________________________________________ Untuk menyediakan jaringan dengan availability yang tinggi, maka harus dijamin bahwa security proses adalah handal (UHOLDEOH) dan responsif. Sistem dan software termasuk sistem security yang modular perlu saling LQWHURSHUDEOH. Sistem yang mempunyai availability yang tinggi mempunyai karakteristik antara lain mempunyai MTBF (0HDQ�7LPH�%HWZHHQ�)DLOXUH) yang panjang dengan dukungan UHGXQGDQW�SRZHU�VXSSO\ dan KRW�VZDSSDEOH�PRGXOH. Integrity Integrity (keutuhan) menjamin bahwa informasi atau software adalah lengkap, akurat dan otentik. Dengan integrity orang atau proses yang tak berhak tak bisa membuat perubahan pada sistem. Untuk QHWZRUN� LQWHJULW\ kita perlu menjamin bahwa PHVVDJH yang diterima adalah sama dengan�PHVVDJH�yang dikirim. Isi dari PHVVDJH harus lengkap dan tak dimodifikasi, dan link antara sumber dan tujuan node valid. &RQQHFWLRQ� LQWHJULW\ dapat disediakan oleh FU\SWRJUDSK\ dan URXWLQJ�FRQWURO. Confidentiality Confidentiality (kerahasiaan) melindungi informasi sensitif dari penyingkapan/pengaksesan yang tak berhak. Cryptography dan access control digunakan untuk melindungi kerahasiaan. Usaha penerapan perlindungan kerahasiaan tergantung pada sensitivitas dari informasi dan kemungkinan sifat pengamat atau penyusup. �������$FFHVV�&RQWURO��Access Control adalah proses pembatasan hak untuk penggunaan sumber-sumber sistem. Ada tiga jenis control untuk pembatasan akses: $GPLQLVWUDWLYH�FRQWURO���berdasarkan kebijakan organisasi. 3K\VLFDO� FRQWURO� ��misalkan pembatasan akses ke node jaringan, perlindungan pengkabelan jaringan, dan sebagainya. /RJLFDO�FRQWURO���berdasarkan DFFHVV�FRQWURO�OLVW��FRPPXQLFDWLRQ�SURWRFRO�GDQ�FU\SWRJUDSK\�� $FFHVV� FRQWURO berdasarkan pengujian identitas (DXWKHQWLFDWLRQ) dan kemudian penjaminan hak akses berdasarkan identitas (DXWKRUL]DWLRQ). Akses dapat dijaminkan kepada orang, mesin, layanan atau program. Authentication�Authentication adalah pengujian identitas yang diklaim oleh pemakai, proses atau device. Authentication menjamin hak akses berdasarkan identitas. Confidentiality dan integrity tak akan berlangsung bila identitas pemakai data tersebut tidak lolos uji. Tingkatan Authentication yang diperlukan untuk sebuah system ditentukan oleh kebutuhan keamanan (security) yang diperlukan oleh organisasi. Sebagai contoh transaksi keuangan sangat membutuhkan Authentication. Contoh lemah bentuk Authentication adalah penggunaan IP address untuk menentukan identitas. Faktor Authentication adalah sebagai berikut: :KDW� D�3HUVRQ�.QRZV� . Contohnya adalah passwords dan Personal Identification Numbers (PIN).

Page 78: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

74 Distributed System and Inter-Operability

__________________________________________________________________________________________ :KDW� D� 3HUVRQ� +DV�� Contohnya adalah hardware atau software token seperti smart card, SecureID. :KDW�D�3HUVRQ�,V��Sebagai contoh misalnya biometric Authentication. Sistem yang sangat membutuhkan Authentication membutuhkan minimal dua factor tersebut di atas. Saat ini sudah tersedia beberapa protocol untuk keperluan jaringan (network) Authentication seperti : TACACS+ ( Terminal Access Controller Access System), Kerberos dan RADIUS (Remote Access Dial In User Service). TACACS+ mendukung banyak protocol seperti IP, AppleTalk, X.25 PAD, NetBIOS. RADIUS adalah standard terbuka yang didukung banyak vendor. RADIUS adalah pilihan terbaik untuk linkungan jaringan beraneka ragam. RADIUS menggunakan UDP dan hanya bekerja pada jaringan IP. Sedangkan Kerberos dapat digunakan untuk QHWZRUN�DXWKHQWLFDWLRQ dan KRVW�DXWKHQWLFDWLRQ. Kekuatan dari teknik yang digunakan untuk pengujian sebuah identitas tergantung pada sensitivitas dari informasi yang diakses dan kebijakan organisasi penyedia akses tersebut. Sebuah router dapat dibuat sedemikian rupa sehingga satu sama lain bisa dapat saling melakukan Authentication. Authentication sebuah router menjamin bahwa updating routing berasal dari sumber yang diketahui dan tidak dimodifikasi atau rusak. $XWKRUL]DWLRQ�$XWKRUL]DWLRQ� adalah hak yang dijamin oleh suatu utilitas agar mampu mengakses layanan atau informasi untuk identitas khusus atau sekelompok identitas. Untuk system yang sangat tinggi tingkat keamanannya, default otorisasinya adalah tidak dapat akses. Sedangkan untuk system publik, otorisasinya adalah sebagai tamu (guest) atau pemakai anonym. Authentication adalah kunci untuk menjamin bahwa hanya pemakai yang telah mempunyai hak (authorized user) yang dapat mengakses informasi. $FFRXQWLQJ�$FFRXQWLQJ� adalah rekaman dari aktivitas jaringan dan akses sumber informasi. Dari perspektif keamanan, accounting dapat digunakan untuk pendeteksian dan analisa kejadian yang terkait dengan keamanan jaringan. ������.HDPDQDQ�SDGD�-DULQJDQ�7&3�,3�Jaringan Internet tidak menjamin adanya privasi atau integritas data. Sehingga data perlu dienkripsi sebelum ditransmisikan dan di-dekripsi saat diterima di penerima. �������&U\SWRJUDSK\�&U\SWRJUDSK\ adalah teknik penulisan dan pembacaan kode atau sandi rahasia (FLSKHU). Cryptography digunakan untuk pengamanan informasi agar informasi tetap privasi dan untuk meng-authenticate identitas pengirim atau penerima informasi. &U\SWRJUDSK\ dapat juga menyediakan keutuhan (LQWHJULW\) informasi, sebab ia hanya mengijinkan orang atau proses yang berhak yang bisa mengakses informasi, dan dapat mendeteksi kerusakan atau perubahan informasi asli.

Page 79: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

75 Distributed System and Inter-Operability

__________________________________________________________________________________________ Ada tiga kategori fungsi� FU\SWRJUDSK\ yaitu: V\PPHWULF� NH\�� DV\PPHWULF� NH\ dan KDVK�IXQFWLRQ. Hampir kebanyakan dari algoritma fungsi tersebut merupakan pengetahuan umum dan telah teruji oleh banyak ahli. Kekuatan keamanan dari kategori tersebut tergantung pada kekuatan algoritma dan kekuatan NH\ (kunci).�.H\ adalah sebuah deretan yang digunakan oleh proses matematik dari penulisan kode (HQFKLSHULQJ) dan penguraian kode (GHFLSKHULQJ) informasi. +DVK�IXQFWLRQ tidak menggunakan NH\. Enkripsi (HQFU\SWLRQ) adalah sebuah proses pengubahan bentuk informasi asli dalam bentuk text atau numerik (disebut SODLQWH[W) ke dalam bentuk yang tak dimengerti (disebut FLSKHUWH[W) menggunakan algoritma konversi yang terdefinisi baik (dan reversible) dan menggunakan sebuah SUHGHILQHG� ELW� YDOXH (yang disebut NH\). .H\�menyediakan sebuah nilai awal untuk algoritma enkripsi. Proses kebalikan enkripsi disebut dengan dekripsi. Untuk mempertukarkan pesan yang terenkripsi, pihak yang terlibat harus setuju pada algoritma yang akan digunakan dan kunci untuk algoritma tersebut. 6\PPHWULF�&U\SWRJUDSK\�Symmetric Cryptography menggunakan kunci yang sama untuk proses enkripsi dan dekripsi informasi. Setiap pasang pemakai menggunakan bersama-sama sebuah�NH\�untuk pertukaran pesan/message. Dan mereka harus tetap menjaga kerahasiaan key yang digunakan. Contoh Symmetric Cryptography:

• Data Encryption Standard (DES) • Triple DES (3DES) • International Data Encryption Algorithm (IDEA) • Rivest Cipher 4 (RC4) Karakteristik algoritma symmetric Cryptography adalah cepat dan dapat mengenkripsi banyak informasi dalam waktu yang singkat.

$V\PPHWULF�&U\SWRJUDSK\ $V\PPHWULF� NH\� FU\SWRJUDSK\ dikenal juga sebagai SXEOLF� NH\� FU\SWRJUDSK\. Algoritma ini menggunakan sepasang NH\ yang secara matematik saling terkait, tetapi diberikan hanya satu NH\. Satu NH\ digunakan untuk enkripsi dan NH\ yang lain untuk dekripsi. Salah satu kunci tetap dijaga rahasia dan�NH\ yang lain di distribusikan secara umum. Pengirim message/pesan dapat menggunakan SXEOLF�NH\ milik penerima untuk mengenkripsi message dan penerima menggunakan SULYDWH�NH\ untuk mendekripsi message. Beberapa contoh algoritma asymmetric key :

• Diffie –Hellman • Digital Signature Algorithm (DSA) • Elliptic Curve Cryptosystem (ECC)

Algoritma asymmetric key sangat membutuhkan perhitungan yang sangat intesif, juga tidak praktis untuk digunakan mengenkripsi dan mengdekripsi data/informasi dalam jumlah besar. +DVK�)XQFWLRQ

Page 80: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

76 Distributed System and Inter-Operability

__________________________________________________________________________________________ +DVK�IXQFWLRQ�digunakan untuk memadatkan message yang mempunyai panjang variable ke dalam sebuah kode yang panjangnya tetap (disebut sebagai KDVK� atau PHVVDJH� GLJHVW). Algoritma yang berbeda akan menghasilkan panjang KDVK yang berbeda pula. Contoh KDVK�IXQFWLRQ�:

• Message Digest 5 (MD5) • Secure Hash Algorithm (SHA) • Haval

+DVK�adalah merupakan sebuah FU\SWRJUDSKLF� FKHFNVXP�yang digunakan untuk penyediaan sebuah LQWHJULW\� FKHFN pada message. Pengirim menghitung KDVK� message aslinya dan mengirimkannya dengan message yang telah terenkripsi. Penerima mendekripsi message dan juga menghitung KDVKnya. Jika KDVK� dari pengirim sama dengan KDVK� di penerima, maka penerima akan yakin bahwa message yang diterima adalah lengkap dan tak berubah. Penghitungan KDVK� dari message dan enkripsi KDVK� dengan SULYDWH� NH\� pengirim dapat membentuk sebuah tanda tangan digital (GLJLWDO� VLJQDWXUH). Pengirim menempelkan tanda tangan digital ke message. Penerima memisahkan tanda tangan digital dan mendekripsikannya dengan SXEOLF� NH\� pengirim. +DVK� message yang diterima kemudian dihitung, dan jika sama dengan hash yang dikirim berarti message yang diterima adalah otentik dari pengirim. ���������$SSOLFDWLRQ�/D\HU�6HFXULW\�$SSOLFDWLRQ�OD\HU�VHFXULW\�menyediakan keamanan HQG�WR�HQG dari aplikasi pada satu host ke aplikasi pada host lainnya. Skema ini tidak memperhitungkan mekanisme transport dibawahnya. Layer ini menyediakan secara lengkap persyaratan keamanan, kelengkapan, kerahasiaan. Beberapa contoh DSSOLFDWLRQ�OD\HU�VHFXULW\ seperti : 3UHWW\�*RRG�3ULYDF\ (PGP) dan 6HFXUH�+\SHU7H[W�7UDQVSRUW�3URWRFRO�(S-HTTP). 3UHWW\�*RRG�3ULYDF\ (PGP) Digunakan untuk privasi dan tanda tangan digital dari message email. PGP menyediakan end-to-end security dari pengirim ke penerima. 6HFXUH�+\SHU7H[W�7UDQVSRUW�3URWRFRO��6�+773��S-HTTP dirancang untuk menyediakan keamanan aplikasi Web. S-HTTP merupakan protocol keamanan berdasarkan message artinya message dapat diamankan secara individual. S-HTTP menggunakan V\PPHWULF�NH\ dan menggunakan RXW�RI�EDQG�FRPPXQLFDWLRQ.����������7UDQVSRUW�/D\HU�6HFXULW\�Skema ini menyediakan keamanan SURFHVV�WR�SURFHVV�antara host. Hampir kebanyakan skema ini dirancang untuk TCP. 6HFXUH�6RFNHWV�/D\HU�(SSL) dan 7UDQVSRUW�/D\HU�6HFXULW\ (TLS) SSL sangat luas dipakai di Internet untuk transaksi berdasarkan Web seperti pengiriman data FUHGLW� FDUG��SSL dapat juga digunakan untuk protocol lainnya seperti Telnet, FTP, LDAP, IMAP dan SMTP tetapi ini tak umum dipakai. TLS adalah terbuka baerdasarkan standard IETF pada SSL 3.0. TLS didefinisikan di RFC 2246, RFC 2712, RFC 2817, RFC 2818.

Page 81: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

77 Distributed System and Inter-Operability

__________________________________________________________________________________________ SSL dan TLS tidak saling LQWHURSHUDEOH. SSL dan TLS menyediakan keamanan untuk TCP session tunggal. Server dan browser harus mampu mendukung salah satu SSL atau TLS untuk membuat komunikasi Web yang aman. �6HFXUH�6KHOO (SSH) SSH menyediakan UHPRWH� ORJLQ yang aman yaitu untuk keamanan Telnet session dan file transfer. Protokol SSH menyediakan channel yang aman untuk VKHOO� VHVVLRQ interaktif dan WXQQHOOLQJ pada aplikasi TCP yang lain. )LOWHULQJ�Packet filter dapat diimplementasikan pada router dan device layer 3 untuk mengontrol paket apakah akan diblok atau diteruskan pada setiap interface-nya. ��������1HWZRUN�/D\HU�6HFXULW\�Skema ini dapat diterapkan untuk keamanan trafik untuk semua aplikasi atau SURWRFRO�WUDQVSRUW�pada layer di atasnya. ,3�6HFXULW\�3URWRFROV�(IPSec) Protokol ini dapat menyediakan DFFHVV� FRQWURO�� DXWKHQWLFDWLRQ�� GDWD� LQWHJULW\� dan FRQILGHQWLDOLW\ untuk setiap paket IP antara dua network node yang saling berkomunikasi. IPSec dapat digunakan antara dua host, antara sebuah gateway dan sebuah host atau antara dua gateway. Untuk implementasi IPSec tidak diperlukan modifikasi baik aplikasi dan protocol diatas network layer dapat digunakan tanpa modifikasi. Hanya infrastruktur network layer yang berubah seperti router, firewall dan di beberapa kasus diperlukan VRIWZDUH�FOLHQW. IPSec secara lengkap transparan dari sudut pandang HQG�XVHU. Implementasi secara lengkap IPSec terdapat pada RFC 2401. Protokol IPSec telah banyak didukung sangat luas oleh banyak vendor. ,36HF�$UFKLWHFWXUH�IPSec menyediakan tiga fungsi utama:

• $XWKHQWLFDWLRQ, disediakan melalui protokol $XWKHQWLFDWLRQ� +HDGHU (AH). AH didefinisikan di RFC 2402

• $XWKHQWLFDWLRQ� dan FRQILGHQWLDOLW\ (enkripsi), disediakan melalui protokol (QFDSVXODWLQJ�6HFXULW\�3D\ORDG (ESP). ESP didefinisikan di RFC 2406.

• Pertukaran Key, disediakan secara otomatius melalui protokol ,QWHUQHW�.H\�([FKDQJH (IKE) atau manual. IKE didefinisikan di RFC 2409.

IPSec menyediakan komunikasi yang aman antara dua HQGSRLQW yang disebut ,36HF� SHHU. Komunikasi dengan multiple IPSec dapat ada diantara dua peer, dengan setiap komunikasinya mempunyai 6HFXULW\� $VVRFLDWLRQ (SA) yang terpisah. Apabila ada HQG� KRVW pada SULYDWH�QHWZRUN yang terpisah ingin saling berkomunikasi, maka hanya router yang menghubungkan SULYDWH�QHWZRUN dengan SXEOLF�QHWZRUN yang perlu mendukung IPSec. IKE adalah protokol manajemen NH\ yang digunakan dalam IPSec untuk membuat channel komunikasi yang aman dan otentik antara dua entitas dan untuk negosiasi SA dari IPSec.

Page 82: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

78 Distributed System and Inter-Operability

__________________________________________________________________________________________ Security Association (SA) SA mendefinisikan bagaimana dua atau lebih pengguna IPSec akan menggunakan layanan keamanan dari protocol keamanan (AH atau ESP) untuk berkomunikasi yang direpresentasikan pada aliran data tertentu (SDUWLFXODU� IORZ). SA berisi key rahasia yang digunakan untuk melindungi data dalam sebuah aliran dan waktu hidupnya (OLIH� WLPH). SA bersifat uni-directional (satu arah) dan unik per VHFXULW\� SURWRFRO (AH atau ESP). SA diidentifikasi oleh tiga parameter: VHFXULW\�SDUDPHWHU�LQGH[�(SPI), ,3�GHVWLQDWLRQ�DGGUHVV dan VHFXULW\�SURWRFRO�LGHQWLILHU� IPSec mempunyai dua mode :

• transport mode : keamanan yang disediakan IPSec adalah end-to-end. Pada mode ini hanya payload paket yang dienkripsi.

• tunnel mode: digunakan jika IPSec peer adalah bukan tujuan akhir IP traffic. Jadi mode ini digunakan antara dua gateway atau antara sebuah gateway dengan sebuah host. Pada mode ini keseluruhan paket IP dienkripsi.

)LOWHULQJ��$FFHVV�&RQWURO�/LVWV��Paket filter dapat diimplementasikan pada router dan device layer 3 untuk mengontrol sumber dan tujuan IP address yang diperbolehkan untuk melewati gateway. 6WDQGDUG�DFFHVV�OLVW dapat mem-filter pada VRXUFH� DGGUHVV. Sedangkan H[WHQGHG� DFFHVV� OLVW dapat mem-filter protocol ICMP, IGMP atau IP pada network layer. �������'DWD�/LQN�/D\HU�6HFXULW\�Skema ini bekerja berdasarkan SRLQW�WR�SRLQW� seperti melalui sebuah OHDVHG� OLQH�atau IUDPH�UHOD\�SHUPDQHQW�YLUWXDO� FLUFXLW� Perangkat hardware khusus ditambahkan pada setiap ujung link untuk melakukan enkripsi dan dekripsi. Kalangan militer, pemerintah dan perbankan sangat umum menggunakan pendekatan ini. Skema ini tidak sesuai untuk jaringan yang besar. Keuntungan metoda ini yaitu penyusup tidak bisa menentukan alamat pengirim atau penerima. �������)LUHZDOO�)LUHZDOO umumnya ditempatkan pada batas network untuk membangun batas pinggir keamanan (VHFXULW\). )LUHZDOO� digunakan untuk melindungi LQWHUQDO� QHWZRUN dari akses eksternal yang tak diinginkan. )LUHZDOO juga dapat digunakan secara internal untuk mengontrol akses jaringan pada spesifik bagian atau resources. Ada tiga jenis ILUHZDOO yang tersedia saat ini, yaitu : 3DFNHW�)LOWHU�. Jenis ini melihat protokol, alamat atau informasi port dalam setiap paket dan membuat keputusan apakah paket diteruskan atau tidak berdasarkan aturan tertentu. Contoh jenis ini adalah $FFHVV�&RQWURO�/LVW (ACL) pada router. 3UR[\� 6HUYHUV. Jenis ini menggunakan aplikasi khusus untuk setiap layanan yang akan diteruskan melalui firewall. Proxy menawarkan keamanan yang terbaik, tetapi pemakai harus mempunyai sebuah aplikasi untuk setiap layanan/service yang akan diproses oleh firewall. Jenis ini memiliki performansi terlambat dibandingkan jenis lainnya. 6WDWHIXO�,QVSHFWLRQ� Jenis ini menganalisa semua layer komunikasi, meng-ekstrak komunikasi yang relevan dan informasi DSSOLFDWLRQ�VWDWH�dan secara dinamik mempertahankan VWDWH�dari komunikasi dalam sebuah table.

Page 83: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

79 Distributed System and Inter-Operability

__________________________________________________________________________________________ Berikutnya akan kita bahas lebih detail tentang $FFHVV�&RQWURO�/LVW. �������$FFHVV�&RQWURO�/LVW�Fungsi sebuah access control list akan tergantung pada konteks dimana ia digunakan. Sebagai contoh, access list dapat :

• Mengontrol akses jaringan yang dihubungkan ke sebuah router atau mendifinisikan jenis trafik tertentu yang diijinkan melewati ked dan dari jaringan.

• Membatasi isi updating routing yang di” iklankan” oleh berbagai macam protokol routing.

• Melindungi router itu sendiri dengan pembatasan akses ke layanan/service seperti SNMP dan Telnet.

• Mendifinisikan trafik yang menarik untuk routing 'LDO�RQ�'HPDQG. • Mendifinisikan fitur buffer dengan menentukan tingkat prioritas paket yang satu

terhadap yang lain. Kriteria untuk penetuan aksi access list terhadap paket yang lewat dapat berdasarkan hanya pada source address atau source dan destination address, tipe protocol, spesifikasi port atau jenis layanan, atau jenis informasi lainnya yang umumnya berisi di dalam header layer 3 dan layer 4. Access list harus diterapkan pada interface pada router. Access list dapat diterapkan pada salah satu trafik datang (LQERXQG) atau trafik keluar (RXWERQG) pada sebuah spesifik interface. Kita dapat mempunyai sebuah access list per protocol, per interface, per direction/arah. Jadi sebagai contoh, kita dapat memilikisebuah access list untuk trafik IP keluar dan satu buah lagi access list untuk trafik IP masuk yang diterapkan pada interface yang sama. Ada beberapa jenis access list untuk protokol IP , yaitu:

• 6WDQGDUG�,3�$FFHVV�/LVW. Jenis ini dapat digunakan untuk mem-filter paket berdasarkan VRXUFH�,3�DGGUHVV yang ada pada paket.

• ([WHQGHG�,3�$FHVV�/LVW. Jenis ini dapat digunakan untuk mem-filter paket berdasarkan VRXUFH (sumber)� dan� GHVWLQDWLRQ (tujuan)� ,3� DGGUHVV yang ada pada paket bersama dengan specific protocol, source dan destination port..

• /RFN�DQG�.H\�$FHVV�/LVW��Disebut juga dengan G\QDPLF�DFFHVV� OLVW dengan membuat G\QDPLF�HQWU\. Access list ini dapat membuat entry sementara pada access list setelah user (pemakai) di otentifikasi.

• 5HIOH[LYH�$FFHVV�/LVW��Access list ini secara otomatis membuat dan menghapus entry DFFHVV� OLVW yang membolehkan trafik lewat berdasarkan IP session. 5HIOH[LYH� DFFHVV�OLVW hanya mampu menangani aplikasi VLQJOH�FKDQQHO�

• &RQWH[W�EDVHG� $FHVV� &RQWURO� �&%$&��� Jenis ini dapat digunakan bersama dengan berbagai macam aplikasi dan menyediakan tingkat keamanan yang lebih tinggi. Keterbatasan CBAC hanya mampu menangani layanan yang aktif pada standard port. Sebagai contoh trafik yang menuju Web server yang aktif pada port selain standard http port (80) tak dapat dilindungi oleh CBAC.

������1HWZRUN�$GGUHVV�7UDQVODWLRQ��1$7��NAT adalah mekanisme yang dapat digunakan untuk mentranslasikan / merubah IP address di dalam paket IP. Mekanisme tersebut dapat membuat suatu tempat (VLWH ) yang menggunakan

Page 84: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

80 Distributed System and Inter-Operability

__________________________________________________________________________________________ IP address khusus (privat) dapat berkomunikasi dengan jaringan global Internet. Jaringan yang menggunakan ,3� DGGUHVV khusus/privat tidak akan bisa berhubungan dengan jaringan global Internet bila tanpa menggunakan translasi ,3�DGGUHVV. NAT beroperasi pada sebuah devais yang menghubungkan dua jaringan bersama-sama. Umumnya satu network menggunakan ,3�DGGUHVV berdasarkan RFC 1918 (SULYDWH�DGGUHVV) sedangkan lainnya menggunakan ,3� DGGUHVV yang berlaku global. Mekanisme NAT sebenarnya dirancang bukan untuk maksud VHFXULW\, tetapi dengan NAT akan membuat lebih sulit para KDFNHU atau penyusup untuk mendapatkan sumber paket atau mendapatkan�VRXUFH atau GHVWLQDWLRQ�DGGUHVV aslinya. NAT diuraikan secera lengkap pada dokumen RFC 2663.

������������

Page 85: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

81 Distributed System and Inter-Operability

__________________________________________________________________________________________

%$%�;9��

6WXGL�.DVXV��

���������$02(%$� �������3HQGDKXOXDQ� 6HMDUDK� Amoeba berasal dari universitas Vrije, Amsterdam di Belanda tahun 1981, sebagai proyek riset tentang komputasi terdistribusi dan paralel oleh Andrew S. Tanenbaum dan tiga orang mahasiswa PhD, Frans kaashoek, Sape J. Mullender dan Robbert van Renesse. Protipe dari riset ini dioperasikan pertama kalinya pada tahun 1983 dengan amoeba versi 1.0. Setelah sukses dengan versi 3.0 yang didasarkan pada RPC, dengan Amoeba memungkinkan untuk client di Tromso mengakses server di Amsterdam secara transparan dan begitu juga sebaliknya. Tujuan dari riset tersebut adalah untuk membangun sebuah sistem operasi terdistribusi yang bersifat transparan. Perbedaan utama antara amoeba dengan sistem terdistribusi lainnya adalah amoeba tidak memiliki konsep “ Home machine” ; Yaitu ketika user melakukan�ORJLQ, maka dia langsung terhubung ke seluruh sistem. Dengan kata lain seluruh resource yang ada dimiliki dan dimanejemen oleh sistem. Tujuan kedua dari Amoeba adalah untuk memberikan sebuah sarana untuk melakukan pemprograman terdistribusi dan paralel. $UVLWHNWXU�VLVWHP��Amoeba didisain dengan dua asumsi :

a. Sistem terdiri dari CPU dalam jumlah besar b. Setiap CPU memiliki memori sebesar 10 Mbit

*DPEDU������$UVLWHNWXU�6LVWHP�$PRHED�

Page 86: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

82 Distributed System and Inter-Operability

__________________________________________________________________________________________ Pada gambar diatas, seluruh kemampuan komputasi dialokasikan pada satu atau lebih SURFHVVRU� SRRO� yang terdiri dari beberapa CPU penting, masing-masing memiliki memori lokal dan koneksi jaringan tersendiri. Pembagian memori kadang tidak diperlukan atau kadang diharapkan untuk digunakan mengoptimalkan aliran message dengan melakukan pengkopian memori ke memori demi kelancaran pengiriman message dalam jaringan. Pool processor bukanlah milik user manapun. Ketika seorang user menuliskan command, sistem operasi secara dinamis akan memilih satu atau lebih processor di mana dia akan menjalankan command tersebut. Ketika command selesai dieksekusi, proses tersebut akan dihentikan dan seluruh resource yang ada akan dikembalikan lagi ke pool, menunggu command selanjutnya dari user yang berbeda. Jika terjadi kekurangan pool processor, processor-processor individu akan dibagi berdasarkan waktu (WLPHVKDUH), dengan proses baru diberikan pada processor pada beban kerja terendah. Komponen kedua dari arsitektur Amoeba adalah terminal, yang merupakan gerbang user untuk mengakses sistem. Tipe terminalnya merupakan sebuah X-terminal, yang terdiri dari sebuah layar yang akan memetakan sejumlah besar bit dan sebuah mouse. Alternatifnya adalah sebuah PC atau workstation yang menjalankan X windows dapat juga digunakan sebagai terminal. Sebuah pool processor terdiri dari sebuah board tunggal dengan sebuah koneksi jaringan tanpa adanya keyboard, monitor, mouse dan power supply dapat berbagi dengan banyak board lainnya. Komponen lainnya dari arsitektur amoeba adalah server khusus seperti file server di mana hardware dan softwarenya perlu dijalankan pada prosesor yang terpisah. Pada beberapa kasus, server dapat saja diproses pada pool processor pada saat start up jika diperlukan. Service adalah definisi abstrak dari apa yang dipersiapkan oleh server untuk para clientnya. Definisi ini menjelaskan apa yang dapat diminta oleh seorang client dan apa hasilnya, tetapi tidak menerangkan berapa banyak server yang akan bekerja sama untuk memberikan service tersebut. Dengan cara ini, sistem memiliki mekanisme untuk memberikan pelayanan IDXOW�WROHUDQFH, karena adanya sejumlah server yang melakukan perkerjaan tersebut. 0LFURNHUQHO�Amoeba terdiri dari dua buah bagian dasar yaitu: sebuah microkernel yang dijalankan pada setiap prosesor dan sekumpulan server yang memberikan fungsi sistem operasi yang paling dasar.

Page 87: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

83 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU������6WUXNWXU�6RIWZDUH�$PRHED�� Microkernel bekerja pada seluruh mesin dalam sistem. Kernel yang sama dapat digunakan pada pool processor, terminal-terminal (jika mereka adalah komputer, lebih dari X-terminal), dan server-server khusus. Micro kernel memiliki 4 fungsi dasar yaitu:

1. memanejemen processes dan threads 2. memberikan dukungan manejemen memori level rendah 3. mendukung komunikasi 4. mengatasi I/O level rendah.

Meskipun sebuah process dengan sejumlah thread masih memiliki ruang address tunggal yang berbagi dengan seluruh thread tersebut, secara logika setiap thread masih memiliki registernya, counter programnya dan stacknya masing-masing. Penggunaan sejumlah thread mungkin terjadi dalam sebuah file server di mana datangnya request diberikan kepada sebuah thread terpisah untuk dijalankan. Thread tersebut bisa memulai pemprosesan request, memblok antrian pada disk, kemudian melanjutkan pekerjaan. Dengan membagi server menjadi sejumlah thread, setiap thread dapat menjadi sekuensial murni, terlebih jika dia memblok antrian I/O. Tugas kedua dari kernel adalah memberikan manajemen memori level rendah. Thread dapat mengalokasikan dan memindahkan blok-blok memori (VHJPHQWV). Segment ini dapat dibaca dan ditulis, dan dapat juga tempatkan atau dibuang dari ruang address dari process yang dimiliki oleh thread tersebut. Tugas yang ketiga adalah menangani LQWHUSURFHVV� FRPPXQLFDWLRQ. Terdapat dua bentuk komunikasi yang diberikan yaitu: komunikasi SRLQW�WR�SRLQW dan komunikasi grup. Komunikasi point-to-point didasarkan pada pengiriman message oleh client ke pada server, kemudian memblok diri sampai server mengirim balasan balik. Sedangkan pada komunikasi grup, message dikirim dari sebuah sumber ke sejumlah tujuan. Kedua bentuk komunikasi tersebut memberdayakan sebuah protokol khusus yang disebut FLIP, yaitu sebuah protokol layer jaringan. Tugas ke empat adalah memanejemen I/O level rendah di mana setiap perangkat I/O terhubung dengan sebuah perangkat mesin. Jadi diperlukan sebuah driver didalam kernel yang memanejemen seluruh I/O untuk perangkat tersebut.

Page 88: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

84 Distributed System and Inter-Operability

__________________________________________________________________________________________ $PRHED�6HUYHU�Semua hal yang tidak dilakukan oleh kernel, akan dilakukan oleh Process server. Tujuannya adalah untuk meminimalkan ukuran kernel dan meningkatkan fleksibilitas, sehingga kernel dapat diubah dengan mudah dan sejumlah versi dapat dijalankan secara simultan untuk populasi user yang berbeda-beda. Amoeba didasarkan pada FOLHQW� VHUYHU�PRGHO. Client dituliskan oleh user sedangkan server dituliskan oleh programer sistem. Sentral sampai ke disain seluruh software merupakan konsep dari sebuah object, seperti sebuah tipe data abstrak. Setiap object terdiri dari beberapa data yang terkelempok dengan operasi khusus yang terdefinisi. Object dimanejemen oleh server. Ketika sebuah process membuat sebuah object, server yang mengatur object tersebut mengembalikan kepada client sebuah FULSWRJUDSKLFDOO\� SURWHFWHG� FDSDELOLW\ untuk object tersebut. Semua object dalam sistem baik hardware maupun software, diberi nama, diproteksi dan dimanejemen oleh capability. Contohnya adalah file, direktori, segment memori, tampilan windows, processor, disk dan tape drive. ���������2EMHFW�'DQ�&DSDELOLW\�3DGD�$PRHED�Object diberi nama dan diproteksi dengan cara yang sama oleh ticket khusus yang disebut dengan FDSDELOLW\. Untuk membuat sebuah object, sebuah client melakukan RPC dengan server yang dikenalinya untuk menspesifikasikan keinginannya. Server tersebut kemudian membuat object dan mengembalikan sebuah capability kepada client tersebut. Berikut format capability dalam amoeba versi 5.2:

*DPEDU������&DSDELOLW\�3DGD�$PRHED� Ketika client ingin melakukan operasi pada sebuah object, dia akan memanggil prosedur stub yang akan membangun message berisikan cabability dari object dan kemudian memasukan ke dalam kernel. Kernel mengekstrak ruang server port dari capability dan mencari dalam FDFKH-nya untuk menentukan mesin yang akan ditempati oleh server. Jika port tidak ada dalam cache, maka akan dicari dengan broadcasting. Port merupakan alamat logikal di mana server dapat dihubungi. Server port diasosiasikan dengan sebuah server khusus atau kumpulan dari server dan bukan sebuah mesin yang spesifik. Ruang object pada capability digunakan untuk mengidentifikasi spesifik object dalam pertanyaan. Ruang ULJKW adalah bit yang memetakan operasi apa saja yang dibolehkan oleh capability tersebut untuk dilakukan. Ruang FKHFN digunakan untuk men-validasi capability. Capability dimanipulasi langsung oleh processes user. 3URWHNVL�2EMHFW��Ketika sebuah object dibuat, server akan mengambil sebuah ruang FKHFN random dan menyimpannya pada capability baru dan di dalam tabelnya sendiri. Seluruh bit ULJKW dalam

Page 89: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

85 Distributed System and Inter-Operability

__________________________________________________________________________________________ capability baru dikenali, dan merupakan merupakan owner capability yang dikembalikan lagi kepada client.

*DPEDU������*HQHUDVL�6HEXDK�5HVWULFWHG�&DSDELOLW\�'DUL�2ZQHU�&DSDELOLW\� Untuk membuat UHVWULFWHG� FDSDELOLW\, client dapat memberikan kembali sebuah ke server, dengan sebuah bit mask untuk right yang baru. Server mengambil ruang check original dari tabelnya, meng-EXCLUSIVE OR-kannya dengan right baru, dan kemudian menjalankan hasilnya menggunakan sebuah fungsi satu arah. Server kemudian membuat capability baru dengan ruang object yang sama tetapi bit right yang baru dan hasil fungsi satu arah dalam ruang check. Capability baru ini kemudian dikembalikan ke pemanggil. Client bisa mengirimkan capability ini ke process lainnya, jika diinginkan, sebagaimana capability yang diatur secara keseluruhan didalam ruang user. Pengertian ruang right berbeda untuk setiap tipe object di mana operasi legal mereka sendiri juga bervariasi dari tipe object ke tipe object. Ketika restricted capability sampai ke server, server melihat dari ruang right dan ternyat bukan sebuah owner capability karena setidaknya satu bit harus dimatikan. Server kemudian mengambil angka random original dari tabelnya, meng-EXCLUSIVE OR-kannya dengan ruang right dari capability tersebut, dan menjalankan hasilnya menggunakan fungsi satu arah. Jika hasilnya sama dengan ruang check, capability tersebut diterima secara valid. Dari algoritma ini jelas bahwa seorang user yang mencoba menambahkan right yang tidak dimilikinya akan mudah menolak kevalidan capability tersebut. Sebaliknya ruang check dalam sebuah restricted capability akan lebih mungkin untuk mendapatkan argumen (C XOAR 0000001 dalam gambar 4), karena fungsi I merupakan fungsi satu arah (tidak ada algoritma untuk kebalikannya). Dengan menggunakan teknik kriptografi maka capability dapat diproteksi dari gangguan. Meskipun banyak oaperasi pada object tergantung pada tipe object tersebut, ada beberapa operasi yang valid untuk sebagian besar object.

&DOO� 'HVNULSVL�Age Melakukan gerbage collection cycle

Page 90: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

86 Distributed System and Inter-Operability

__________________________________________________________________________________________ Copy Duplikasi object dan mengembalikan sebuah capability sebagai salinan

Destroy Menghancurkan object dan mengklaim kembali penyimpanannya.

Getparams Mengambil parameter untuk digabungkan dengan server

Info Mengambil string ASCI yang mendeskripsikan object lebih jelas

Restrict Menghasilkan sebuah restricted capability baru untuk object

Setparams Menset parameter yang digabungkan dengan server

Status Mengambil status informasi terbaru dari server

Touch Menganggap object baru saja digunakan

*DPEDU������2SHUDVL�6WDQGDU�<DQJ�9DOLG�+DPSLU�3DGD�6HPXD�2EMHFW� ��������0DQDMHPHQ�3URFHVV�'DODP�$PRHED� 3URFHVVHV�Process merupakan sebuah object di dalam Amoeba. Ketika seubah process dibuat, process induk diberikan sebuah capability untuk process anak, sebagaimana halnya dengan pembuatan process baru lainnya. Dengan menggunakan capability ini process anak dapat di ambangkan, restart, ditandai atau dihancurkan. Manajemen process ditangani pada tiga level yang berbeda dalam amoeba. Level yang terendah merupakan SURFHVV� VHUYHU, yaitu kernel thread yang dijalankan pada setiap mesin. Level di atasnya adalah kumpulan dari rekaman prosedur yang memberikan kecocokan interface bagi program-program user. Mereka melakukan pekerjaannya dengan memanggil prosedur interface tingkat rendah. Level selanjutnya adalah dengan menggunakan UXQ�VHUYHU, yang melakukan sebagian besar pekerjaan pencarian di mana untuk menjalankan process baru. Beberapa pemanggilan manajemen process menggunakan sebuah struktur data yang disebut dengan SURFHVV�GHVFULSWRU, untuk memberikan informasi mengenai process yang dijalankan. Ruang pertama dalam process descriptor menunjukkan arsitektur CPU mana process dapat dijalankan. Ruang berikutnya berisikan capability dari owner. Ketika process dihentikan, RPC akan dilakukan menggunakan capability ini untuk melaporkan kejadian tersebut. Process descriptor juga berisikan sebuah descriptor bagi setiap thread dalam process tersebut. Dia berisi program counter dari thread dan stack pointer.

Page 91: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

87 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU������3URFHVV�'HVFULSWRU� 7KUHDG�Tiga metoda yang diberikan kepada thread untuk sinkronisasi adalah: VLJQDO, PXWH[, dan VHPDSKRUH. Signal adalah interupsi asinkronus yang dikirimkan dari satu thread ke thread lainnya dalam process yang sama. Cara kedua dari komunikasi antar thread adalah Mutex yaitu seperti semaphore biner. Dia bisa dalam satu dari dua state, terkunci atau terbuka. Cara yang ketiga adalah menghitung semaphore. Dia lebih lambat dari mutex, tapi ada waktu kapan mereka dibutuhkan. Seluruh thread dimanajemen oleh kernel. Keuntungan disain ini adalah bahwa ketika sebuah thread melakukan RPC, kernel dapat memblok thread tersebut dan menjadwalkan yang lainnya dalam process yang sama jika thread lain tersebut telah siap. Penjadwalan thread dilakukan dengan menggunakan prioritas, di mana thread-thread kernel mendapatkan prioritas lebih tinggi dibandingkan thread dari user. �������0DQDMHPHQ�0HPRUL�'DODP�$PRHED� 6HJPHQWV�Process memiliki beberapa call yang tersedia untuk memanejemen segment. Call yang terpenting diantaranya adalah kemampuan untuk membuat, menghancurkan, membaca dan menuliskan segment. Ketika segment dibuat, si pemanggil mendapatkan kembali sebuah capability untuk itu. Capability ini digunakan untuk pembacaan dan penulisan segment dan untuk semua call yang melibatkan segment ini. Karena segment dapat dibaca dan ditulis, memungkinkan menggunakan mereka untuk membangun sebuah memori utama dari file server.

Page 92: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

88 Distributed System and Inter-Operability

__________________________________________________________________________________________ 3HPHWDDQ�VHJPHQWV�Ruang address virtual dalam amoeba dibangun dari segment. Ketika sebuah process dimulai, dia harus memiliki setidaknya satu segment. Saat ini terjadi process dapat membuat segment-segment tambahan dan memetakan mereka ke dalam ruang alamat virtualnya yang belum digunakan.

*DPEDU������6HEXDK�3URFHVV�'HQJDQ�7LJD�6HJPHQW�<DQJ��'LSHWDNDQ�.HGDODP�5XDQJ�$GGUHVV�9LUWXDO�

Sebuah process dapat juga tidak memetakan segment. Process dapat menspesifikasikan jarak dari virtual address dan request yang jaraknya belum dipetakan, setelah address itu semua tidak lagi bersifat legal. Ketika segment atau jarak dari address tidak dipetakan, capability dikembalikan sehingga segment masih dapat diakses, atau bahkan dipetakan lagi kemudian, mungkin dalam virtual address yang berbeda. Sebuah segment bisa dipetakan ke dalam ruang address dari dua atau lebih process pada saat yang sama. Hal ini membolehkan process untuk bekerja dengan berbagi memori dengan yang lain. Tetapi biasanya lebih baik untuk membuat sebuah process tunggal dengan sejumlah thread ketika pembagian memori diperlukan. Alasan utama untuk memiliki process yang berbeda adalah untuk proteksi yang lebih baik, tetapi jika dua process berbagi memori, proteksi secara umum tidak lagi diharapkan. �

Page 93: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

89 Distributed System and Inter-Operability

__________________________________________________________________________________________ �������.RPXQLNDVL�'DODP�$PRHED� 5HPRWH�3URFHGXUH�&DOO��53&��Komunikasi point-to-point yang normal dalam Amoeba terdiri dari sebuah client mengirimkan message ke server dilanjutkan dengan balasan balik dari server ke client tersebut. Tidak mungkin bagi client hanya mengirimkan sebuah message dan kemudian melakukan hal yang lain tanpa melewati RPC interface, di mana hanya dilakukan di bawah kondisi yang sangat khusus. RPC primitive yang mengirimkan request secara otomatis akan memblok sipemanggil sampai balasannya datang, sehingga memaksa sejumlah struktur tertentu pada program. Pemisahan pengiriman dan penerimaan primitif dapat dibayangkan sebagai jawaban sistem terdistribusi untuk JRWR VWDWHPHQW��SDUDOOHO�VSDJKHWWL�SURJUDPPLQJ� Supaya thread dari client dapat melakukan RPC dengan thread server, client tersebut harus mengetahui alamat server tersebut. Pengalamatan dilakukan dengan membolehkan thread manapun untuk memilikh sebuah bilangan random 48 bit, disebut port, untuk digunakan sebagai alamat bagi message untuk dikirimkan. Sebuah port tidak lebih dari sekedah jenis logika dari alamat thread. Tidak ada struktur data dan ruang penyimpanan yang digabungkan dengan sebuah port. Hal ini sama dengan alamat IP atau alamat Ehernet, kecuali tidak ada lokasi fisik khusus yang mengikat. Mekanisme RPC menggunakan tiga primitif kernel:

• get_request : mengindikasikan keinginan server untuk memantau port. • put_reply : dilakukan oleh server ketika dia memiliki balasan untuk dikirim. • trans : mengirim sebuah message dari client ke server dan menunggu balasannya.

*DPEDU�������+HDGHU�<DQJ�'LJXQDNDQ�3DGD�6HOXUXK�5HTXHVW�'DQ�5HSO\�0HVVDJH� Ketika server ingin diam menanti kedatangan request, dia memanggil JHWBUHTXHVW. Ketika sebuah message ditransmisikan melewati jaringan, dia akan berisikan sebuah header dan data buffer (opsional), dengan panjang struktur header adalah tetap 32 byte. Sebelum membuat

Page 94: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

90 Distributed System and Inter-Operability

__________________________________________________________________________________________ panggilan JHWBUHTXHVW, server tersebut harus menginisialisasi ruang port header untuk menetapkan port mana yang akan dipantau. Kedatangan header akan menghapus header yang diinisialisasi oleh server tersebut. Ruang VLJQDWXUH digunakan untuk tujuan autentifikasi, tetapi tidak selalu digunakan. Ruang FRPPDQG secara konvensional digunakan pada request untujk mengindikasikan operasi mana yang diperlukan.

*DPEDU������+XEXQJDQ�$QWDUD�JHW�SRUW�'DQ�SXW�SRUW� Ketika server melakukan JHWBUHTXHVW, put-port yang berkaitan dihitung oleh kernel dan disimpan didalam tabel port yang telah dipantau. Seluruh request WUDQV menggunakan put-port, sehingga ketika paket datang pada mesin, kernel akan membandingkan put-port dalam header dengan put-port dalam tabelnya untuk melihat kesamaan. .RPXQLNDVL�*UXS�GDODP�$PRHED�Grup dalam amoeba terdiri dari satu atau lebih process yang saling bekerja sama untuk melaksanakan tugas atau memberikan beberapa service. Process dapat menjadi anggota dari beberapa grup pada saat yang sama. Grup ditutup artinya, hanya anggota yang dapat broadcast ke grup. Anggota kemudian menggunakan komunikasi grup bersama-sama, jika diperlukan untuk menentukan siapa yang akan melakukan sesuatu. Disain ini dipilih untuk memberikan derajat transparansi yang lebih bagus dibandingkan dengan struktur grup terbuka. Secara normal dalam struktur grup terbuka, client menggunakan RPC untuk berbicara dengan server secara individu, dan juga menggunakan RPC untuk berbicara kepada grup. Sedangkan dalam amoeba, RPC digunakan untuk berbicara ke server tunggal dan menggunakan komunikasi grup untuk berbicara kepada server grup. Berikut ini primitif komunikasi grup:

&DOO� 'HVNULSVL�CreateGroup Membuat grup baru dan menyetel parameternya

JontGroup Membuat si pemanggil menjadi anggota dari sebuah grup

LeaveGroup Membuang si pemanggil dari keanggotaan grup

Page 95: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

91 Distributed System and Inter-Operability

__________________________________________________________________________________________ SendToGroup Mengirim message dengan handal ke seluruh anggota grup

ReceiveFrom Group Memblok diri sampai sebuah message datang dari sebuah grup

ResetGroup Memulai recovery setelah sebuah process gagal/hancur

*DPEDU�������3ULPLWLI�.RPXQLNDVL�*UXS�'DODP�$PRHED�

Amoeba bekerja prima pada LAN di mana mendukung baik multicasting maupun broadcasting. Ide dasar dari pembentukan basis implementasi komunikasi grup adalah broadcasting yang handal. Konfigurasi hardware dan software yang diperlukan untuk broadcating ini ditunjukkan pada gambar 15.11.

*DPEDU�������6WUXNWXU�6LVWHP�8QWXN�.RPXQLNDVL�*UXS�'DODP�$PRHED� Urutan kejadian untuk mencapai broadcasting yang handal adalah :

(1) Process user memasuki kernel, untuk melewatkan message (2) Kernel menerima message dan memblok process user (3) Kernel mengirim message point-to-point ke sequencer (4) Ketika sequencer menerima message, dia mengalokasikannya ke nomor sequence

yang tersedia, menempatkan nomor sequence di dalam ruang header yang disediakan untuk itu, dan broadcast message tersebut.

(5) Ketika pengiriman terjadi kernel melihat message broadcast, dia akan membuka blokir process pemanggilan untuk membiarkannya melanjutkan eksekusi.

Ketika process dari applikasi mengeksekusi sebuah primitif broadcasting, misalnya VHQG7R*URXS, sebuah penangkapan ke kernel terjadi. Kernel tersebut kemudian memblokir si pemanggil dan membangung sebuah message yang berisikan sebuah header pensuplai kernel dan data pensuplai applikasi. Header tersebut terdiri dari tipe message, sebuah identifikasi message yang bersifak unik, nomor broadcast terakhir yang diterima oleh kernel, dan beb erapa informasi lainnya. Kernel mengirimkan message ke sequencer menggunakan point-to-point normal message, dan secara simultan akan mengaktifkan timer. Jika broadcast datang kembali sebelum waktu timer habis, kernel yang mengirim akan menghentikan timer dan mengembalikan kontrol kepada si pemanggil.

Page 96: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

92 Distributed System and Inter-Operability

__________________________________________________________________________________________ Jika boradcast tidak datang lagi setelah timer berakhir, kernel akan mengasumsikan bahwa message atau broadcast telah hilang, sehingga memerlukan transmisi ulang. Kemungkinan lainnya adalah, sebuah broadcast datang sebelum timer berakhir, tetapi ternyata broadcast yang lain. Situasi ini akan sering terjadi ketika dua process melakukan broadcast secara simultan. Ketika kernel menerima broadcast, nomor urutannya akan dicocokan dengan normor urut yang ingin diterimanya. Jika nomor tersebut cocok, maka message tersebut akan diberikan ke program aplikasi, dengan asumsi dia akan menunggu atau dimasukan dalam antrian buffer, sampai program memanggil 5HFHLYH)URP*URXS. Tetapi jika nomor urut tersebut lebih tinggi dari yang diharapkan, kernel akan segera diberitahu bahwa nomor sebelumnya telah hilang, seingga dia akan mengirim message point-to-point kepada sequencer untuk meminta retransmisi khusus terhadap message yang hilang tersebut. Sequencer akan mencari message yang hilang tersebut dalam buffer KLVWRU\-nya dan mengirimkannya ke kernel. Ketika message yang diharapkan sampai, maka kernel kemudian memproses message tersebut bersama-sama dengan message sebelumnya dengan memberikannya ke pada program aplikasi dalam urutan numerik. Pada gambar 15.12, applikasi dari mesin A mengirim sebuah message ke sequencer, yang kemudian menambahkan nomor sekuensial (25) dan mem-broadcast-kannya. Pada B message diterima tetapi pada C, message dimasukkan ke dalam buffer sampai nomor sekuensial 24 diterima dimana terjadi kegagalan

���� ����� ������ ����� �����

������� �� �!�" �#

�������� �� �! $ ��� ��� %

�" �#

�" �#

������� �� �!&

�" �#

������� �� �' �" �#(

)+*�,�-�* ��� * �+������.� � * �" �#

/ *�,�-�* ����0 ��� �!

*DPEDU�������3URWRNRO�%URDGFDVW�� Ada dua metoda cara untuk melakukan broadcast, yaitu :

Page 97: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

93 Distributed System and Inter-Operability

__________________________________________________________________________________________

• User mengirimkan message point-to-point kepada sequencer dan kemudian sequencer membroadcast message tersebut. Jadi message berada dalam keseluruhan jaringan dua kali, sehingga bisa menghabiskan bandwidth jaringan yang lebih besar.

• User broadcast message bersama-sama dengan identifier yang bersifat unik. Ketika sequencer melihatnya, dia akan membroadcast message DFFHSW khusus yang berisikan identifier unik dan menandakan urutan nomor yang baru diterimanya. Message berada dalam jaringan hanya sekali saja, ditambah dengan message DFFHSW yang sangat pendek.

�)DVW�/RFDO�,QWHUQHW�3URWRFRO��)/,3��Amoeba menggunakan protokol khusus yang disebut dengan FLIP untuk transmisi message yang aktual. Protokol ini menangani baik RPC maupun komunikasi grup dan protokol ini berada dibawah keduanya dalam hirarki protokol. Dalam OSI FLIP merupakan potokol layer jaringan sedangkan RPC lebih dari FRQQHFWLRQOHVV� WUDQVSRUW atau protokol VHVVLRQ. Secara konsep FLIP dapat diganti dengan protokol jaringan lainnya seperti IP meskipun akan berakibat berkurangnya transparansi dari amoeba.

,WHP� 'HVNULSVL�RPC Protokol harus mendukung RPC

Komunikasi Grup Protokol harus mendukung komunikasi grup

Perpindahan process Process harus dapat membawa alamatnya sekaligus

Sekuritas Process tidak boleh dapat menyerupai process lainnya.

Manajemen jaringan Dukungan diperlukan untuk rekonfigurasi secara otomatis

Wide Area network Protokol harus dapat bekerja pada jaringan yang lebih luas seperti WAN

*DPEDU�������.DUDNWHULVWLN�3DGD�3URWRNRO�6LVWHP�7HUGLVWULEXVL�

Kernel terdiri dari dua layer. Layer atas menangani panggiran dari process user untuk layanan RPC atau komunikasi grup, sedangkan layer bawah menangani protokol FLIP.

*DPEDU�������6LVWHP�)/,3�'HQJDQ�/LPD�%XDK�0HVLQ�'DQ�'XD�-DULQJDQ�

Page 98: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

94 Distributed System and Inter-Operability

__________________________________________________________________________________________ Seluruh komunikasi level rendah memiliki satu alamat FLIP: sebuah bilangan random yang dipilih oleh sistem ketika process dibuat. Jika process migrasi, dia akan membawa alamat FLIP bersamanya. Jika jaringan dikonfigurasi ulang, sehingga semua mesin menunjukkan nomor jaringan (hardware) yang baru, alamat-alamat FLIP tetap tidak berubah. Jadi alamat FLIP mengindikasikan sebuah process secara unik, sehingga membuat komunikasi dalam amoeba tidak sensitif terhadap perubahan dalam topologi jaringan dan pengalamatan jaringan. Alamat FLIP merupakan kesatuan dari dua alamat, public address dan private address: 3XEOLF�DGGUHVV� �'(6�3ULYDWH�DGGUHVV�, di mana DES adalah singkatan dari 'DWD�(QFU\SWLRQ�6WDQGDUG.

7,3(�3$1**,/$1� '(6.5,36,� $5$+�Init Mealokasikan sebuah slot tabel ↓

End Kembali ke slot tabel ↓

Register Mengawasi/melihat alamat FLIP ↓

Unregister Selesai mengawasi ↓

Unicast Mengirim message point to point ↓

Multicost Mengirim message secara multicost ↓

Broadcast Mengirim message secara broadcast ↓

Receive Paket diterima ↑

Notdeliver Paket yang akan diterima tidak sampai ↑

*DPEDU�������3DQJJLODQ�<DQJ�'LVHGLDNDQ�2OHK�/D\HU�)/,3� Paket-paket yang dilewatkan oleh layer RPC atau layer komunikasi grup kepada layer FLIP dialamatkan oleh alamat-alamat FLIP, sehingga layer FLIP harus dapat mengkonversi alamat-alamat ini ke dalam alamat jaringan untuk transmisi yang aktual. Untuk melakukan fungsi ini, FLIP layer akan menjaga sebuah tabel routing yang dapat dioperasikan melalui software maupun hardware (disain masa depan). Ketika terjadi kedatangan sebuah paket pada mesin manapun, pertama kali ditangani oleh layer FLIP, yang kemudian mengekstrak alamat FLIP-nya dan alamat jaringan pengirim. Jumlah hop paket tersebut juga direkam. Jika hitungan hop bertambah hanya ketika paket dikeluarkan oleh sebuah gateway, jumlah hop akan menandakan berapa banyak gateway yang telah dilalui oleh paket. Jika alamat FLIP belum tercantum di dalam tabel routing, maka alamat tersebut akan dimasukan ke dalam tabel agar dapat digunakan kemudian untuk mengirimkan paket ke alamat FLIP tersebut, apabila nomor jaringan dan alamatnya tidak dikenal. Pengalokasian put-port membutuhkan dua tingkatan pemetaan, yaitu: (1). Dari put-port tersebut ke alamat FLIP (dilakukan oleh layer RPC) (2). Dari alamat FLIP ke alamat jaringannya (dilakukan oleh layer FLIP) Alasan dibutuhkan dua pemetaan tersebut adalah; Pertama, FLIP dirancang sebagai protokol untuk tujuan umum untuk digunakan dalam sistem terdistribusi. Alasan kedua adalah seubah

Page 99: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

95 Distributed System and Inter-Operability

__________________________________________________________________________________________ put-port lebih cenderung dikenal sebagai sebuah VHUYLFH dibandingkan dengan sebuah server. Service bisa diberikan oleh banyak server untuk meningkatkan performansi dan reliabilias.

*DPEDU�������/$1�'LKXEXQJNDQ�'HQJDQ�:$1� FLIP juga bekerja secara transparan dalam ZLGH�DUHD�QHWZRUN��:$1�. Komunikasi selama di dalam WAN dimasukan dalam protokol apapun yang diperlukan WAN. Meskipun metoda ini tidak diperuntukan bagi ribuan LAN, untuk jumlah tertentu dia bekerja dengan sangat baik. Komunikasi grup juga menggunakan FLIP, di mana ketika sebuah message dikirimkan ke berbagai tujuan, FLIP menggunakan hardware multicast atau broadcast pada jaringan tersebut jika tersedia. Jika dalam jaringan tidak tersedia, maka broadcast disimulasikan dengan mengirim message satu persatu. Pemilihan mekanisme dilakukan oleh layer FLIP, dengan menggunakan semantik user yang sama dalam semua kasus. �������6HUYHU�$PRHED� %XOOHW�6HUYHU�Di dalam amoeba, pemilihan sistem file tidak diatur oleh sistem operasi. Sistem file bekerja sebagai kumpulan dari process server. Kernel tidak mengetahui, atau tidak peduli, mana yang sistem file sebenarnya. Standar sistem file terdiri dari tiga server, bullet server yang menangani penyimpanan file, directory server yang menangani penamaan file dan manajemen direktori, dan replication server yang menangani replikasi file. Bullet server dirancang untuk bekerja sangat cepat dan juga untuk dapat bekerja pada mesin yang memiliki memori dan disk yang sangat besar. Organisasinya pun sangat berbeda dengan file server konvensional, khususnya filenya bersifat LPPXWDEOH. File-file yang telah dibuat tidak bisa dimodifikasi di mana ukuran dari sebuah file diketahui ketika pembuatan file tersebut. Sifat ini memudahkan file untuk disimpan pada disk secara singkat dan juga dalam cache memori utama. Sehingga file tersebut dapat dibaca pada memori dalam operasi disk tunggal dan dapat dikirim dalam sebuah balasan message RPC tunggal.

&DOO� 'HVNULSVL�Create Membuat file baru; opsinya adalah memberi sifat commit dengan baik.

Read Membaca semuanya aau sebagaian dari file yang dispesifikasikan

Size Mengembalikan ukuran dari file yang dispesifikasikan

Page 100: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

96 Distributed System and Inter-Operability

__________________________________________________________________________________________ Modify Mengganti n byte dari sebuah file uncommitted

Insert Memasukan n byte ke dalam sebuah uncommitted file

Delet Menghapus n byte dari sebuah uncommitted file

*DPEDU�������3DQJJLODQ�'DODP�%XOOHW�6HUYHU� Model konsep di balik sistem file tersebut adalah bagaimana sebuah client dapat membuat seluruh file-nya di dalam memorinya sendiri, dan mentransmisikannya dalam sebuah RPC tunggal ke bullet server, yang menyimpannnya dan mengembalikan sebuah capability untuk pengaksessan file tersebut di kemudian waktu. Untuk memodifikasi file tersebut, client mengirim kembali capability dan meminta file tersebut, yang kemudian dikirim di dalam satu RPC ke memori client. Client tersebut dapat memodifikasi apapun dari file tersebut secara lokal. Setelah selesai dimodifikasi, client mengirim file ke server (idealnya) dalam satu RPC, sehingga menyebabkan terjadinya file baru dengan capability yang baru juga. Sehingga client dapat meminta server untuk menghancurkan file asli (sebelum dimodifikasi), atau menyimpannya sebagai file backup. Dalam bullet server terdapat dua jenis file, XQFRPPLWWHG� ILOH� yaitu yang dibuat di dalam process di mana file tersebut dapat diubah-ubah, dan FRPPLWWHG�ILOH yaitu file yang bersifat permanen. RPC yang melakukan FUHDWH� harus segera menspesifikasikan mana file yang committed dan mana yang tidak. Berikut ini bagaimana bullet server menjaga sebuah tabel file dengan satu masukan tiap filenya, dapat dianalogikan dengan i-node table dalam unix.

1+2+3+4+5 67 6+2�8:91+2+3+4+5 67 6+2�8:91+2+3+4+5 67 6+2�8:91+2+3+4+5 67 6+2�8:9

;

<

=

>?A@ B 2=

?A@ B 2<?A@ B 2;

?A@ B 2C:D:EAB 2

7 D�8:6�2

FG@ H:9

IGJAB B 2�5H+2:K L:2:K MNO2+PRQ�K S

7 Q�3�5 @ 4�J+Q�J�HT @ B 2

*DPEDU�������,PSOHPHQWDVL�6HUYHU�%XOOHW� Ketika sebuah process client ingin memaca sebuah file, dia mengirimkan capability untuk file tersebut ke bullet server. Server kemudian mengekstrak nomor object dari capability dan menggunakannya sebagai indeks ke dalam tabel file untuk melokasikan masukan untuk file tersebut. Masukan terdiri dari angka random dalam ruang check capability, yang kemudian digunakan untuk memverifikasikan apakah capability tersebut valid. Jika capability tidak valid, maka operasi tersebut dihentikan dengan sebuah kode error. Dan jika valid, seluruh file dipindahkan ke cache memori, kecuali telah ada sebelumnya. Ruang cache dimanajemen

Page 101: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

97 Distributed System and Inter-Operability

__________________________________________________________________________________________ menggunakan LRU, tetapi asumsi implisitnya adalah cache biasanya cukup besar untuk menampung kumpulan file yang sedang digunakan. Jika file dibuat tetapi capabilitynya hilang/rusak, file tersebut tidak akan pernah dapat diakses dan akan tinggal selamanya di dalam disk. Untuk menghindari situasi ini, digunakan sebuah skema WLPHRXW. Sebuah file uncommitted yang tidak diakses selama 10 menit akan dihapus dan tabel masukannya dibersihkan. Jika sebuah masukan digunakan kembali sebagian oleh file yang lain dan capabilitynya telah lebih dari 15 menit, ruang check-nya akan mendekteksi bahwa file telah berubah dan operasi pada file lama akan ditolak. Pendekatan ini dpat diterima karena file secara normal ada dalam status uncommitted hanya untuk beberapa detik saja. Sedangkan untuk commited file, digunakan metoda penurunan jumlah akses dalam sebuah counter. Secara periodik seubah daemon melakukan RPC dengan bullet server meminta untuk melakukan operasi standar umur counter dan menyebabkan bullet server mengurangi setiap counter dengan 1. File mana pun yang memiliki counter dengan jumlah 0 akan dihancurkan dan disk, tabel dan cachenya akan di bebaskan dari file tersebut. Untuk menjaga mekanisme tersebut menghapus file yang sedang digunakan, maka digunakan operasi lainnya yang disebut dengan touch. Berbeda dengan operasi umur yang diberlakukan pada semua file, operasi touch hanya dilakukan pada file yang spesifik. Fungsi dari operasi ini adalah mereset counter ke jumlah maksimum (0$;B/,)(7,0(). Touch dipanggil secara periodik untuk seluruh file yang tercantum dalam daftar direktori manapun, untuk menjaga mereka dari time out. ���'LUHFWRU\�6HUYHU�Fungsi utama dari directory server adalah untuk memberikan sebuah pemetaan dari nama yang bisa dibaca manusia (ASCII) ke capability. Process dapat membuat satu atau lebih direkrori yang masing-masing terdiri dari beberapa lajur. Setiap lajur mendeskripsikan satu object dan diisi dengan nama object beserta capability-nya. Operasi disediakan untuk membuat dan menghapus direktori, menambah dan menghapus lajur, dan pencarian nama dalam direktori. Berbeda dengan file bullet, direktori tidak bersifat LPPXWDEOH. Masukan dapat ditambahkan dan dihapus dari direktori yang ada.

6WULQJ�$6&,�� &DSDELOLW\�6HW� 2ZQHU� *UXS� /DLQQ\D�

Mail 1111 0000 0000

Games 1111 1110 1110

Exams 1111 0000 0000

Papers 1111 1100 1000

Commitees 1111 1010 0010

*DPEDU�������7LSLNDO�'LUHNWRUL�<DQJ�'LDWXU�2OHK�'LUHFWRU\�6HUYHU� Direktori sendiri merupakan object dan diproteksi oleh capability sebagaimana object lainnya. Operasi pada sebuah direktori, misalnya pencarian nama dan penambahan masukan, diproteksi oleh bit-bit dalam ruang ULJKW. Capability dari direktori bisa disimpan dalam direktori lainnya, mengikuti GLUHFWRU\�WUHHV�secara hirarki dan struktur yang lebih umum.

Page 102: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

98 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�������+LUDUNL�'LUHNWRUL�$PRHED�� Sebuah masukan direktori dapat menamakan segala jenis object yang dideskripsikan oleh sebuah capability. Server direktori tidak mengetahui dan memperdulikan apapun jenis kontrol capability object tersebut. Object dalam sebuah direktori tidak harus merupakan jenis yang sama atau seluruhnya tidak harus dimanajemen oleh server yang sama. Ketika sebuah capability ditempatkan, servernya dicari melalui broadcasting. Sebuah lajur bisa terdiri tidak hanya dari satu capability, tetapi seluruh kumpulan dari capability. Umumnya capability ini sebagai salinan yang identik dari suatu object dan di manajemen oleh server yang berbeda. Sebuah lajur bisa terdiri dari beberapa kolom, masing-masing membentuk domain proteksi yang berbeda dan memiliki hak yang berbeda juga. Dalam sistem terdistribusi mana pun jua, terutama yang dipakai dalam WAN, sulit untuk mendapatkan konsep tunggal, JOREDO�URRW�GLUHFWRU\. Dalam amoeba, setiap user memiliki root directory-nya masing-masing (lihat gambar 15.20), yang terdiri dari capability tidak hanya bagi direktori pribadi user, tetapi juga bagi segala macam direktori publik yang berisikan program-program sistem dan file-file yang disharing lainnya. Directory server merupakan komponen yang paling kritis dalam sistem amoeba, sehingga membutuhkan sebuah IDXOW�WROHUDQW pada cara pengimplementasiannya. Struktur data dasarnya merupakan array dari pasangan capability yang tersimpan pada sebuah UDZ�GLVN�SDUWLWLRQ.

Page 103: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

99 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�������3DVDQJDQ�'LUHFWRU\�6HUYHU�

Ketika sebuah direktori dibuat, nomor object yang dimasukan ke dalam capabilitynya merupakan indeks masuk ke dalam array. Ketika direktori disajikan, server menginspeksi nomor object tersebut dan menggunakannya untuk mendapatkan hubungan dengan pasangan capability dalam array. Capability tersebut adalah untuk file-file yang identik, disimpan pada beberapa bullet server yang berbeda, yang masing-masing berisikan direktori dan ruang check yang digunakan untuk menverifikasikan otentikasi dari capability direktori tersebut. Jika sebuah direktori berubah, file bullet yang baru akan dibuat untuk itu, dan array pada raw disk partition akan ditulis ulang. Salinannya akan dibuat kemudian oleh sebuah EDFNJURXQG�WKUHDG. Kemudian direktori yang lama akan dihancurkan sehingga dapat memberikan derajat reabilitas yang lebih tinggi sistem file tradisional. Metoda ini mengeliminasi kebutuhan menyimpan capability dalam jumlah yang besar. Bagaimanapun cache directory server masih sangat diperlukan capability untuk menghindari penggunaan yang tidak perlu dari fungsi satu arah. 5HSOLFDWLRQ�6HUYHU� Object yang dimanejemen oleh directory server dapat di replikasi otomatis dengan menggunakan replication server melalui metoda OD]\� UHSOLFDWLRQ. Artinya ketika sebuah file atau object lainnya dibuat, awalnya hyanya satu salinan yang dibuat. Kemudian server replication dapat diperintahkan untuk membuat replikans yang identik ketika dia memiliki waktu luang. Meskipun kerjanya membutuhkan pemanggilan langsung, replication server masih tetap bekerja dalam background sepanjang waktu, scanning bagian spesifik dari sistem direktori secara periodik. Jika dia menemukan sebuah masukan direktori yang lebih sedikit dari yang seharusnya terdiri dari Q capability, maka dia akan menghubungi server yang relevan dan mengatur bagi salinan tambahan yang dibuat. 5XQ�6HUYHU�Ketika user mengetikan sebuah command pada terminal, dua keputusan yang harus dibuat adalah:

(1) pada tipe arsitektur apa process harus dijalankan. (2) Processor mana yang dipilih untuk menjalankannya.

Page 104: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

100 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU��������D��3URFHVVRU�3RRO��E��+XEXQJDQ�SRROGLU� setiap run server memanejemen satu atau lebih processor pool. Sebuah processor pool dipresentasikan oleh sebuah direktori yang disebut pooldir, yang berisikan subdirektori untuk setiap arsitektur CPU yang disediakan. Subdirektori berisikan capability untuk mengakses process server pada setiap mesin di dalam pool, sebagaimana diperlihatkan oleh gambar 22. Run server akan melihat ke dalam pooldir untuk melihat apa saja yang dimilikinya. Pemilihannya akan dibuat berdasarkan tiga kriteria berikut:

(1) Interseksi dari process descriptor dan pool processor dihitung. (2) Run server akan mencek untuk melihat kandidat mana yang memiliki memori yang

cukup untuk menjalankan program tersebut. (3) Estimasi kemampuan komputasi yang dapat digunakan untuk mendapatkan program

baru. ��������.HVLPSXODQ�Amoeba adalah suatu sistem operasi yang dirancang untuk sebuah lingkungan yang terdiri atas banyak komputer. Hal-hal yang dapat disimpulkan dari sistem operasi Amoeba, antara lain : )LWXU�$UVLWHNWXU�$PRHED�

• Perhitungan terdistribusi yang transparan menggunakan jumlah yang besar dari prosesor

• Perhitungan paralel didukung sebaik perhitungan terdistribusi • Arsitektur Mikrokernel dan server • Performansi RPC yang tinggi menggunakan protocol FLIP • Komunikasi grup yang dapat dipercaya • Mendukung sistem heterogen • Konfigurasi jaringan transparan dan otomatis

3HUDQJNDW�/XQDN�/HYHO�3HQJJXQD�

• Berbasiskan obyek�• Multi thread pada setiap ruang alamat�

Page 105: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

101 Distributed System and Inter-Operability

__________________________________________________________________________________________

• File dan direktori server telah dilengkapi�• Mendukung X Windows release 5�• Mendukung TCP/IP�• Dilengkapi dengan ANSI C, Pascal, FORTRAN 77 dan Modula 2 Compilers serta

referensinya �• Bahasa untuk pemrograman paralel tersedia�

81,;�

• Integrasi yang baik dengan sistem UNIX yang ada�• Amoeba dapat berbicara dengan UNIX via TCP/IP�• Driver tersedia untuk UNIX Sun sehingga UNIX dapat secepat protokol RPC Amoeba�• Terminal X dapat memiliki kedua UNIX dan windows Amoeba secara bersamaan�• Emulasi UNIX parsial tersedia�• Lebih dari 100 perangkat seperti UNIX tersedia�• Source code yang penuh tersedia dalam semua distribusinya�• Lisensi AT&T tidak dibutuhkan�• Komersial terbatas tersedia�• Amoeba telah memperoleh lisensi oleh organisasi Amerika, Eropa dan Jepang�

�.HOHPDKDQ�$PRHED�

• Dalam hal sistem biner tidak kompatibel dengan UNIX • Tidak ada virtual memori • Bekerja sangat buruk saat memori overload • Tidak mendukung NFS • Baik untuk eksperimen namun tidak direkomendasikan untuk aplikasi sistem produksi

secara total 'DIWDU�3XVWDND�

1. Tanenbaum, A.S., "Distributed Operating System", IEEE, Chapter 7, 1986. 2. Tanenbaum, A.S., "The Amoeba Distributed Operating System", Journal,

Amsterdam, 1990.

�����0$&+���������6HMDUDK�0DFK�Perkembangan Mach dimulai dari proyek Mach di Universitas Carnegie-Mellon yang merupakan proyek setelah RIG dan Accent. RIG sendiri dikembangkan Universitas Rochester tahun 1970 dan Accent pada tahun 1980-an di universitas Carnegie-Mellon. Berbeda dengan RIG, Accent maupun Amoeba, maka proyek Mach ni tidak di set secara total untuk suatu system operasi terdistribusi yang lengkap.

Page 106: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

102 Distributed System and Inter-Operability

__________________________________________________________________________________________ Mach versi 2.5 yang pertam kali dikeluarkan dapat berjalan pada SUN-3, IBM RT PC, multiprocessor dan uniprocessor system VAX dan Encore Multimax dan juga Sequent multiprocessor.. Sejak tahun 1989 Mach versi 2.5 ini dapat berjalan pada teknologi yang berbasis pada OSF/1. Sedangkan Kernel Mach versi 3 dapat berjalan pada Intel 386 dan 486, DECStation 3100 dan 5000, Motorola 88000 yang berbasis komputer serta SUN SPARCStation. Versi 3 ini dibuat dengan mempertimbangkan persaingan user-level dalam suatu system operasi, system database serta parameter lainnya. ��������7XMXDQ�'DQ�)HDWXUH�0DFK���7XMXDQ�GDUL�0DFK�

- Dibuat sebagai pelengkap bagi suatu system operasi yang lain. - Untuk mendukung ODUJH�VSDUVH dan DGGUHV�VSDFH - Bersifat transparan dalam hal akses resource dalam suatu jaringan. - Adanya pemakaian system yang bersifat paralel baik dalam system maupun dalam

aplikasi - Menjadikan Mach sebagai system yang SRUWDEOH dengan mengandung banyak

mesin. �)HDWXUH�0DFK��

• Adanya operasi multiprocessor Bahwa Mach didesain untuk dapat melakukan VKDUHG� PHPRU\� PXOWLSURFHVVRU sehingga baik kernel threads dan user-mode threads dapat dijalankan oleh beberapa processor. Mach juga memelihara model PXOWL�WKUHDGV atau adanya pemrosesan user yang dilakukan oleh suatu lingkungan yang kemudian disebut dengan call.

• Sifat transparan dalam jaringan Mach menggunakan ORFDWLRQ�LQGHSHQGHQW dalam model komunikasinya dengan cara menjadikan port sebagai suatu tujuan. Sehingga akan dapat memfasilitasi suatu distributed programs yang bersifat tranparan antara uniprocessor-uniprocessor dan multiprocessor-multiprocessor dalam suatu jaringan.

����������*DPEDU�������.RPXQLNDVL�7DVN�'DQ�7KUHDGV�3DGD�0DFK�

Page 107: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

103 Distributed System and Inter-Operability

__________________________________________________________________________________________

• Server yang bersifat XVHU�OHYHO�Mach mengimplementasikan model yang bersifat REMHFW�RULHQWHG yang mana suatu resource akan diatur baik oleh kernel ataupun G\QDPLFDOO\�ORDGHG�VHUYHUV�

• Persaingan Sistem operasi Untuk mendukung persaingan binary-level antara Unix dan sistem operasi yang lain, maka Mach menggunakan transparent redirection dari calls suatu system operasi.

• Implementasi virtual memory Mach menggunakan virtual memori yang di UH�PDSSLQJ untuk mentransfer isi dari suatu PHVVDJH dengan menggunakan virtual copy, copy-on-writer yang digunakan untuk menghindari atau men-delay pengkopian data yang terbaru. Keuntungan yang diperoleh dari cara ini adalah dapat meningkatkan flexibilitas dalam managemen memori untuk suatu user program serta untuk memperbaiki performansi pengiriman PHVVDJH melalui Unix. Dan keuntungan yang terakhir tersebut adalah akan lebih mudah dalam migrasi suatu task.

• Bersifat SRUWDEOH�Bahwa Mach didesain untuk dapat SRUWDEOH (praktis) sehingga dapat diletakan pada berbagai hardware platform. Juga adanya pembagian kode virtual memori ke dalam machine-independent dan bagian suatu machine-dependent.

�������,VWLODK�'DODP�0DFK��

• 7DVN : eksekusi dari suatu lingkungan. Terdiri dari ruang alamat yang terlindungi dan sekumpulan kemampuan NHUQHO�PDQDJHG yang digunakan untuk mengakses port.

• 7KUHDG : Task dapat berisi banyak thread. Thread termasuk dalam single task yang dapat dieksekusi dengan cara parallel di processor yang berbeda dalam multiprocessor shared memory .

• 3RUW� : Port dalam Mach bersifat unicast, merupakan channel komunikasi yang unidirectional (tidak langsung) dengan menggunakan antrian PHVVDJH. Port tidak diakses secara langsung oleh programmer Mach dan juga bukan bagian dri task.

• 3RUW� VHW : Kumpulan dari port UHFHLYH� ULJKWV local untuk task yang digunakan untuk menerima PHVVDJH dari suatu kumpulan port. Port set berbeda dengan port group.

• 0HVVDJH : merupakan kumpulan object data yang digunakan untuk komunikasi antar thread (yang dapat berisi SRUW�ULJKWV untuk suatu data).

• 2EMHFW�PHPRUL : Setiap UHJLRQ dalam ruang virtual addres dalam Mach berhubungan dengan object memori. Object memori merupakan instant dari tipe abstract data yang mengandung operasi fetch dan di dalamnya ada data yang tersimpan.

• 0HPRU\� FDFKH� REMHFW : Setiap pemetaan object memori, ada object kernel-managed yang berisi FDFKH�RI�SDJH yang berhubungan dengan UHJLRQ yang berada di memori utama. Hal ini yang disebut sebagai memory cache object.

�������3RUW��3HQDPDDQ�'DQ�3URWHNVL��Dalam Mach suatu resource dapat diidentifikasikan dengan suatu port. Untuk mengakses resource, maka PHVVDJH dikirimkan ke port yang bersangkutan. Maka Mach akan mengasumsikan bahwa server secara umum akan mengatur beberapa port, hal ini berlaku untuk setiap port. Sebuah single server Unix memiliki sekitar 2000 port. Port dapat dibuat dan diatur dengan mudah. Adapun masalah dalam hal resource adalah usaha untuk melindungi resource dari operasi yang bersifat illegal.

Page 108: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

104 Distributed System and Inter-Operability

__________________________________________________________________________________________ Ada tiga tipe port : Send rights, send-once rights dan receive rights.

- 6HQG� ULJKWV memberi ijin threads yang ada dalam task yang dimilikinya untuk mengirimkan PHVVDJH ke port yang bersesuaian

- 6HQG�RQFH�ULJKWV membolehkan lebih dari satu PHVVDJH untuk dikirimkan setelah penerimaan yang benar (tidak error) dihapus (secara otomatis) oleh kernel

- 5HFHLYH�ULJKWV membolehkan thread dari suatu task untuk menerima PHVVDJH dari antrian PHVVDJH suatu port.

Mach hanya mendukung untuk N-to-one komunikasi, sedang untuk multicast tidak didukung secara langsung oleh kernel. Pada pembentukan port, task diberi ERRWVWUDS�SRUW� ULJKW, berupa send right yang digunakan untuk mendapatkan service dari task lain. Setelah itu thread dalam task akan mendapatkan/memiliki port right melalui pembentukan port atau dengan menerima port right yang dikirimkan kepadanya oleh suatu PHVVDJH. Port-port right pada Mach disimpan berdekatan dengan kernel dan dilindungi (di protect). Seperti terlihat pada gambar di bawah ini :

����*DPEDU��������5XDQJ�1DPD�3RUW�'DUL�6XDWX�7DVN�

Task akan mengacu pada SRUW� ULJKW� yang diidentifikasikan secara local yang hanya akan sesuai (valid) untuk SRUW� QDPH� VSDFH pada task local. Hal ini memberikan pilihan kepada pengimplementasi kernel untuk memilih efisiensi untuk kapasitasnya dan memilih nama local (yang bersifat integer) Penamaan dan skema proteksi yang dibuat pada Mach memberikan akses secara cepat ke antrian PHVVDJH local dari identitas user-level yang diberikan . Namun kita harus men-set “ biaya” pada process di kernel jika suatu “ rights” ditransmisikan dalam PHVVDJH antar task. Pada akhirnya bahwa pengiriman yang benar harus dialokasikan sebagai local name pada ruang suatu WDVN¶V�QDPH�dan ruang pada tabel kernel. �������7DVN�'DQ�7KUHDGV�Task adalah eksekusi dari lingkungan. Task itu sendiri tidak dapat melakukan suatu aksi, haya threads yang ada di dalamnya yang dapat melakukannya. Namun untuk memudahkannya

Page 109: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

105 Distributed System and Inter-Operability

__________________________________________________________________________________________ seringkali disebut bahwa ketika task melakukan aksi maka arti sebenarnya adalah bahwa yang sebenarnya melakukan aksi tersebut adalah threads yang ada di dalam task.

• 3HPEHQWXNDQ�7DVN�EDUX�Task dibentuk dengan mengacu pada apa yang disebut dengan EOXHSULQW� WDVN. Task-task yang baru berada dalam komputer yang sama sebagai EOXHSULQW�WDVN� Ketika Mach tidak memberikan fasilitas migrasi task, maka cara dalam membangun task pada komputer adalah melalui task yang berada di sana. Bootstrap port yang baru dari suatu task diturunkan dari bluprint-nya dan dengan ruang alamat yang masih kosong. Task yang baru dibentuk belum memiliki thread. Adapun cara pembentukan task dan thread adalah sebagai berikut : WDVNBFUHDWH�SDUHQWBWDVN��LQKHULWBPHPRU\��FKLOGBWDVN��SDUHQWBWDVN is the task used as a blueprint in the creation of the new task, LQKHULWBPHPRU\ specifies whether the child should inherit the address space of its parent or be assigned an empty address space, FKLOGBWDVN is the identifier of the new task. WKUHDGBFUHDWH�SDUHQWBWDVN��FKLOGBWKUHDG��SDUHQWBWDVN is the task in which the new thread is to be created, FKLOGBWKUHDG is the identifier of the new thread. The new thread has no execution state and is suspended. WKUHDGBVHWBVWDWH�WKUHDG��IODYRXU��QHZBVWDWH��FRXQW��thread is the thread to be supplied with execution state, IODYRXU specifies the machine architecture, QHZBVWDWH specifies the state (such as the program counter and stack pointer), FRXQW is the size of the state. WKUHDGBUHVXPH�WKUHDG��This is used to resume the suspended thread identified by WKUHDG.

• 3HPDQJJLODQ�RSHUDVL�NHUQHO�Pada Mach, ketika task atau thread telah terbentuk, hal ini akan ditandai dengan apa yang disebut sebagai kernel port. Sistem call pada Mach dibedakan dalam hal bagaimana impelmentasinya secara langsung (kernel trap) dan implementasi yang melalui pengiriman PHVVDJH ke port. Implementasi dengan cara pengiriman PHVVDJH ke port ini memiliki keuntungan bahwa operasi pada remote task bersifat QHWZRUN�WUDQVSDUDQ. Cara service dari kernel mengatur resource dari kernel sama halnya dengan server user-level mengatur suatu resource. Setiap task akan dikirim ke kernel port . dan setiap service kernel diakses melalui PHVVDJH. Task akan mengakses service melalui procedure stub dengan bantuan Mach Interface Generator.

• ([FHSWLRQ�KDQGOLQJ�Task dan thread memiliki H[FHSWLRQ� SRUW. Jika exception terjadi, maka kernel akan merespon dengan cara mencoba untuk mengirimkan PHVVDJH (terjadi exception) ke port exception yang bersangkutan. Seandainya tidak ada port exception untuk thread maka kernel akan melihat task-nya. Thread yang menerima PHVVDJH ini akan memastikan mencari masalah apa yang terjadi dan mengembalikan nilai status dalam bentuk PHVVDJH replay. Jika kernel menemukan exception port dan menerima balasan yang menyatakan sukses, maka kernel akan me-restart thread yang mengalami exception.

• 0DQDJHPHQ�WDVN�GDQ�WKUHDG�Sekitar 40 procedure dalam kernel interace berkaitan dengan pembentukan dan managemen task serta thread. Mula-mula argumen dari procedure dikirimkan ke kernel port yang bersesuaian dan dengan mengirimkan PHVVDJH system call untuk

Page 110: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

106 Distributed System and Inter-Operability

__________________________________________________________________________________________

meminta operasi dari kernel target. Prioritas penjadwalan thread dapat di-set secara individu, thread dan task dapat ditunda, dimatikan dan eksekusi state suatu thread dapat di-set (secara external), dibaca dan dimodifikasi.

�������0RGHO�.RPXQLNDVL�Pengertian PHVVDJH, port dan port set pada Mach.

• 0HVVDJH : PHVVDJH terdiri atas sejumlah tetap header dengan diikuti nilai-nilai suatu data seperti terlihat di bawah ini :

�*DPEDU�������0HVVDJH�3DGD�0DFK�

Komposisi header terdiri dari :

- GHVWLQDWLRQ�SRUW : berisi identitas lokasi dari port tujuan - UHSO\�SRUW : jika suatu replai diperlukan, maka akan dilakukan pengiriman ke local

port yang dimasukan dalam PHVVDJH. - $Q�RSHUDWLRQ� LGHQWLILHU : merupakan identitas operasi pada service interface yang

mengacu pada suatu aplikasi tertentu. - Extra data size : berada setelah header, menyatakan nilai dari tipe list data.

Mach memelihara satu system call untuk melewatkan PHVVDJH yaitu berupa: PDFKBPVJ�Setiap item dalam list setelah PHVVDJH diikuti oleh salah satu berikut ini :

- 7\SHG�PHVVDJH�GDWD : bersifat individu, in-line type-tagged data items - 3RUW�ULJKWV : identitas penunjuk lokasi - 3RLQWHU� WR� RXW�RI�OLQH� GDWD� : data berada pada blok yang tidak saling berdekatan

dalam memori�0HVVDJH pada Mach berisi header yang berukuran tetap dan banyak blok dengan ukuran yang bervariasi,� RXW�RI�OLQH. Ketika RXW�RI�OLQH dari PHVVDJH data dikirimkan , maka kernel akan memilih di ruang alamt suatu task sebagai tempat diterimanya data. Hal ini merupakan efek dari teknik FRS\�RQ�ZULWH yang digunakan dalam mentransferkan data. Keuntungan dari adanya beberapa data tambahan pada PHVVDJH adalah bahwa pemrogram dapat mengalokasikan memori untuk suatu data atau metadata. Tipe untuk setiap data item pada PHVVDJH di Mach dispesifikasikan oleh pengirim (missal dengan ASN.1).

• 3RUW Port pada Mach memiliki antrian PHVVDJH yang ukurannya dapat di-set secara dinamis oleh task. Fasilitas ini memungkinkan penerima untuk mengimplementasikan IORZ� FRQWURO. Normalnya , suatu thread akan dikirimkan ke port dalam bentuk PHVVDJH dan jika antrian telah penuh maka akan di blok sampai ada buffer/ ruangan yang kosong. Jika menggunakan VHQG�RQFH� ULJKW, maka penerima akansenantiasa mengantrikan PHVVDJH walaupun antrian telah penuh.

Page 111: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

107 Distributed System and Inter-Operability

__________________________________________________________________________________________

• 6HQGLQJ�SRUW�ULJKW 6HQGLQJ�SRUW�ULJKWV : ketika port mengirimkan VHQG�ULJKW� yang dipaket dalam suatu PHVVDJH, maka penerima juga akan menerima VHQG�ULJKW pada port yang sama. Ketika UHFHLYH�ULJKW�di transmisikan, maka secara otomatis akan terjadi pen-dealokasian pada task pengirim. Hal ini terjadi karena UHFHLYH�ULJKW tidak memiliki lebih dari satu task pada saat yang sama.

• 0RQLWRULQJ�FRQQHFWLYLW\

0RQLWRULQJ�FRQQHFWLYLW\ : Kernel di desain untuk dapat memberi tahu pengirim dan penerima jika timbul keadaan yang akan mengakibatkan pengiriman dan penerimaan hanya akan sia-sia saja. Untuk itu maka system menjaga informasi nomor dari VHQG�ULJKW dan UHFHLYH�ULJKW yang diberikan ke port. Jika tidak ada task yang memegang UHFHLYH�ULJKWV pada port, maka semua VHQG�ULJKWV pada tempat nama port di task local akan berubah menjadi GHDG�QDPHV��

• 3RUW�VHW

Port sets merupakan kumpulan dari ORFDOO\�PDQDJHG pada port yang dibentuk dalam VLQJOH�WDVN��Ketika thread mengeluarkan receive dari port set, maka kernel akan mengembalikan PHVVDJH yang telah diterima ke anggota dari set. Port set sangat besar manfaatnya sebab sebuah server khusus diperlukan untuk melayani PHVVDJH client pada semua port pada setiap saat. Dengan pengelompokan port pada port set, maka satu thread dapat digunakan untuk menerima PHVVDJH tanpa ada kekhawatiran akan hilangnya PHVVDJH. Dengan demikian thread akan di blok jika tidak ada PHVVDJH yang akan di process pada port set. Hal ini bertujuan untuk menghindari terjadinya EXV\�ZDLWLQJ��

• 0DFKBPVJ

Sistem call 0DFKBPVJ bisa digunakan untuk melewatkan PHVVDJH secara asinkronus dan interaksi�5HTXHVW�UHSO\�VW\OH, yang mana hal ini sangat komplek untuk dilakukan.�0DFKBPVJ dapat digunakan untuk kirim PHVVDJH, terima PHVVDJH ataupun kedua-duanya. Ini merupakan system call yang digunakan client untuk mengirimkan PHVVDJH permintaan dan menerima berupa reply dan pada server berguna untuk mereply kepada client paling akhir dan untuk selanjutnya menerima PHVVDJH permintaan selanjutnya. Keuntungan yang diperoleh dari penggabungan send/receive call adalah ketika server dan client melakukan eksekusi pada komputer yang sama maka hasil yang diperoleh dapat optimal. Kondisi ini disebut dengan KDQGRII�VFKHGXOLQJ� �������,PSOHPHQWDVL�.RPXQLNDVL�Salah satu bagian yang menarik untuk dipelajari pada implementasi komunikasi Mach adalah penggunaan server jaringan untuk user-level. Server jaringan (disebut QHWPVJVHUYHUV) bertanggungjawab untuk terhadap penggunaan semantic yang akan digunakan dalam jaringan sehingga akan memberi jaminan akan terjadinya komunikasi jaringan yang transparan. Server jaringan juga bertanggungjawab untuk melindungi port dari pengaksesan yang illegal.

• 3HQJLULPDQ�PHVVDJH�VHFDUD�WUDQVSDUDQ�Port jaringan adalah sesuatu yang bersifat global tetapi unik yang mencirikan kanal tertentu. Port jaringan ini di atur oleh server jaringan dan untuk berkomunikasi dengannya dapat dilakukan dengan VLQJOH�0DFK�SRUW. Server jaringan dapat melakukan VHQG�ULJKW�dan UHFHLYH�ULJKW ke port jaringan. Penggambaran pentransmisian PHVVDJH antara task yang berada pada komputer yang berbeda dapat dilihat seperti gambar di bawah ini :

Page 112: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

108 Distributed System and Inter-Operability

__________________________________________________________________________________________

�����*DPEDU�������.RPXQLNDVL�-DULQJDQ�3DGD�0DFK���

Dalam gambar di atas server jaringan local mendeteksi bahwa dia akan menerima UHFLYH�ULJKW yaitu 8. Kemudian server jaringan pada komputer pengirim melihat ULJKW� LGHQWLILHU di table port jaringan yang telah dikirimkan. Hasilnya berupa port jaringan dan alamat jaringan. Selanjutnya pengiriman PHVVDJH dilakukan (dengan telah adanya tambahan port jaringan) ke server jaringan ke alamat yang sesuai pada table. Selanjutnya server pada jaringan local akan meng-ekstrak port jaringan dan mencocokannya dengan table port jaringan yang dimilikinya. Jika telah sesuai maka masukan yang berisi identitas VHQG� ULJKW akan diteruskan ke ORFDO�0DFK�SRUW�� Respon port yang mungkin terjadi ketika server jaringan mem-forward PHVVDJH ke server jaringan yang lain dalah :

- SRUW�KHUH : menunjukan sesuai tujuan yang dituju - SRUW�GHDG : port tidak ada - SRUW�QR�KHUH��WUDQVIHUUHG���UHFHLYH�ULJKW perlu ditransmisikan lagi ke tempat yang

ssesuai dengan tujuannya - SRUW�QR�KHUH��XQNQRZQ : tidak ada record yang menunjukan port jaringan port - QR�UHVSRQVH�: komputer tujuan down

�• 7UDQVSRUW�SURWRFRO�

Trasnport protocol yang digunakan pada jaringan Mach adalah TCP/IP. • 8VHU�OHYHO�QHWZRUN�GULYHUV�

Pada beberapa server jaringan dapat “ memilihara” dirinya dengan menggunakan driver user-level jaringan . Hal ini bertujuan untuk meningkatkan kecepatan akses dalam jaringan. �������0DQDMHPHQ�0HPRUL��Mach tidak hanya mendukung untuk ODUJH� VSDUVH� ataupun DGGUHV� VSDFH tetapi juga mendukung teknik YLUWXDO� PHPRU\ sehingga bisa untuk VKDULQJ memori antar task. Tidak hanya membagi (sharing) memori secara fisik untuk melakukan eksekusi pada kernel yang yang sama, tetapi juga mendukung untuk H[WHUQDO�SDJHUV yang mengijinkan virtual memori untuk dibagi antar task walaupun berada pada komputer yang berbeda.

Page 113: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

109 Distributed System and Inter-Operability

__________________________________________________________________________________________

• 6WUXNWXU�DGGUHV�VSDFH�Model umum dari addres space dikenal dengan UHJLRQ� Setiap UHJLRQ merupakan ORJLFDO�DGGUHV�yang memiliki atribut/property. Misalnya (read/write/ execute). Pada Mach, pengertian DGGUHV� VSDFH adalah kelompok/kumpulan JURXS� RI� SDJHV� yang dinamai sesuai alamatnya. Pada Mach, proteksi lebih ditekankan kepada SDJH dibanding UHJLRQnya. Dan untuk system call akan mengacu pada alamat di banding dengan identitas UHJLRQ. Dan untuk selanjutnya pendefinisian UHJLRQ (pada Mach) adalah kumpulan dari SDJHs yang memiliki suatu property. Mach mendukung banyak UHJLRQ yang dapat digunakan untuk berbagai tujuan dalam PHVVDJH data dan pemetaan file. �5HJLRQ dapat dibentuk dengan 4 cara :

- dapat dibentuk dengan memanggil YPBDOORFDWH� - dapat dibentuk melalui memory-object dengan menggunakan YPBPDS� - mendeklarasikan saat membuat task menggunakan YPBLQKHULW� - dapat dibentuk secara otomatis di ruang alamat task (saat melewatkan PHVVDJH)

5HJLRQ dapat melindungi dari operasi read/write/execute dengan menggunakan vm_protect. 5HJLRQ dapat meng-kopi dalam task dengn YPBFRS\ dan isinya dapat dibaca atau ditulis oleh task lain dengan menggunakan YPBUHG dan YPBZULWH. Untuk pen-dealokasian UHJLRQ dengan YPBGHDOORFDWH��

• 0HPRU\�VKDULQJ���LQKHULWDQFH�DQG�PHVVDJH�SDVVLQJ�Di dalam Mach dapat dilakukan UNIX IRUN semantics yang dapat digunakan untuk mekanisme PHPRU\�LQKHULWDQFH. Diketahui bahwa task dapat dibentuk dari task lain sebagai EOXHSULQW� Sebuah UHJLRQ diturunkan dari EOXHSULQW�WDVN�yang berisi rentang alamat yang sama dengan sifat memori yang VKDUHG�dan FRSLHG�(pengkopian memori bluprint saat child UHJLRQ dibentuk). �2XW�RI�OLQH� data PHVVDJH di transfer antar task sebagaimana FRS\�LQKHULWDQFH. 5HJLRQ dibentuk di ruang alamat penerima dan inisial dari isi merupakan salinan dari GDWD�RXW�RI�OLQH yang dikirimkan oleh pengirim. Berbeda halnya pada LQKHULWDQFH, maka UHJLRQ penerima secara umum tidak menempati rentang alamat yang sama seperti pada UHJLRQ pengirim. Rentang alamat pada UHJLRQ pengirim telah digunakan oleh UHJLRQ (yang sudah exist) di penerima. Pada Mach menggunakan FRS\�RQ�ZULWH untuk melakukan FRS\�LQKHULWDQFH dan dalam mengirimkan PHVVDJH. Sistem pada Mach akan mengasumsikan bahwa beberapa atau semua memori (copy-inherited) atau dalam pengirman RXW�RI�OLQH tidak akan ditulisi (written by) oleh task yang lain walaupun ijin untuk menulis (write permission)-nya dipakai. �

• (YDOXDVL�XQWXN�FRS\�RQ�ZULWH�Walaupun FRS\�RQ�ZULWH sangat membantu dalam pengiriman PHVVDJH data antara task dan server jaringan, namun FRS\�RQ�ZULWH tidak bisa digunakan untuk fasilitas pentransmisian antar jaringan. &RS\�RQ�ZULWH akan efisien jika datanya cukup untuk dibentuk ke dalam suatu paket. Keuntungan untuk tidak menggunakan pengkopian secara fisik adalah untuk menekan biaya dalam manipulasi table SDJH. Table di bawah ini menunjukan perbandingan yang ditimbulkan oleh adanya RYHUKHDG�dari adanya FRS\�RQ�ZULWH��

Page 114: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

110 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�������%HVDUQ\D�2YHUKHDG�3DGD�7HNQLN�&RS\�RQ�ZULWH�

��������([WHUQDO�3DJHUV�Untuk tetap menjaga arti/definisi dari microkernel, maka kernel Mach tidak dibangun untuk dapat mendukung files atau hal-hal lain yang berhubungan dengan storage secara langsung. Sehingga hal lain yang belum ditangani oleh kernel Mach tersebut akan diimplementasikan oleh H[WHUQDO�SDJHUV���Fungsi H[WHUQDO�SDJHU adalah :

- menyimpan data yang telah dihapus oleh kernel dari cache suatu SDJH - memberi data ke SDJH seperti yang diminta oleh kernel - menjaga agar batasan dalam abstraksi memori resource tetap terpelihara

Pada Mach, untuk memori resource-nya digunakan model pemetaan akse (PDSSHG� DFFHV�PRGHO). Dan untuk pengaksesan di penyimpannya secara explicit menggunakan operasi UHDG dan ZULWH� 5HJLRQ pada Mach dapat berhubungan dengan lokasi tertentu di memori object dengan menggunakan YPBPDS� Arti hubungan ini adalah pembacaan alamat di UHJLRQ ditandai dengan pengembalian data oleh memori object dan pemodifikasian data di UHJLRQ dilakukan dengan write yang dikirimkan balik juga oleh memory object. Dalam artian umumnya bahwa memory object diatur oleh H[WHUQDO� SDJHU�� Kernel yang menjaga local resource disebut dengan PHPRU\�FDFKH�REMHFW��

��

*DPEDU�������([WHUQDO�3DJHU� Adapun komponen dari PHVVDJH tanda yang digunakan dalam protocol antara kernel dan H[WHUQDO�SDJHU�adalah sebagai berikut :

Page 115: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

111 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU��������0HVVDJH�3DGD�([WHUQDO�3DJHU��

• 6XSSRUWQJ�QRQ�VKDUHG�DFFHV�WR�D�PHPRU\�REMHFW�0HPRU\�REMHFW�dapat dipandang sebagi suatu file. Dengan mengasumsikan bahwa tidak ada pengambilan data dari H[WHUQDO� SDJHUV, maka semua SDJH yang terpetakan dalam UHJLRQ bersesuaian dengan file dilindungi dari semua akses yang tidak berkepentingan . Ketika sebuah thread berusaha untuk mengakses satu dari SDJH�yang berada di UHJLRQ, maka akan terjadi kesalahan pada SDJH. Dan kernel akan melihat port memory object mengirm VHQG�ULJKW yang bersesuaian ke UHJLRQ dan mengirim sebuah memory_object_data_request ke external SDJHr. Jika semua telah berjalan baik, maka H[WHUQDO SDJHU akan merespon dengan SDJH data di dalam PHPRU\BREMHFWBGDWDBSURYLGHG. Jika file data dimodifikaasi oleh komputer yang telah terpetakan tadi, adakalanya kernel memerlukan untuk menulis (ZULWH) di SDJH dari PHPRU\�FDFKH�REMHFW. Untuk melakukan ini maka akan dikirmkan PHPRU\BREMHFWBGDWDBZULWH ke H[WHUQDO�SDJHU���

• 6XSSRUWLQJ�VKDUHG�DFFHV�WR�PHPRU\�REMHFW�Diketahui bahwa task yang berada pada komputer yang berbeda-beda dapat dipakai sebagai file bersama. Jika suatu file hanya bisa UHDG�RQO\ di setiap UHJLRQ, hal ini tidak menimbulkan masalah dan permintaasn akan file akan segera dapat dilayani dengan segera. Tetapi jika suatu task ada hak untuk ditulisi (ZULWLQJ� E\), maka H[WHUQDO� SDJHUV harus menggunakan suatu protocol yang menjamin agar tidak terjadi ketidakkonsistenan pada SDJH yang sama. ���������.HVLPSXODQ�

• Mach didesain untuk dapat berjalan pada multiprocessor dan uniprocessor • Port merupakan identitas untuk suatu resource. • Mach merupakan system operasi yang berbasis microkernel • Pada Mach menggunakan konsep SURFHVV��WKUHDGV��SRUW�dan�PHVVDJH • Model komunikasi pada Mach adalah dengan sebuah system call dengan

menggunakan PHVVDJH • Implementasi dalam komunikasi pada Mach bersifat transparan, dengan menggunakan

TCP/IP dan dengan driver jaringan user-level • Teknik manajemen memori yang digunakan adalah shared memory dan virtual

memori

Page 116: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

112 Distributed System and Inter-Operability

__________________________________________________________________________________________

• Dalam menjaga arti suatu microkernel, maka Mach menggunakan H[WHUQDO� SDJHU untuk menangani hal-hal tertentu.

��

������&+2586� �������6HMDUDK�GDQ�$UVLWHNWXU�&KRUXV mulai digunakan pada tahun 1979 sebagai proyek penelitian pada sistem distribusi di INRIA (Perancis). Tujuan dari proyek ini adalah mengembangkan sebuah model perhitungan berbasis-pesan untuk membangun sebuah sistem operasi modular terdistribusi. &KRUXV melewati 3 tahap perancangan di INRIA dan 3 versi penyesuaian dari sistem operasi terdistribusi yang ada. Dalam versi-0 sebuah model process komunikasi yang disebut actor dikembangkan dan sebuah prototip implementasi dibuat dengan menggunakan sebuah kernel kecil. Pada versi-1, rancangan sebelumnya di-SRUW-kan dari sebuah system berbasis LAN ke memori terdistribusi prosesor gabungan. Pada versi-2 sebuah tim yang telah bekerja untuk implementasi UNIX, bergabung dengan proyek ini dan sebuah percobaan dimulai untuk mengemulasi UNIX dengan menggunakan kernel &KRUXV dan memakai ulang beberapa kode yang ditulis oleh tim UNIX. Ketika proyek di INRIA berakhir, sebuah perusahaan, &KRUXV Systemes, dibuat untuk melanjutkan pengembangan &KRUXV baik pada LAN maupun prosesor gabungan. Kernel &KRUXV versi-3 (disebut QXFOHXV) dan emulasi UNIX dibangun di atasnya. &KRUXV/Mix, saat ini diproduksi dan dikembangkan oleh &KRUXV Systemes. Kita akan membahas &KRUXV versi-3.3 pada bagian ini. Sebuah sistem FKRUXV terdiri dari prosesor tunggal atau prosesor gabungan dari computer yang dihubungkan oleh suatu jaringan. Arsitekturnya sama dengan Mach dalam banyak hal. Kernel &KRUXV adalah sebuah kernel mikro yang mendukung subsistem. Subsistem dari &KRUXV adalah kumpulan dari server yang menyedikan emulasi biner dari sistem operasi atau yang menyediakan beberapa layanan yang lebih besar lainnya untuk beberapa aplikasi. &KRUXV telah diimplementasikan sebagai sebuah basis untuk sistem process kontrol UHDO�WLPH yang dijalankan pada memori terdistribusi prosesor gabungan, seperti pada: 68020, 80386 dan Transputer prosesor mikro. ��������7XMXDQ�3HUDQFDQJDQ�&KRUXV�PHPLOLNL�EHEHUDSD�WXMXDQ�SHUDQFDQJDQ��\DQJ�VDPD�GHQJDQ�0DFK��

• Mikrokernel menunjang pelayanan sistem terbuka. • Menunjang emulasi sistem operasi level biner dan subsistem yang lainnya. • Tranparan yang dapat diperluas dari fasilitas kernel ke operasi jaringan. • Implementasi virtual memori yang fleksibel. • Portabilitas (Sistem kernel dibuat dengan C++ dan dirancang agar dan dibagi dalam

bagian mesin yang bebas dan mesin yang tergantung). • Eksploitasi dari memori bersama prosesor gabungan.

Page 117: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

113 Distributed System and Inter-Operability

__________________________________________________________________________________________ �&KRUXV�MXJD��PHPLOLNL�WXMXDQ�ODLQ�GDQ�ILWXU��IDVLOLWDV���

• 6HUYHU� GHQJDQ� NHPDPSXDQ� PHPXDW� VHFDUD� GLQDPLN: &KRUXV bertujuan untuk mencapai tingkatan yang sama dengan Mach dalam modularitas dan keterbukaan. Bagaimanapun, &KRUXV tidak menyamakan tujuan-tujuan ini dengan penggunaan dari server pada level pengguna. &KRUXV mendukung server dengan kemampuan memuat secara dinamik yang bisa mengeksekusi pada level pengguna atau dengan ruang alamat kernel.

• 3HQDPEDKDQ� GDUL� 81,;: Perencanaan &KRUXV mengantisipasi pengguna emulasi UNIX yang mungkin ingin menggunakan penambahan fasilitas yang digunakan yang disediakan oleh kernel utama dari process-process UNIX, seperti WKUHDG jamak dan kemampuan untuk membuat sebuah process baru di komputer remote (jauh).

• 0HQGXNXQJ� JURXS� VHUYHU� GDQ� NRQILJXUDVL� XODQJ� VHUYHU: &KRUXV menyediakan pendukung untuk group server dalam bentuk mode pengalamatan group untuk mengirim pesan, termasuk multicast. Pemindahan SRUW dapat digunakan untuk pengaturan transfer dari suatu resource atau kumpulan resource secara dinamik antar server.

• 0HPRUL� WHUGLVWULEXVL� RSHUDVL� SURVHVRU� JDEXQJDQ: &KRUXV telah diimplementasikan pada Memori terdistribusi prosesor gabungan.

• 2SHUDVL�UHDO�WLPH: Perancangan &KRUXV bertujuan untuk mendukung subsistem UHDO�WLPH pada kernel. Untuk tujuan ini, &KRUXV menyediakan alokasi yang fleksibel dari prioritas WKUHDG dan memperbolehkan untuk jaminan penjadwalan WKUHDG.

��������5LQJNDVDQ�$EVWUDNVL�8WDPD�'DUL�&KRUXV�

U�V�WYX Z�[\�]:^ V�_�`+abGc�d ZY^

eYZY^ dYfO^ ZYgAheYZY^ d

i V�W�jkV+[�d:a+V+^ l+V:^bmc�d ZY^

bG`:`Y^ V�a�ana:h+_�c�V

i V�W�jnV:[�do jkV+jkZY^ pZYq�r V�c�d s *DPEDU�������$EVWUDNVL�8WDPD�&KRUXV�

Abstraksi utama yang disediakan oleh kernel &KRUXV adalah:

• $NWRU: Sebuah aktor dari &KRUXV adalah sebuah eksekusi yang sebanding dengan sebuah perintah Mach. Sebuah aktor dapat terdiri dari satu WKUHDG atau lebih.

• 3RUW: Sebuah SRUW merupakan sebuah komunikasi kanal unidireksional. 3RUW dapat berpindah antara aktor.

• *URXS� 3RUW: 3RUW dapat dibuat menjadi suatu group SRUW. Sebuah group SRUW merupakan tujuan dari pesan-pesan, dan ada beberapa mode pengalamatan untuk mengirim pesan ke group SRUW.

• 3HVDQ: Pesan pada &KRUXV terdiri dari sebuah variabel panjang isi (64 kByte) dan header yang berukuran tetap (64 Byte) yang bersifat opsional.

• 5HJLRQ��6HJPHQ�GDQ�/RNDO�&DFKH: Ruang alamat dari aktor dibagi menjadi beberapa region. Sebuah region dapat dipetakan pada sebuah bagian dari segmen, yang

Page 118: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

114 Distributed System and Inter-Operability

__________________________________________________________________________________________

sebanding dengan objek memori dari Mach. Untuk setiap segmen pemetaan, kernel tetap menjaga lokal FDFKH, sama dengan objek FDFKH pada Mach��

�������3URFHVV�0DQDJHPHQW�0RGHO�Process dasar pembangunan blok dalam &KRUXV adalah aktor dan WKUHDG.

t�ut"v t"v

w"x+yAz"{:y�|:y:} t yAz |+yAzt yAz |:y:z t"~R���Y� yk�A� ��� ��� �

� �Y� z y�x+xkxY�:� � y��Yz � � y � � � � ��� ��� � � �Az ��myAz �:yA} �+�Y� yR�:� ��� ��� � t�� t"� t"�

t yAz |:y:z x � �A�:�+��� � �A} } ��} � � � y �� ��� ��� yAz �:y:}�� �A� z y�x�xRxY�+� � y �

*DPEDU�������6HUYHU�&KRUXV�&DWDWDQ� Gambar di atas memperlihatkan kode dan data untuk server yang dimuat secara dinamik ke dalam ruang alamat kernel, dimana ia akan dieksekusi. Ditunjukkan juga beberapa server level pengguna, yang akan dieksekusi dengan ruang alamat pribadi.

Server-server dimuat secara dinamik di komputer-komputer tersebut dimana mereka dibutuhkan dan diakses oleh komunikasi berbasis pesan. Server secara umum bekerja sebagai process level pengguna untuk menjamin proteksi bersama-sama antara kernel dan server. 7DEHO������7LSH�$NWRU�

Tipe Aktor Ruang Alamat Pribadi 7KUHDG Pengguna 7KUHDG Pengawas Aktor Pengguna Ya Ya Ya (Dibuat eksternal) Aktor Sistem Ya Ya (Sistem 3ULYLOHJH) Ya Aktor Pengawas Tidak: Kernel Bersama Tidak Ya

&KRUXV mendukung tiga level SULYLOHJH untuk pengaksesan WKUHDG resource lokal. 3ULYLOHJH kadang kala secara nominal dianggap disebabkan oleh aktor, tetapi karena hanya WKUHDG yang dapat mengambil tindakan dengan memperhatikan resource, SULYLOHJH benar-benar bersama dengan WKUHDG. Tiga (3) level dari SULYLOHJH adalah:

• 3ULYLOHJH pengguna: Tidak ada akses langsung ke mesin resource, tidak dapat memanggil sistem pemanggilan yang pasti.

• 3ULYLOHJH sistem: Tidak ada akses langsung ke mesin resource , tidak dapat memanggil semua sistem pemanggilan. Sama dengan level SULYLOHJH dari sebuah process UNIX.

• 3ULYLOHJH pengawas: Memiliki akses yang lengkap ke mesin resource. ��������3HQDPDDQ�'DQ�3URWHNVL�Chorus menggunakan NHPDPSXDQ�� LGHQWLWDV� XQLN�� dan LGHQWLWDV� ORNDO sebagai unsur utama penamaan pada resource.�

Page 119: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

115 Distributed System and Inter-Operability

__________________________________________________________________________________________

8,�����ELWV�� .H\�����ELWV���

*DPEDU�������.HPDPSXDQ�&KRUXV��

• .HPDPSXDQ, ini merupakan tipe yang paling umum digunakan untuk mengidentifikasi resource dalam Chorus. .HPDPSXDQ� digunakan untuk mengidentifikasi dan membatasi akses ke resource sebagai bagian yang diatur oleh server dan beberapa resource diatur sendiri oleh kernel, baik sebagai aktor maupun group. .HPDPSXDQ� terdiri dari identitas unik (UI), yang secara normal berfungsi untuk mengidentifikasi SRUW dan penambahan NH\ sebanyak 64-bit (gambar 3).� .H\ dapat digunakan untuk mengidentifikasi resource dari beberapa resource yang diakses melalui port yang sama. Server memilih NH\� yang menyediakan tingkat proteksi sehingga dapat mencegah akses bagi yang tidak berhak ke resource.

• ,GHQWLWDV� 8QLN�� SRUW dan resource yang lain diatur oleh kernel yang ditunjukkan dalam 64-bit identitas unik. UI dijamin unik dalam jaringan berbasis Chorus sepanjang umur komputer. UI dibuat sebagai bit string dengan 3 komponen: tipe dari kernel resource, identitas dari komputer yang membuatnya, dan timestamp lokal dijamin unik sepanjang umur komputer.

• ,GHQWLWDV� ORNDO�� identitas lokal digunakan untuk menamai thread dan SRUW sebagai aktor. Terdapat 32-bit integer yang valid hanya dalam aktor yang memakainya. Penggunaan identitas lokal paling efisien, meskipun identitas lokal tersebut dihasilkan oleh kernel untuk akses cepat ke penamaan resource.

��������,GHQWLILNDVL�5HVRXUFH�'LDWXU�2OHK�*URXS�Servis dapat disediakan oleh server yang berbeda pada waktu yang berbeda atau servis dapat diimplementasikan dalam satu waktu oleh beberapa server, SRUW yang melakukan process dapat dikumpulkan dalam suatu group. Pesan dapat dialamatkan ke SRUW group dalam beberapa mode pengalamatan. Sistem pemanggilan untuk menghasilkan dan memanipulasi port group ditunjukkan sebagai berikut: JUS$OORFDWH� Mengalokasikan NHPDPSXDQ pada suatu SRUW group JUS3RUW,QVHUW� Menyisipkan�SRUW dalam SRUW group JUS3RUW5HPRYH� Memindahkan SRUW dari SRUW group Aktor harus memiliki NHPDPSXDQ untuk dapat memanipulasi anggota dari SRUW group. .HPDPSXDQ dialokasikan secara dinamis pada SRUW group melalui sistem call JUS$OORFDWH��Aktor yang mengetahui NHPDPSXDQ group dapat menggabungkan port ke dalam group menggunakan JUS3RUW,QVHUW�dan memindahkan port menggunakan JUS3RUW5HPRYH�� Dalam tujuan pengiriman, hanya UI port group yang diminta, dan bukan NHPDPSXDQ. Identitas group menyediakan level tidak terarah, sehingga aktor yang menggunakan identitas group tidak ingin tahu SRUW�SRUW yang termasuk anggota group-nya. Ketika pesan dikirim menggunakan identitas group, pengirim memilih satu dari mode pengalamatan berikut:

Page 120: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

116 Distributed System and Inter-Operability

__________________________________________________________________________________________ 0RGH�0XOWLFDVW�DWDX�0RGH�%URDGFDVW��Mode yang digunakan untuk mengirimkan pesan unrealible ke semua anggota group. Permasalahan permintaan operasi terjadi karena resource diatur oleh beberapa anggota group server, yang tidak diketahui. Permintaan dapat di-multicast dalam pesan berisi identitas spesifikasi service dari resource. Penerima pesan hanyalah server yang mengatur resource yang akan membuat operasi, server yang lain dapat mengabaikan permintaan. Kelemahan mode ini terjadi bila semua process dalam group harus menerima pesan, meskipun tidak sesuai dengannya. Susunan ini tidak praktis untuk memproses semua operasi pada resource yang diatur oleh group. Tetapi mode lebih disukai FOLHQW untuk meminta NHPDPSXDQ mengenali resource, menggunakan multicast. Server yang mengatur resource mengembalikan NHPDPSXDQ yang berisi identitas SRUW sehingga semua permintaan client dapat dikirim secara langsung ke server melalui SRUW tersebut. Chorus multicast tidak reliable dan tidak menjamin pesan. Mode ini sesuai untuk mikrokernel. Gambar 4 menunjukkan pesan yang dikirim secara multicast ke suatu group.

�G�G� �G��� �G�"��O� �

�� �¡�¢"�"£ ¤¥A �¡�¢�¦G�Y¢A§Y�

*DPEDU�������6HEXDK�3HVDQ�0XOWLFDVW�.H�6HEXDK�*URXS��

0RGH�)XQFWLRQDO��Mode functional diilustrasikan dengan mengganti sebuah server yang menyediakan service. Caranya adalah service harus disediakan oleh suatu group SRUW server, sehingga semua permintaan dikirim ke group server menggunakan mode functional pengalamatan. Mode ini mengirim pesan permintaan ke satu anggota group (hanya ada satu anggota group). Penempatan server pada group dengan menyisipkan SRUW-nya menggunakan JUS3RUW,QVHUW, server akan dipindahkan dengan JUS3RUW5HPRY (gambar 5.). Pesan dapat dikirim ke SRUW sampai SRUW tersebut meninggalkan group. Bila SRUW sudah keluar dari group tetapi ada computer yang mengirim pesan ke SRUW tersebut maka computer akan menerima negatif acknowledgment, sehingga computer bisa mencari SRUW lain dalam group. �0RGH�6HOHFWLYH�)XQFWLRQDO��

Page 121: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

117 Distributed System and Inter-Operability

__________________________________________________________________________________________ Mode ini digunakan untuk mengidentifikasi server tertentu dari group server. Pengirim melibatkan UI sebagai� NHPDPSXDQ group. Tiap komputer dilengkapi dengan database UI. Chorus termasuk dalam database UI dari komputer, baik untuk semua aktor lokal dan semua SRUW lokal. Aktor dapat membuat UI ke lokal database dengan XL'HFODUH dan dapat menghapus UI dengan XL)RUJHW��

¨G©Gª «G¬�ª ©G­"®¯ ª�®"¨G©Gª «±° ²A³�´"ª «

¯ ª�®"¨m©�ª «�µ�´�¶·©Y¸�´

*DPEDU�������)XQFWLRQDO�0RGH�3HQJDODPDWDQ���������3HQJLULPDQ�5HVRXUFH�$QWDU�6HUYHU�Pengiriman resource antar server menggunakan mekanisme migrasi SRUW, di mana SRUW dapat dipindahkan dari satu aktor chorus ke aktor chorus lain. Dengan mekanisme ini, tiap resource atau resource group dapat dikirim dari satu server ke yang lainnya. 3URWHNVL�.HPDPSXDQ dan identitas SRUW Chorus ditawarkan secara bebas dalam pesan antar process, tanpa melibatkan kernel. Identitas SRUW terdiri dari 64-bit UI dan NHPDPSXDQ menggunakan key, sehingga proteksi resource dapat dilakukan untuk mencegah aktor yang tidak berhak mengakses.� Tetapi� NHPDPSXDQ� tidak dapat digunakan sebagai skema utama untuk menghasilkan proteksi semantik UNIX� XVHU�JURXS�RWKHU. Dalam hal ini, chorus berusaha membuat autentikasi pada setengah dari implementasi service. Chorus mampu mengidentifikasi source dari pesan yang dikirim ke server. Autentikasi dihasilkan dengan penambahan identitas proteksi (PI) pada tiap aktor. PI dihasilkan oleh aktor, tetapi dapat diubah oleh supervisor thread atau sistem thread aktor. Ketika aktor menerima pesan, ia akan meminta kernel untuk mengidentifikasi PI dari aktor pengirim. Servis akan menggunakan mekanisme ini untuk implementasi kontrol akses. �0RGHO�GDQ�,PSOHPHQWDVL�.RPXQLNDVL�♦ 6LVWHP�3HPDQJJLODQ�.RPXQLNDVL�Chorus menyediakan sistem pemanggilan untuk komunikasi sebagai berikut:

�LSF&DOO� Mengirim permintaan dan menerima balasan

Page 122: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

118 Distributed System and Inter-Operability

__________________________________________________________________________________________

LSF6HQG� Mengirim pesan secara bergantian LSF5HFHLYH� Menerima pesan LSF5HSOD\� Membalas pesan LSF6DYH�

Menyimpan pesan tertentu LSF*HW'DWD� Menerima bentuk pesan LSF6\V,QIR� Mengembalikan informasi mengenai pesan tertentu SRUW&UHDWH��SRUW'HOHWH� Menghasilkan/menghapus SRUW SRUW(QDEOH��SRUW'LVDEOH� Kemampuan/ketidakmampuan SRUW SRUW/L��SRUW8L� Menterjemahkan UI SRUW ke/dari identitas lokal

Chorus menyediakan pesan asynchronous untuk interaksi request-reply. ,SF6HQG�digunakan untuk mengirim pesan secara asynchronous dengan memberikan UI SRUW tujuan atau identitas group dengan mode pengalamatan tertentu. ,SF&DOO mengirim pesan permintaan dan menunggu balasan. ,SF&DOO tidak mendukung process untuk beberapa permintaan atau membalas beberapa pesan. Thread menerima permintaan menggunakan LSF5HFHLYH, yang dapat diberikan sebagai identitas SRUW lokal sebagai interface penerima, atau tanda khusus yang mengijinkan pesan hanya diterima dari anggota SRUW lokal. Setelah pesan diterima, thread menggunakan LSF6\V,QIR untuk mencari informasi tentang pesan, sebelum memutuskan untuk melakukan process dan membalasnya. Ketika SRUW dihasilkan dengan SRUW&UHDWH, kernel menempatkan dan mengembalikan UI ke SRUW. 3RUW/L digunakan untuk mengubah UI SRUW menjadi identitas lokal yang dapat digunakan dengan LSF5HFHLYH. Identitas lokal digunakan untuk meningkatkan kecepatan akses ke struktur data SRUW internal. Chorus tidak konsisten karena tidak mengijinkan SRUW UI aktor lain berubah menjadi LI, mungkin dilakukan untuk tujuan efisiensi pengiriman pesan. Tetapi identitas SRUW ini mungkin dikirim dalam pesan dan hanya UI yang melakukannya, dan LI hanya valid dalam aktor tunggal. Thread dapat menerima pesan dari kumpulan SRUW dalam HQDEOHG�VWDWH��Tetapi hanya terdapat satu ‘port set’ tiap aktor untuk semua thread dalam aktor. Untuk menjadi anggota dari ‘set’ , SRUW harus didaftarkan. Aktor dapat mengubah setiap SRUW (enable atau disable) menggunakan SRUW(QDEOH�dan�SRUW'LVDEOH. Thread membalas permintaan menggunakan LSF5HSO\. Balasan umumnya diberikan setelah menerima pesan terakhir. Tetapi, bila thread mampu meminta I/O tanpa bloking maka thread dapat membalas pesan sampai I/O terbentuk. Hal ini berguna bila permintaan data harus diambilkan dari disk. Tetapi bila permintaan itu datang dari client yang berbeda, dapat dilayani tanpa akses disk. Membalas permintaan itu menggunakan konsep FXUUHQW�PHVVDJH.

Page 123: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

119 Distributed System and Inter-Operability

__________________________________________________________________________________________ Tiap aktor memiliki satu FXUUHQW�PHVVDJH pada satu waktu. Thread dapat menyimpan FXUUHQW�PHVVDJH menggunakan LSF6DYH, dan memperbaharui current message dengan LSF5HVWRUH. ,SF�5HSO\ digunakan untuk membalas pesan. ♦ 3HVDQ�Chorus menggunakan pesan sederhana yang terdiri dari fix-header dan variable-body. Thread menggunakan LSF*HW'DWD� untuk menghasilkan bentuk pesan setelah menerima header dan menerangkan dari data dalam buffer penerima. Chorus menggunakan copy-on-write untuk mengirim pesan panjang secara efisien ketika LSF6HQG digunakan, bila MMU mendukung. Chorus tidak menghasilkan tempat pengalamatan baru di receiver, tetapi selalu menggunakan range pengalamatan khusus di receiver. ,SF6HQG� menyebabkan halaman digunakan untuk implementasi bentuk pesan yang dikirim ke ruang pengalamatan penerima (asumsi berada dalam komputer yang sama) dan memindahkan dari ruang pengalamatan pengirim. Pesan dikirim menggunakan manipulasi tabel halaman. ♦ 1HWZRUN�0DQDJHU�Network Manager adalah aktor yang menyediakan fasilitas komunikasi dari kernel melalui jaringan secara transparan. Network Manager bertanggung jawab terhadap pengiriman pesan dan penempatan SRUW. Ketika SRUW menghasilkan SRUW UI ke kernel untuk mengirim pesan, UI dicari dalam daftar lokal SRUW. Bila tidak ditemukan, SRUW UI secara otomatis dikirim kernel ke Network Manager, yang akan menempatkan SRUW melalui komunikasi dengan jaringan lain. Ketika SRUW sudah ditempatkan, pesan dikirim secara langsung ke SRUW dalam network manager. Network Manager juga bertanggung jawab untuk menempatkan anggota SRUW group dalam komputer melalui jaringan dari komputer pengirim. �������.HVLPSXODQ ♦ Chorus mikrokernel mendukung open servis, emulasi sistem operasi, dalam sistem

distribusi dan distribusi memory multiprosesor, dan bersifat real-time, seperti V UNIX. ♦ Chorus kernel menyediakan process multi-thread yang disebut aktor, komunikasi

menggunakan SRUW dan group SRUW sebagai tujuan, dan menggunakan virtual memory. ♦ Server group menyediakan fasilitas migrasi SRUW dan group SRUW. Layanan group terbatas

karena resource terbagi antar server. Multicast diminta ketika resource digandakan antar server untuk memperoleh kemampuan lebih.

♦ Resource atau resource group dapat dipindahkan secara dinamis dari satu server ke yang lain menggunakan migrasi SRUW atau menipulasi group SRUW. Migrasi resource membutuhkan kerja keras dan sinkronisasi dalam mengirimkan resource antar dua server yang terlibat.

♦ Fasilitas chorus mengijinkan server bekerja pada ruang pengalamatan kernel untuk meningkatkan performansi dan mencegah kehilangan hardware antara server dan kernel.

Page 124: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

120 Distributed System and Inter-Operability

__________________________________________________________________________________________

�����',675,%87('�&20387,1*�(19,5210(17����������3HQGDKXOXDQ��Secara harfiah, GLVWULEXWHG� FRPSXWLQJ� HQYLURQPHQW (DCE) memiliki arti “ lingkungan perhitungan terdistribusi” , yaitu suatu lingkungan yang mendukung perhitungan (computing) terdistribusi. Aplikasi sistem terdistribusi agar bisa djalankan memerlukan adanya lingkungan terdistribusi. Banyak produsen/ YHQGRU yang memecahan masalah yang dihadapi seputar sistem terdistribus ini, tetapi masih untuk lingkungan dengan karakteristik masing-masing YHQGRU.

DCE, Distributed Computing Environment, lahir dari Open Group (sebelumnya bernama Open Software Foundaton/ OSF1). OSF mengedarkan proposal untuk mendapatkan standar-standar sehubunan dengan DCE ini, menerima respon dan komentar atas proposal tersebut, memilh standar yang bisa diterima, dan kemudian menyebarluaskannya.

DCE dari OSF ini merupakan salah satu dari sedikit GLVWULEXWHG�FRPSXWLQJ�HQYLURQPHQW dan secara GH�IDFWR telah menjadi standar dalam industri. Hal ini karena OSF didukung oleh grup vendor/ produsen utama komputer dan telekomunikasi, yaitu IBM, DEC, HP, AT&T, Sun Microsystem, Siemens, dan lain-lain. Grup ini mengunakan DCE pada produk yang dibuat, ataupun menjadikannya satu bundel pada sistem operasi yang diproduksinya. Dukungan DCE sebagai WKLUG� SDUW\ untuk san dan berbagai sistem di luar OSF, mulai dari PC hingga superkomputer, tersedia.

Dalam DCE, semua layanan terintegrasikan untuk mendukung pengembangan, penggunaan, dan pengelolaan aplikasi terdistribusi, sehingga menjadi teknologi kunci yang memungkinkan perhitungan terdistribusi (distributed computing).

�3URVHV�3HQJHPEDQJDQ�'&(�DCE dibangun oleh Open System Foundation (OSF) pada awal 1990’ s (OSF sekarang bernama Open Group). OSF merupakan grup yang terdiri dari IBM, DEC, HP, AT&T, Sun Microsystem, Siemens, dan lain-lain hingga lebih dari 300 anggota yang terdr dari YHQGRU, independent software vendors (ISV’ s), dan users.

Tujuan awal DCE adalah untuk mengembangkan dan memasarkan Unix versi baru, yaitu OSF/1, sistem operasi yang bersifat terbuka (RSHQ) pertama kali yang ada untuk industri. Projek OSF/1 merupakan respon atas kerjasama antara ST&T dan Sun Microsystem untuk mengembangkan dan memasarkan sistem operasi Unix mereka. Projek OSF/1 ini diidentifikasikan sebagai kebutuhan solusi untuk pembangunan aplikasi-aplikasi terdistribusi di atas OSF/1 dan sistem Unix yang lain. Hasil dari pengembangan DCE ini adalah, integrasi paket alat bantu (WRRO) dan VRIWZDUH yang lain diperlukan untuk membangun dan mengelola sistem terdistribusi. 1 ht tp: / / www.osf .org/

Page 125: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

121 Distributed System and Inter-Operability

__________________________________________________________________________________________ Proposal Request For Technology (RFT) diedarkan oleh OSF pada bulan Juni 1989, dan direspon oleh 32 organisasi dengan mengirimkan teknologinya. Teknologi yang dipilih diumumkan Mei 1990. Teknologi yang dipilih berasal dari 5 organisasi. DCE ini dibangun dengan pendekatan evolusioner , yaitu non-microkernel, tidak seperti Amoeba, Mach, & Chorus. DCE dibangun di atas sistem operasi yang populer, Unix dan non-Unix. DCE mampu dijaankan di atas berbagai jenis komputer, sistem operasi, dan jaringan. Oleh karena itu, DCE memiliki kemampuan untuk menyembunyikan perbedaan sistem dan konversi data otomatis

Dalam distribusi DCE, OSF menyediakan kode, YHQGRU mengkompilasi dalam kernel ataupun dalam aplikasi. Lisensi kode dapat dimiliki oleh siapa saja dan diperbolehkan untuk menggunakannya dalam produk yang dibuat. DCE versi 1.0 memiliki VRXUFH� FRGH yang ditulis dalam bahasa C. Mesin/ platform referensi versi 1.0 ini adalah OSF/1 dan AIX dari IBM. Kemudian, referensi SRUW untuk SVR4 juga disedakan.

*DPEDU�������'&(�GDQ�(YROXVL�1HWZRUN�2SHUDWLQJ�6\VWHP�

3HQGHILQLVLDQ�'&(�Berikut ini tabel dukungan yang dituntut harus ada pada DCE.

�7DEHO������7XQWXWDQ�'XNXQJDQ�3DGD�'&(�

¹Rºm»�¼�º�¼�½�»·¾¿º"À�º"»mÁY½�» ¹RºAÂ�ºm½�»Lingkungan yang Ã�Ä�ÅYÆ¿Ç Ä�Ã�à dan koheren Untuk menjalankan aplikas terdistribusi, menggunakan model client-server È�ÉYÉ Ç dan layanan yang terintegrasi Untuk membantu pengengembangan aplikasi terdistribusi Dapat dijalankan di berbagai lingkungan Agar bisa digunakan di berbagai jenis komputer, sistem operasi, dan jaringan Kemudahan untuk menghaslkan aplikasi Ã É ÊYË Ì ÅYÍ�Ä portabel

Dapat dipindah ke UNIX, VMS, Windows, maupun OS/2

Transparan bagi user dan pengembang Tidak perlu mengetahui lokasi fisik data. Tidak perlu mengetahui lokasi eksekusi

Page 126: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

122 Distributed System and Inter-Operability

__________________________________________________________________________________________ ( Î�Ä�Ï�Ä:Ç É±Ð Ä�Í ) program. Bekerja dengan standar yang ada saat ini Komunikasi dengan TCP/IP ataupun protokol OSI. ÑkÄ�à É�Ò Í�Ó+Ä diketahui lokasinya

dengan DNS ataupun dengan sistem penamaan X.500. Mendukung sistem sederhanan Mendukung PC (tidak perlu Æ�ÅmÔ Õ Ê Í�ÅYÆ�Ä ), bahkan dengan sstem ÎmÔ Ã�Ö:Ç Ä�Ã�à .

Secara arsitektur, pendekatan dalam DCE berdasar pada karakteristik yang membedakan lingkungkungan terdstribus dengan lingkungan VWDQG�DORQH, dan kemudian dirancang solusi atas karakteristiknya.

.DUDNWHULVWLN�Berikut ini beberapa karakteristik yang membedakan DCE dengan sistem VWDQG�DORQH:

Fisik terpisah

Dengan memanfaatkan kapabilitas KDUGZDUH pada LAN (ORFDO� DUHD� QHWZRUN) dan WAN (ZLGH� DUHD� QHWZRUN), DCE dapat secara fisik tersebar dan berpotensi untuk dikembangkan pada area geografi yang luas.

Skalabilitas

Jumlah komponen VRIWZDUH (misalkan ILOH VHUYHU, QDPH VHUYHU, atau WLPH VHUYHU) dan jumlah KDUGZDUH untuk proses (misalkan PXOWLXVHU WLPH VKDULQJ�V\VWHP, SULQWHU, atau GLVN VHUYHU) dapat memiliki jarak yang kecil atau sangat luas. Kenyataannya, DCE yang luas berpotensi memiliki puluhan hingga ratusan entiti komponen dan proses. Dengan karakteristik ini, DCE mampu menangani:

Projek-projek riset dengan jumlah komputer dan user yang terbatas

Aplikasi sebenarnya memerlukan pengguna/ user sebanyak 100 hingga 1000 (dari perbankan, bidang keuangan, mesin-mesin ATM, hingga WHOHPHGLFLQH)

Otonomi Administrasi

DCE, seperti dijelaskan sebelumnya, ada perkembangan pemisahan fisik dan perkembangan skala, memiliki kebutuhan untuk berkembang untuk mendukung berbagai kebijakan (SROLF\) adminstrasi yang independen terhadap domain yang lain. Otonomi administras ini biasanya berupa sesuatu yang bersifat lokal, misalkan bahasa, kebutuhan organisasi, dan hambatan geografi.

Heterogenitas dan Interoperabilitas

Perkembangan juga ada pada kapabiltas KDUGZDUH dan VRIWZDUH. Perubahan dapat ditangani dengan pencadangan tempat instalasi, atau solusi antisipatif yangdiberikan oleh organsisasi lain. Kebutuhan dukungan tidak hanya berdasar kondisi yang ada (misalkan KDUGZDUH atau sistem operasi), melainkan juga berdasar teknologi-teknologi baru yang nantinya juga harus dintegrasikan. Sebagai tambahan, sangat dimungkinkan munculnya lebih dari satu penyedia, baik KDUGZDUH maupun VRIWZDUH, untuk berbagai layanan. Detail karakteristik untuk mendukung heterogenitas dan interoperabilitas pada DCE adalah sebagai berkut:

Mendukung jaringan komputer dan protokol yang berbeda

Mendukung perangkat dari produsen/ vendor yang berbeda, misalkan perangkat keras dan sistem operasi

Mendukung aplikasi-aplikasi yang berbeda

Page 127: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

123 Distributed System and Inter-Operability

__________________________________________________________________________________________

Memerlukan penggabungan dan penyetaraan (matching)

Mendukung tipe-tipe media transmisi yang berbeda

Mendukung protokol jaringan yang unik dari berbagai produsen/ vendor

Mendukung protokol-protokol yang standar

Mendukung skematik pengalamatan yang berbeda

Mendukung aplikasi-aplikasi yang melibatkan bermacam-macam pengguna/ XVHU. Mendukung keamanan jaringan

7DQWDQJDQ�Berikut ini adalah tantangan yang harus dihadap oleh DCE:

Penamaan/ 1DPLQJ

Seperti pada sistem VWDQG-DORQH, kemampuan menerima informasi sehubungan dengan nama (objek) merupakan fungsi utama pada sstem terdistribusi. Nama dapat dihubungkan dengan, misalkan, ILOH, perangkat, atau aplikasi. Pada DCE, informasi ini harus dapat diperoleh di mana saja di jaringan. Penamaan ini hendaknya juga mengacu pada objek yang dinamai.

Keamanan

Mirip juga dengan lingkungan VWDQG-DORQH, kebutuhan akses kontrol pada UHVRXUFH merupakan fungsi utama pada sistem. DCE sebagai sistem yang menggunakan jaringan komunikasi, sangat rentan dalam pengaturan akses terhadap UHVRXUFH. Sebagai contoh, informasi yang melalui media fisik (seperti Ethernet) tidak dapat diasumsikan aman, dapat saja dilakukan tapping untuk dibaca dan dimanipulasi.

Kemampuan Manajemen

Sehubungan dengan karakteristik administrasi yang otonom, masing-masing jaringan dapat dikelola dengan cara yang berbeda. Arsitektur DCE harus dapat mendukung implementasi berbagai kebijakan manajemen. Agar bisa efektif, fungsi manajemen ini harus djalankan oleh mesin/ sistem memiliki kemampuan sebagaimana disyaratkan pada teknologi sistem terdstribusi, misalkan harus dapat berjalan pada lngkungan yang heterogen dan jarngan berskala besar.

Ketidakpastian/ ,QGHWHUPLQDF\ Walaupun kemampuan sifat paralel (WUXH� SDUDOOHOLVP) merupakan ciri DCE yang efektif, tantangan utama yang paling signifikan adalah suatu ketidakpastian (LQGHWHUPLQDF\). Ketidakpastian ni dimanifestasikan dengan tidak konsistennya data yang digunakan bersama-sama, yang disebabkan oleh ketidaksinkronan (misalkan suatu fungsi dijalankan paralel pada sistem yang terpisah), karena latensi (kegagalan yang temporer, kadang berhasil, kadang gagal, dan tidak bisa diperkirakan), dan karena urutan proses (penentuan urutan proses secara akurat harus bisa dilakukan pada proses yang dijalankan pada sistem yang terpisah)

.HXQWXQJDQ�'&(� Mengintegrasikan layanan-layanan yang ada di lingkungan perhitungan/ computing yang berbeda, dari berbagai gabungan arsitektur, protokol, dan sistem operasi.

Page 128: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

124 Distributed System and Inter-Operability

__________________________________________________________________________________________

Mudah digunakan

Lebih bernilai jika digunakan secara bersama, dibandingkan dengan secara sendiri-sendiri.

Menyediakan kapabilitas-kapabilitas/ kemampuan-kemampuan baru

Layanan sekuriti/ keamanan

Threads

Mendukung portabilitas dan interoperability

Beroperasi sebagai midleware, yang terletak di antara sistem operasi yang bervarasi, dengan aplikasi dan data.

Komponen DCE dapat digunakan pada berbagai sistem operasi (elemen DCE ada pada hampir semua Unix, NT 5.0 dibangun dengan berdasar modifikasi RPC dan keamanan pada DCE, sedangkan IBM menggunakan DCE sebagai dasar layanan direktori dan keamanan)

�������0RGHO�'&(�$UVLWHNWXU�'&(�Arsitektur DCE memiliki kompleksitas fisik karena menyediakan lapisan/ OD\HU yang logikanya disederhanakan, terdiri dari kumpulan layanan/ VHUYLFH yang dapat digunakan untuk membentuk lingkungan pada DCE yang terintegrasi. DCE menyediakan lingkungan komunikasi yang memungkinkan informasi berpndah dari tempat asalnya (misalkan) ke tempat lain yang membutuhkan (misalkan ZRUNVWDWLRQ di laboratorium atau kantor). Lingkungan ini didesain dapat bekerja tanpa perlu mengekspos kompleksitas jaringan kepada HQG-XVHU, administrator sistem, atau pengembang aplikasi.

Distributed File Service

$33/,&$7,216�× Ø Ù

Ú ÛÜÝÞ

ß à áàâ Øã Ø áÝ

äOå æmçAè Ø æAæ × Ú�é"éYê Û Ý× Ø Û ë å Ù Ø ì Ý�í Ø Û äOå æ Ý Û å î Ú Ý Ø�ï× Ø Û ë å Ù Ø æ·ð ñ Ú Ý Ú Û ØYòäOå æ Ý Û å î Ú Ý Ø�ï ñ"å è Ø × Ø Û ë å Ù Ø

ì ݱí Ø Û ñ Ú á ï�à�ã·Ø á Ý à è× Ø Û ë å Ù Ø æ·ð ñ Ú Ý Ú Û ØYòóGå ã·Ø× Ø Û ë å Ù Ø

änå Û Ø Ù Ý ê Û Þ× Ø Û ë å Ù Ø ô Ø�ã ê Ý Øöõ Û ê Ù ØYï Ú Û Ø�÷Oà è è æ ó í Û ØAà�ï æ 23(5$7,1*�6<67(0�$1'�75$163257�

�*DPEDU��������$UVLWHNWXU�'&(�

Gambar di atas menunjukkan arsitektur DCE. Model berlapis (OD\HUHG� PRGHO) ini mengintegrasikan kumpulan teknologi yangfundamental. Arsitektur ini memiliki OD\HU dari bawah ke atas, dari layanan yang paling dasar, yaitu sistem operasi, hingga ke OD\HU teratas dari lingkungan yang disediakan. Layanan keamanan dan manajemen memiliki esensi bagi semua OD\HU. Pada aplikasi, DCE nampak sebagai sebuah sistem logis tunggal yang dapat

Page 129: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

125 Distributed System and Inter-Operability

__________________________________________________________________________________________ dikelola menjadi dua kategori layanan utama, yaitu inti keamanan DCE (DCE Secure Core) dan layanan bersama data DCE (DCE Data Sharing Services).

�$UVLWHNWXU�3DGD�0LFURVRIW�:LQGRZV�

økù�úû¿üýü þ ÿ �������� ����

������

����� ��� û�� �

� � ��� ÿ � ��� þ ÿ ��� ����� ù � �!�

"��#� �%$

��&(' �û·ü�ü�) ÿ � � � ÿ � ���*,+ � � ���

þ ÿ � � ��- �/. � � þ � � �#� � 0 ü �

*DPEDU�������$UVLWHNWXU�'&(�SDGD�0LFURVRIW�:LQGRZV�

&OLHQW�6HUYHU�Model DCE mengandalkan model client-server, dengan mekanisme client sebagai pihak yang meminta layanan (VHUYLFH� UHTXHVW) dan server sebagai penyedia layanan (VHUYLFH� SURYLGHU). Model client-server ini dimiliki oleh semua mesin yang ada di dalam DCE, dan setiap mesin dapat memiliki dukungan untuk menjadi keduanya, baik sebagai FOLHQW maupun sebagai VHUYHU. Setiap proses pun dapat bertindak sebagai FOLHQW maupun sebagai VHUYHU. 6HO��&HOO��Hampir semua FOLHQW melakukan hampir semua komunikasinya hanya dengan sedikit VHUYHU. Pada DCE, FOLHQW dan VHUYHU yang saling berkomunikasi hampir semuanya dikelompokkan jadi satu kelompok yang disebut sel (FHOO). Sel ini bertindak sebagai unit administratif. Setiap mesin hanya memiliki satu sel, dan setiap sel dapat terdiri dari dua hingga ratusan sistem. DCE mengoptimalkan komunikasi intrasel.

Page 130: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

126 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�������&RQWRK�6LVWHP�'DODP�6HO�'&(�

*DPEDU�������6LVWHP�0XOWLVHO� Sel ini merupakan kelompok pembagian bersama (sharing) XVHU, sistem, dan UHVRXUFH pada layanan umum DCE, termasuk keamanan dan penamaan. Sel ini biasanya dikelompokkan dalam masing-masing kelompok geografi.

Pembagian sel ini berhubungan dengan:

Tujuan

Komponen sel (mesin & XVHU) harus bisa digunakan untuk tujuan DCE dalam waktu yang cukup lama (misalkan tahunan). Dapat berhubungan dengan layanan lain,

Page 131: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

127 Distributed System and Inter-Operability

__________________________________________________________________________________________

misalkan sebagai online banking harus dapat berhubungan dengan ATM dan komputer sentral.

Biaya

Dalam hal ini aspek geografi berpengaruh, selain karena komunikasi jaringan jarak jauh yang kurang handal dan lambat. Pembangunan sel dengan jarak geografi yang relatif sempit secara logis akan menurunkan biaya implementasi.

Keamanan

DCE dapat bekerja jika antar-XVHU dalam satu sel saling percaya, lebih dari yang di luar sel. Konsep firewall digunakan agar akses sumber daya internal dapat secara langsung, sedangkan akses eksternal perlu persetujuan.

Administrasi

Setiap sel memerlukan administrator, yang bertugas mengatur manajemen internal sel dan antarsel, dan termasuk meminimalikan operasi lintas sel. Setiap sel memiliki standar keamanan yang otonom. Hal ini memberikan keuntungan, bahwa akses tanpa autorisasi harus menembus keamanan keseluruhan sel sebelum dapat melakukan aktivitas KDFNLQJ/ FUDFNLQJ.

�)DVLOLWDV�'&(�DCE memberikan fasilitas WKUHDG untuk pengaturan dan RPC (UHPRWH�SURFHGXUH�FDOO) untuk komunikasi. ��������7KUHDGV�Hampir semua sistem operasi modern (misalkan Windows 2003 Server dan Solaris) dan generasi terbaru bahasa pemprograman (misalkan Java) mengintegrasikan konsep WKUHDG. DCE memperbolehkan WKUHDG ganda pada pengaturan kontrol dimunculkan pada proses yang sama pada waktu bersamaan. Paket WKUHDG DCE dibangun berdasarkan Concert Multithread Architecture (CMA) yang dikembangkan DEC. 7KUHDG DCE dijalankan pada XVHU VSDFH, dan menyediakan prosedur pustaka (OLEUDU\� SURFHGXUH) berlevel XVHU yang memperbolehkan proses melakukan FUHDWH, GHOHWH, ataupun manipulasi pada WKUHDG, termasuk menyediakan rutin (URXWLQH) VPDOO� ZUDSSHU untuk mentranslasi FDOO menjadi paket WKUHDG yang berbasis kernel. 7KUHDG DCE digunakan oleh komponen DCE yang lain

Dukungan yang diberikan WKUHDG ini adalah lingkungan multiprosesor dengan menggunakan VKDUHG� PHPRU\. Layanan semaphore disediakan untuk sinkronisasi akses terhadap VKDUHG PHPRU\ ini. Algoritma penjadwalan untuk proses antrian WKUHDG memiliki tiga pilihan, yaitu FIFO, Round Robin, dan Time-sliced Round Robin.

�.HXQWXQJDQ�

7KUHDG pada DCE ini memberikan keuntungan

Mudah digunakan

Dukungan multi-language

Page 132: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

128 Distributed System and Inter-Operability

__________________________________________________________________________________________

Dukungan multi-processing yang transparan

6WDWXV�7KUHDG� Running

Ready

Waiting

Terminated

�3HUPDVDODKDQ�Permasalahan yang muncul adalah ketika mesin dengan kemampuan VLQJOH-WKUHDG harus menangani PXOWL-WKUHDG, maka perlu proses konversi dari VLQJOH-WKUHDG menjadi multi-WKUHDG. Sedangkan konsekuensi dari konversi ini adalah:

Pensinyalan, bagaimana mengatur antara pensinyala sinkron dan asinkron

Standar pustaka (OLEUDU\), dilakukan dengan penjaketan prosedur menjadi suatu library yang standar, misalkan UHDG dan IRUN

Variabel Global Status Error (ERRNO), semua WKUHDG menggunakan variabel yang sama, sehingga pada proses yang paralel akan tumpang tindih. Untuk itu dibuat antarmuka penanganan HUURU.

��������5HPRWH�3URFHGXUH�&DOO��53&��5HPRWH�3URFHGXUH�&DOO�(RPC) merupakan dasar bagi FOLHQW-VHUYHU untuk berkomunikasi pada DCE. RPC ini menangani penentuan lokasi VHUYHU, ELQGLQJ, dan melakukan FDOO.

*DPEDU�������0HNDQLVPH�53&�3DGD�'&(�

Page 133: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

129 Distributed System and Inter-Operability

__________________________________________________________________________________________ 7XMXDQ�Untuk mencapai transparansi akses, yang memungkinkan FOLHQW melakukan akses pada UHPRWH VHUYLFH semudah melakukan FDOO pada prosedur lokal, dengan demikian akan memudahkan pemprograman aplikasi FOLHQW-VHUYHU. �.HXQJJXODQ�

5XQWLPH�OLEUDU\ pada RPC bertanggung jawab untuk

Locating a server in the distributed system and binding to it

Performing message exchanges

Packing and unpacking message parameters

Handling data type conversions between different clients and servers

Processing errors

Mekanisme RPC menyediakan independensi pada protokol dan jaringan

DCE menyediakan Interface Definition Language (IDL) dan kompilernya untuk memfasilitasi pembuatan kode untuk FOLHQW dan server dengan menggunakan RPC. and compiler that facilitate creation of client and server code using RPC

*DPEDU�������3URVHV�3HQJNRGHDQ�53&�8QWXN�&OLHQW�6HUYHU�

Page 134: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

130 Distributed System and Inter-Operability

__________________________________________________________________________________________ �%LQGLQJ�GDUL�&OLHQW�NH�6HUYHU�

Server

Tiap mesin VHUYHU menjalankan proses GDHPRQ (VRIWZDUH aplikasi VHUYHU) RPC yang mengelola tabel register setiap HQGSRLQW VHUYHU. 6HUYHU melakukan registrasi HQGSRLQW pada GDHPRQ RPC dan melakukan registrasi layanan serta KRVW pada VHUYHU direktori yang terpisah.

Client

&OLHQW menghubungi VHUYHU direktori untuk mencari KRVW dari VHUYHU yang diinginkan, kemudian menghubungi GDHPRQ RPC pada VHUYHU KRVW yang dituju untuk menentukan HQGSRLQW. Setelah itu FOLHQW melakukan operasi RPC, ELQGLQJ Performs RPC, binding to correct end point on server KRVW�

*DPEDU�������%LQGLQJ�'DUL�&OLHQW�.H�6HUYHU�

��������/D\DQDQ�OD\DQDQ��6HUYLFHV��'&(��'LVWULEXWHG�7LPH�6HUYLFH��'76��Layanan DTS ini disediakan agar secara transparan dapat dilakukan pengelolaan pewaktuan (FORFN) yang konsisten pada sitem terdistribusi. Sinkronisasi FORFN semua komputer dengan standar pewaktuan yang secara luas dapat dikenali (widely-recognized time standard). Tujuannya adalah FORFN yang sama pada suatu waktu dan terus sama pada waktu lain

�.HXQWXQJDQ�

Fault tolerance

Manajemen yang sederhana

Page 135: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

131 Distributed System and Inter-Operability

__________________________________________________________________________________________

0RGHO�SHZDNWXDQ� Manajemen perbedaan waktu

Grup call pada DTS: Retreiving times, converting times, manipulating times, comparating times, calculating times, using time zones

�.RPSRQHQ�'76�

Global Time Server

Sistem terdistribusi memiliki Global Time Server yang lebih dari satu yang akan menjadi penjaga agar Local Time Servers dalam sel yang berbeda dapat sinkron.

Local Time Server

Setiap sel memiliki Local Time Server yang akan menjaga sinkronisasi FORFN pada semua anggota sel agar sinkron, sekaligus meminta Global Time Servers untuk melakukan sinkronisasi

%HEHUDSD�,VWLODK� Clock drift rate, pengukuran laju penambahan ketidakakuratan pada FORFN lokal.

Universal Coordinated Time (UCT), format FORFN yang secara umum diterima di seluruh dunia, mengekspresikan waktu sejak 15 Oktober 1852 sebagai permulaan kalenda gregorian. UTC VHUYHU menyediakan layanan FORFN UTC melalui koneksi satelit, radio, atau telepon.

�0HNDQLVPH�'76�Local Time 6HUYHU (LTS) meminta sinkronisasi pada Global Time Servers (GTS) dan direspon oleh semua GTS termasuk memberikan data ketidakakuratannya. Informasi FORFN yang diberikan GTS berupa interval waktu dengan data 64-bit. Interval waktu ini dihitung LTS untuk mendapatkan FORFN yang tepat berdasar multirespon yang diterima. LTS menyesuaikan FORFN dengan cara langsung maupun gradual. Perhitungan FORFN ini dilakukan berdasar nilai interval maksimum atas semua respon yang diterima. Respon data di luar interval maksimum ini tidak digunakan. Titik tengah interval maksismum ini digunakan sebagai FORFN yang akurat.

Page 136: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

132 Distributed System and Inter-Operability

__________________________________________________________________________________________

*DPEDU�������0HNDQLVPH�'76�

/LEUDU\�3URFHGXUHV��&DOOV��SDGD�'76�Terdapat 33 FDOO yang digunakan oleh DTS dan dikelompokkan menjadi 6 grup, yaitu:

Retrieving times, untuk mendapatkan waktu saat ini

Converting times, konversi biner-ASCII

Manipulating times, aperhitungan interval

Comparing times, komparasi dua FORFN Calculating times, perhitungan aritmatika pada FORFN Using time zones, manajemen zona waktu

�,PSOHPHQWDVL�'76�'DHPRQ DTS (hampir semua menggunakan Time Clerk) pada client dijalankan untuk sinkronisasi. Time Clerk menghubungi time server di LAN, meminta sinkronisasi FORFN, kemudian dilakukan koreksi pada FORFN. �'LUHFWRU\�6HYLFH�Cell Directory Service, (CDS) and Global Directory Service, (GDS)

*RDOV� Make all resources accessible to any process in the system without regard for location users, machines, cells, servers, services, files, security data

Location transparency - hide resource locations

Page 137: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

133 Distributed System and Inter-Operability

__________________________________________________________________________________________

�&RPSRQHQWV�

Cell Directory Service (CDS)

CDS server maintains names for one cell

CDS clerk (daemon process) does client caching

Global Directory Service (GDS)

Service for locating cells

X.500 naming standard, provides unique name to each resource

/C=US/O-CNU/TITLE=PROF/TELE=7563/OFFICE=217/NAME=ZHANG/

Global Directory Agent (GDA)

Local agent (daemon process) contacts external GDS and DNS servers

�)HDWXUHV�

Hides actual paths/machine names

Provides proxies on local machines to intercept calls for devices/resources and redirect them to correct servers

Client cashing increases availability and performance

Supports DNS naming

X.500 standard naming uses object-oriented information model

*DPEDU�������5HODWLRQVKLS�EHWZHHQ�GLUHFWRU\�VHUYLFH�FRPSRQHQWV��

'LVWULEXWHG�)LOH�6HUYLFH��')6��Distributed file system, X.500 standard, works with local files systems. Menggabungkan file system yang individu. Keuntungannnya adalah performansi tinggi, skalabilitas, dan keamanan.

Page 138: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

134 Distributed System and Inter-Operability

__________________________________________________________________________________________

�*RDOV��

Provide a seamless wide-area (potentially worldwide) file system spanning the heterogeneous distributed network of computers

Provide namespace transparency so users only

�&RPSRQHQWV��

File units: Files and directories

Files sets: File sets are groups of directories

Base file: units that are manipulated, replicated and backed up

Disk partitio

Client side – cache manager

Server side –

Episode - ACL protection, replication, fast recovery

Token manager – handles consistency, involved in caching

)HDWXUHV� DSF is a DCE application that has access to (is integrated with) all other DCE facilities

Threads – to server multiple simultaneous file access request

RPC – for communicating the file service to clients

Time service – to synchronize file server clocks

Directory service - to allow file servers to be located

Security service – for authentication and privilege access to files

DFS has two main parts – a local part and a wide-area part

Local part – “ Episode” – analogous to a stand-alone UNIX file system

Provides seamless integration over existing file many systems

4.3 BSD, System V, NFS, Episode, & other file systems

File name – each file name in the system (potentially worldwide)

has unique path extending from the global root ” /” directory

Includes local cell name concatenated with its name within the cell

�)LOH�1DPHV�

There are four ways to refer to the same Global file name

Page 139: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

135 Distributed System and Inter-Operability

__________________________________________________________________________________________

File system relative - /:/usr/tjones/report

Cell relative - /.:/fs/usr/tjones/report

Internet format - /… /cs.vt.edu/fs/usr/tjones/report

X.500 format - /… /C=US/O=VT/OU=CS/fs/usr/tjones/report

“ /fs/” is the junction where the local file system is mounted in the global DFS tree

�)LOH�DFFHVV�ZLWK�$FFHVV�&RQWURO�/LVWV�

DFS uses ACLs instead of UNIX RWX file permissions

An ACL for a file or directory consists of a list of entries describing owners, users, groups, local/foreign and corresponding allowed operations

read, write, execute, insert, delete, control

�.HDPDQDQ�*RDOV�Menyediakan jaringan dengan layanan umum:

Autentikasi validitas principal

Autorisasi hak-hak principal

Manajemen account pengguna: Menggunakan RPC pada DCE untuk memberikan jaminan integritas komunikasi

Principal (pelaku): User atau proses yang hendak berkomunikasi secara aman

&KDOOHQJHV� Need method for communicating parties to prove who they are

Clear-text passwords (time-shared system model) will not suffice

'HILQLWLRQ�RI�NH\�WHUPV� Non-Repudiation

A means of providing irrefutable evidence that two parties were involved in a client/server interaction. Successful non-repudiation prevents attacks via message corruption or message replay.

Privilege Access Certificates (PAC’ s)

Encrypted messages that contain the client’ s identity, group and organization membership such that servers can be instantly convinced of the client’ s identity. Contains the user’ s identity and the list of groups to which he belongs.

Access Control List (ACL)

List of users and groups that are allowed to access a UHVRXUFH. Maintained for every distributed resource

Page 140: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

136 Distributed System and Inter-Operability

__________________________________________________________________________________________

'&(¶V�'LVWULEXWHG�6HFXULW\�6HUYLFH� Called Kerberos (Mythology: 3-headed dog that guarded gates of Hades)

Exceeds C2 level certification

Key Features of Kerberos security

Digital certificates

Access control lists

Encryption

Cryptographic checksums

Message time stamps

Works with Enterprise-wide distributed systems

Not good for use with world-wide distributed systems, Internet

.HUEHURV�Developed at MIT (Athena Project). Versions of Kerberos can be purchased commercially, or downloaded from MIT. Provides a trusted third party that allows two processes to prove that they are who they say they are. Uses encrypted “ tickets” for user authentication, session access and subsequent communication with a server

Weaknesses of Kerberos:

Does not scale well in unmanaged Internet environment. Popular Internet solution uses digital certificates with a public & private key infrastructure.

Encryption introduces significant performance overhead, some configurations can be overkill in certain applications

0DMRU�&RPSRQHQWV�RI�.HUEHURV� Registry Server - Manages the security database, the “ registry”

Account information - names of users, groups, resources, and organizations

Policy information – length, format, lifetime of passwords, etc.

Authentication Server

Verifies identity of client

Ticket Granting Server

Issue “ ticket” to allow subsequent authorization without need for sending password across the network (actually same process as Auth. Server)

Privilege Server

Issues Privilege Access Certificates (PAC’ s) to authenticated users for access to distributed services

Login Facility

Page 141: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

137 Distributed System and Inter-Operability

__________________________________________________________________________________________

Provides login sequence to get user logged in and collect necessary tickets and PAC’ s for them

*DPEDU�������.RPSRQHQ�.HUEHURV�

��������3HPDNDLDQ�'&(��0HVLQ�3HQGXNXQJ�6\DUDW�NHPDPSXDQ��

Multi-programming

IPC

Manajemen memori

Timer

Keamanan

3HQJDWXUDQ� Administrator sistem mengatur layanan apa yang dijalankan di mesin yang mana

Umumnya layanan hanya di mesin “ system server”

9HQGRU� %HUEDVLV� 8QL[��DEC OSF/1, Ultrix, HP-UX, AIX, SunOS, Solaris, Cray Unicos, OS/2, IBM AS/400, MVS, Cray Unicos, Siemens Sinix, Tandem Guardian, Integrity

%HUEDVLV� 1RQ�8QL[�� OpenVMS, MS Windows (Windows 3.1, Window 9x, Windows NT/ 2k, Windows XP, Windows 2003 6HUYHU)

�3URJUDPPHUV��

DCE implements the client/server model. access services and applications via RPC calls to remote servers make use of standard programming interface with RPC calls don’ t have to worry about where the programs actually run or where the data is actually located

Page 142: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

138 Distributed System and Inter-Operability

__________________________________________________________________________________________ �8VHUV��

Single system login

Transparent access to distributed resources and services

��������,QIRUPDVL�7DPEDKDQ��'&(¶V�$QVZHUV�

How do we locate a service? Directory Service

How do we talk to the service? RPC

How do we provide security? Security Service

How do we support autonomy? Cells

How do we make it scalable? Service Distribution

How do we handle heterogeneity? RPC and DFS

�&25%$�YV��'&(�&25%$�

focused on interoperability

object-oriented

scalable?

performance?

http://www.omg.org

'&(� focused on performance, scalability

lower-level

interoperability?

http://www.xopen.org

�������5LQJNDVDQ�DCE is a network-programming environment that attempts to hide the underlying complexity of distributed systems. It is a procedural programming environment that converts the function calls from a client to a server into RPCs. DCE takes care of all the underlying differences between the hardware (such as big endian/little endian) and the operating system (such as parameter order) through marshalling. DCE introduces many standards into the chaotic world of distributed computing. Platform-independent implementations for threads, RPC, directory services, time services, security, and data sharing are all detailed in DCE.

Page 143: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

139 Distributed System and Inter-Operability

__________________________________________________________________________________________ ���������5HIHUHQVL�Open System Foundation www.osf.org/dce/index.html Project Pilgrim, U of Massachusetts info.pilgrim.umass.edu/pub/osf_dce Center for Info Tech Integration (CITI) www.citi.umich.edu/techreports Transarc Corporation www.transarc.com/pub/ps/dce Digital Equipment Corporation, October 1994. “ Digital Distributed Computing Environment (DCE) for Windows NT“ . http://www.digital.com/info/dce/ntinfo.htm “ OSF Standards for RPC” . Microsoft Corporation. MSDN Library January 1997. Coulouris, George, Distributed Systems, Addison-Wesley, New York, NY, 2001 Galli, Doreen L., Distributed Operating Systems Concepts & Practice, Prentice Hall, Upper Saddle River, NJ, 2000 Gray, John Shapley, Interprocess Communications in UNIX, Prentice Hall, Upper Saddle River, NJ Hansen, Brad, The Dictionary of Computing and Digital Media, ABF Content, Wilsonville, Oregon 1999 Orfali, Robert, Client/Server Survival Guide, John Wiley & Sons Inc., New York, 3rd edition, NY, 1998 Tanenbaum, Andrew S., Distributed Operating Systems, Prentice Hall, Upper Saddle River, NJ, 1995 ���������/DPSLUDQ��'&(�*ORVVDU\�RI�7HFKQLFDO�7HUPV�

$FFHVV�&RQWURO�/LVW��$&/���Data that controls access to a protected object. An access control list specifies the privilege attribute(s) needed to access the object and the permissions that can be granted, with respect to the protected object, to principals that possess such privilege attribute(s).

$SSOLFDWLRQ�3URJUDPPLQJ�,QWHUIDFH��$3,���A set of callable routines that a programmer uses to interact with an application.

$V\QFKURQRXV�RSHUDWLRQ��An operation that does not itself cause the process or thread) requesting the operation to be blocked from further use of the CPU. This implies that the process and the operation are running concurrently.

$XWKHQWLFDWLRQ��The verification of a principal's network identity.

$XWKHQWLFDWLRQ�SURWRFRO��

Page 144: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

140 Distributed System and Inter-Operability

__________________________________________________________________________________________

A formal procedure for verifying a principal’s network identity; Kerberos is an instance of a shared-secret authentication protocol.

%LQGLQJ��A relationship between a client and a server involved in a remote procedure call.

%ORFNLQJ�FDOO��A call in which a caller is suspended until a called procedure completes.

&DFKLQJ��The technique of copying data from a server machine (its central storage place) to a client machine’s local disk or memory; users then access the copy locally. Caching reduces network load because the data does not have to be fetched across the network more than once (unless the central copy changes).

&HOO��The basic unit of operation in the DCE. A cell is a group of users, systems and resources that are typically centered around a common purpose and that share common DCE services.

&HOO�'LUHFWRU\�6HUYLFH��&'6���A distributed, replicated naming service

&OLHQW��The party that initiates a remote procedure call. Some applications act as both an RPC client and an RPC server. See also server.

&RQGLWLRQ�YDULDEOH��A synchronization object used in conjunction with a mutex. A condition variable allows a thread to block until some event happens.

&UHGHQWLDOV��A general term for privilege attribute data that has been certified by a trusted privilege certification authority. In DCE credentials are implemented as Privilege Attribute Certificates (PACs). See also Privilege Attribute Certificate.

'LVWULEXWHG�)LOH�6HUYLFH��')6���A file service that joins the local file systems of several File Server machines, making the file systems equally available to all DFS client machines.

'LVWULEXWHG�7LPH�6HUYLFH��'76���The Distributed Time Service synchronizes the clocks in networked systems and is responsible for propagating a consistent notion of time throughout a cell.

'RPDLQ�1DPLQJ�6HUYLFH��'16���A distributed directory service used on the Internet. Along with GDS, it provides a global namespace that connects local DCE cells into one worldwide hierarchy.

*OREDO�'LUHFWRU\�6HUYLFH��*'6���

Page 145: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

141 Distributed System and Inter-Operability

__________________________________________________________________________________________

A distributed, replicated directory service based on the CCITT X.500/ISO 9594 international standard. Along with DNS, it provides a global namespace that connects local DCE cells into one worldwide hierarchy.

*OREDO�QDPH��A name that is universally meaningful and usable from anywhere in the DCE naming environment. The prefix /... indicates that a name is global.

,QWHUIDFH��See RPC Interface.

,QWHUIDFH�'HILQLWLRQ�/DQJXDJH��,'/���A high-level declarative language that provides the syntax for interface definitions.

,3��Internet Protocol. A family of network protocols defined by the U.S. Department of Defense.

.HUEHURV��The authentication protocol implemented in DCE. Kerberos was developed at the Massachusetts Institute of Technology. In classical mythology, Kerberos was the three-headed dog that guarded the gates of the underworld.

.H\��A value used to encrypt and decrpyt data.

/RDG�EDODQFLQJ��Distributing system load evenly across server machines by placing identical copies of frequently accessed information among available server machines.

/RFDO�$UHD�1HWZRUN��/$1���A set of computers sharing a network that does not include bridges or Wide Area Network links.

/RFDO�QDPH��A name that is meaningful and usable only from within the cell where the entry exists. The local name is a shortened form of the global name. Local names begin with the prefix /.: and do not contain a cell name.

0XWH[��A synchronization object that provides mutual exclusion among threads. A mutex is often used to ensure that shared variables are always seen by other threads in a consistent state.

1HWZRUN�&RPSXWLQJ�$UFKLWHFWXUH��1&$���An architecture for distributing software applications across heterogeneous collections of networks, computers and programming environments. NCA specifies the DCE Remote Procedure Call architecture.

1HWZRUN�'DWD�5HSUHVHQWDWLRQ��1'5���

Page 146: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

142 Distributed System and Inter-Operability

__________________________________________________________________________________________

The transfer syntax defined by the Network Computing Architecture.

1HWZRUN�)LOH�6\VWHP��1)6���A protocol for remote file access developed by Sun Microsystems, Inc.

1HWZRUN�,QIRUPDWLRQ�6\VWHP��1,6���A protocol for remote distribution of common configuration files developed by Sun Microsystems, Inc.

1HWZRUN�SURWRFRO��A communications protocol from the Network Layer of the OSI network architecture, such as the Internet Protocol.

2EMHFW��A data structure that implements some feature and has an associated set of operations. For RPC applications, an object can be anything that an RPC server defines and identifies to its clients (using an object UUID). Often an RPC object is a physical computing resource such as a database, directory, device or processor. Alternatively, an RPC object can be an abstraction that is meaningful to an application, such as a service or the location of a server. See also object UUID.

2EMHFW�88,'��The universal unique identifier that identifies a particular RPC object. A server specifies a distinct object UUID for each of its RPC objects; to access a particular object RPC object, a client uses the object UUID to find the server that offers the object. See also object, Universal Unique Identifier.

2SHQ�&RQQHFWLYLW\�$UFKLWHFWXUH��A standard way of connecting applications to enterprise services.

3DVVZRUG��A string presented by a principal to prove its identity. The login facility transforms this string to generate an encryption key that is used by the Authentication Service to authenticate the principal.

326,;��A set of standards intended to provide portable interfaces to operating systems services.

3ULQFLSDO��An entity that is capable of believing that it can communicate securely with another entity. In DCE, principals are represented as entries in the security database and include users, servers, computers and cells.

3ULYLOHJH�$WWULEXWH�&HUWLILFDWH��3$&���Data, describing a principal’s privilege attributes, that has been certified by an authority. In DCE, the Privilege Service is the certifying authority. The Privilege Service, along with Kerberos, is part of the DCE Security Service.

5HPRWH�3URFHGXUH�&DOO��53&���

Page 147: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

143 Distributed System and Inter-Operability

__________________________________________________________________________________________

A call to a procedure in a different address space. In a traditional procedure call, the calling procedure and the called procedure are in the same address space on one machine. In a remote procedure call, the calling procedure invokes a procedure in a different address space and usually on a different machine.

5HSOLFDWLRQ��The process of creating read-only copies of information. Replication is supported by the Security, Directory and File services in DCE. Replication can improve availability and load balancing. See also load balancing.

53&�,QWHUIDFH��A logical grouping of operation, data type, and constant declarations that serves as a network contract for calling a set of remote procedures. See also interface definition language.

6HUYHU��The party that receives remote procedure calls. A given application can act as both an RPC server and an RPC client. See also client.

7KUHDG��A single sequential flow of control within a process.

7UDQVDFWLRQ��A related set or unit of changes to metadata. The events in a transaction are atomic. No change takes effect unless all the changes that make up that transaction are performed.

7UDQVSRUW�LQGHSHQGHQFH��The capability, without changing application code, to use any transport protocol that both the client and server systems support, while guaranteeing the same call semantics. See also transport layer, transport protocol.

7UDQVSRUW�OD\HU��A network service that provides end-to-end communications between two parties, while hiding the details of the communications network. The TCP and ISO TP4 transport protocols provide full-duplex virtual circuits on which delivery is reliable, error free, sequenced, and duplicate free. UDP provides no guarantees.

7UDQVSRUW�SURWRFRO��A communications protocol from the transport layer of the OSI network architecture, such as the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP).

8QLYHUVDO�8QLTXH�,GHQWLILHU��88,'���An identifier that is immutable and unique across time and space. See also object UUID.

:LGH�$UHD�1HWZRUN��:$1���A network that includes computers spread across a large geographical distance, usually involving several cities, states or countries. Communications connections in a WAN are typically done over modems, T1 lines, or satellite hookups.

;�2SHQ�)HGHUDWHG�1DPLQJ��;)1���

Page 148: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

144 Distributed System and Inter-Operability

__________________________________________________________________________________________

XFN provides a federated naming service interface comprising a set of common naming operations and infrastructure policies for constructing composite names. A federated naming service maps composite names to their references.

�2SHQ�*URXS�5)&V�

Last update: 18-May-1999

The following list details the status of the RFC’s and their applicability to the current and planned DCE offerings.

When reading this list, please note that those items designated as ‘‘provided’’ or ‘‘met’’ in a particular DCE release do not necessarily provide or meet everything that is specified in the associated RFC. It is likely that there are variations between what is documented in the RFC and what was actually implemented. For full details, please refer to official DCE release documentation.

13254+»�687:9Yº�2;(<�= � ¹?> ¼A@ 4CB:¾D4:EGFH7:> 2�¼I> 9Y»5B:¾¿½A¼A4 �100.0 DCE AND FORTEZZA

January 1997 99.0 MESSAGE QUEUING FOR DCE

March 1997 98.0 CHALLENGES CONCERNING PUBLIC-KEY IN DCE

December 1996 96.0 DFA: DISTRIBUTED FILE ACCESS MANAGER -- FUNCTIONAL SPECIFICATION

Planned for DCE 1.2. April 1996

95.0 DCE/NEXT: REQUIREMENTS SUMMARY August 1996

94.1 A PRIVATE KEY STORAGE SERVER FOR DCE -- FUNCTIONAL SPECIFICATION November 1996

93.0 DCE 1.2 SECURITY SCALABILITY AND PERFORMANCE -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2. February 1996

92.0 DCE INTEROPERABILITY WITH KERBEROS Planned for DCE 1.2. January 1996

91.0 USER-TO-USER AUTHENTICATION -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2. January 1996

90.0 PROPOSED SECURITY ENHANCEMENTS FOR DCE DFS Planned for DCE 1.2. February 1996

89.0 A BULK STATUS RPC FOR DFS Planned for DCE 1.2. 89.0 December 1995

88.0 A JUKEBOX BACKUP SUBSYSTEM FOR DFS Planned for DCE 1.2. December 1995

87.0 DCE 1.2 GLOBAL GROUPS FUNCTIONAL SPECIFICATION Planned for DCE 1.2. December 1995

86.0 UNIFIED LOGIN WITH PLUGGABLE AUTHENTICATION MODULES (PAM)

Page 149: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

145 Distributed System and Inter-Operability

__________________________________________________________________________________________

Planned for CDE/Next. October 1995

85.0 IMPROVED PUBLIC KEY LOGIN PROTOCOLS FOR DCE The DCE authentication protocol (see also RFC 68.2) is planned for 1.2. October 1995

84.0 DFS GATEWAY SUPPORT OF @SYS AND @HOST PER NFS CLIENT MAPPINGS Planned for DCE 1.2. July 1995

83.0 DCE 1.2 REGISTRY SYNCHRONIZATION -- FUNCTIONAL SPECIFICATION No current OSF plans. May 1995

82.0 Not yet published. 81.3

DCE ASSIGNED VALUES Registry for DCE protocols, etc., maintained by OSF. 81.3 December 1998

81.2 DCE ASSIGNED VALUES Registry for DCE protocols, etc., maintained by OSF. 81.2 July 1996

80.1 DCE 1.2 CERTIFICATION API -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2. 80.1 December 1996

80.0 DCE 1.2 CERTIFICATION API -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2. 80.0 January 1995

79.0 PST ACCEPTANCE CRITERIA Informational document about OSF. February 1995

78.0 EPISODE VNODE SYNCHRONIZATION Planned for DCE 1.2. January 1996

77.0 SUPPORTING MULTI-HOMED DFS SERVERS Planned for DCE 1.2 January 1996

76.0 MULTI-THREADING THE DFS REPLICATION SERVER Planned for DCE 1.2. May 1995

75.0 EPISODE VM INTEGRATION Planned for DCE 1.2. October 1995

74.0 SERVER PREFERENCES IN DFS Planned for DCE 1.2. May 1995

73.0 DFS TOKEN MANAGER REDESIGN Planned for DCE 1.2. October 1995

72.0 Not yet published. 71.0 IMPROVED SECURITY FOR SMART CARD USE IN DCE

No current OSF plans. February 1995

70.0 Not yet published. 69.0 DCE 1.2 CDS FUNCTIONAL SPECIFICATION

Planned for DCE 1.2. November 1994

68.4 DCE PUBLIC-KEY CERTIFICATE LOGIN -- FUNCTIONAL SPECIFICATION DRAFT 0.8

Page 150: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

146 Distributed System and Inter-Operability

__________________________________________________________________________________________

August 1998 68.3 DCE 1.3 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION

Planned for DCE 1.2.2. January 1997

68.2 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2.2. February 1996

68.1 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2.2. February 1995

68.0 DCE 1.2 PUBLIC-KEY LOGIN -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2.2. November 1994

67.0 DCE EVENT MANAGEMENT SERVICE Being considered for future DCE PST work. January 1996

66.0 DCE SNMP SUPPORT Being considered for future DCE PST work. January 1996

65.0 Not yet published. 64.0 SECURITY SIG STRATEGY DOCUMENT

Informational document. October 1994

63.3 DCE 1.2 CONTENTS OVERVIEW Informational document about DCE 1.2 structure and contents. October 1996

62.0 Not yet published. 61.0 Not yet published. 60.0 DCE IDL EXCEPTION ENHANCEMENTS -- A COMPARISON OF TWO MODELS

Informational. April 1994

59.0 KERBEROS AND TWO-FACTOR AUTHENTICATION No current OSF plans. March 1994

58.0 EXTENSIONS TO DCE IDL FOR SUPPORT OF OBJECT-ORIENTATION No current OSF plans. February 1994

57.1 DCE SMART CARD INTEGRATION No current OSF plans. March 1994

57.0 SMART CARD INTRODUCTION Informational. March 1994

56.0 INTEROPERABILITY PARTNERS PROGRAM -- OVERVIEW Obsolete informational document. January 1994

55.0 ADDING GROUP OVERRIDE SUPPORT TO DCE SECURITY Provided in DCE 1.1. February 1994

54.0 Not yet published. 53.0 REQUIREMENTS FOR TRANSACTION PROCESSING WITH DCE

No current OSF plans. January 1994

52.0 Not yet published. 51.3 DFS CHANGES TO SUPPORT A SCALAR 64-BIT TYPE

Page 151: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

147 Distributed System and Inter-Operability

__________________________________________________________________________________________

Planned for DCE 1.2. August 1996

51.2 DFS SOURCE CODE CLEANUP TO SUPPORT BOTH 32-BIT AND 64-BIT ARCHITECTURES Partially planned for DCE 1.2. June 1995

51.1 DFS SOURCE CODE CLEANUP TO SUPPORT BOTH 32-BIT AND 64-BIT ARCHITECTURES Partially planned for DCE 1.2. February 1994

51.0 DFS INTEROPERABILITY ISSUES FOR 32-BIT AND 64-BIT ARCHITECTURES Might be addressed (RFC 51.1) in DCE 1.2. November 1993

50.0 Not yet published. 49.0 OBJECT-ORIENTED DISTRIBUTED COMPUTING WITH C++ AND OSF DCE

No current OSF plans. October 1993

48.3 DCE IDL WITH C++ SUPPORT -- FUNCTIONAL SPECIFICATION Planned for DCE 1.2. April 1996

47.3 DCED: THE DCE HOST DAEMON -- FUNCTIONAL SPECIFICATION Provided in DCE 1.1. April 1994

46.0 DCE ACL LIBRARY -- FUNCTIONAL SPECIFICATION Provided in DCE 1.1. October 1993

45.0 DCE BACKING STORE LIBRARY -- FUNCTIONAL SPECIFICATION Provided in DCE 1.1. July 1993

44.0 DCE CELL DIRECTORY SERVICE USAGE GUIDELINES Informational; no current OSF plans. July 1993

43.0 MAPPING DCE RPC TO MINIMAL OSI (mOSI) Informational; no current OSF plans. July 1993

42.3 DCECP FUNCTIONAL SPECIFICATION Provided in DCE 1.1. October 1994

41.2 RPC RUNTIME SUPPORT FOR I18N CHARACTERS -- FUNCTIONAL SPECIFICATION Provided in DCE 1.1. November 1994

40.2 OSF CHARACTER AND CODE SET REGISTRY Registry maintained by Chris French. June 1999

39.0 AN INTERNATIONALIZED DCE CHARACTER HANDLING PROPOSAL -- INTERCHANGE OF CODED CHARACTERS CONVENTIONS AND MECHANISMS An alternate technology (RFC 41) is provided in DCE 1.1. March 1993

38.0 Not yet published. 37.1 DCE PROGRAM STATUS UPDATE

Obsolete informational document. October 1993

36.0 MIGRATING DCE 1.1 SERVICEABILITY TO EVS No current OSF plans. January 1993

35.0 LOCATION OF INSTALLED DCE FILES Informational and believed still valid.

Page 152: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

148 Distributed System and Inter-Operability

__________________________________________________________________________________________

January 1993 34.2 DCE 1.1 CODING STYLE GUIDE

Used by DCE 1.1 developers. August 1993

33.0 STANDARDIZED PERFORMANCE INSTRUMENTATION AND INTERFACE SPECIFICATION FOR MONITORING DCE-BASED APPLICATIONS No current OSF plans. July 1995

32.0 REQUIREMENTS FOR PERFORMANCE INSTRUMENTATION OF DCE RPC AND CDS SERVICES No current OSF plans. June 1993

31.0 SUPPORTING THREADLESS DCE CLIENTS Planned for DCE 1.2. December 1992

30.0 DCE 1.1 ADMINISTRATIVE IMPROVEMENTS: REQUIREMENTS FOR DCE SHELL Met in DCE 1.0. January 1993

29.2 DESIGN OF AN AUDIT SUBSYSTEM FOR DCE -- IMPLEMENTATION SPECIFICATION Provided in DCE 1.1. October 1994

28.1 DCE SERVER AUDITABLE-EVENT IDENTIFICATION AND A PROPOSED AUDIT LOGGING API Provided in DCE 1.1. November 1993

27.0 CODED CHARACTER SET CONVERSIONS AND DATA LOSS: PROVIDING INTEROPERABILITY WHILE PREVENTING LOSS Informational; not DCE-specific. December 1992

26.0 USING PRE-AUTHENTICATION TO AVOID PASSWORD GUESSING ATTACKS Provided in DCE 1.1. June 1993

25.0 DCE 1.1 AUDITING STRATEGY AND DESIGN PROPOSAL An alternate technology (RFC 28 and RFC 29) is provided in DCE 1.1. December 1992

24.2 MAKING THE DCE 1.1 SERVICEABILITY AND MESSAGE API’S PUBLIC Provided in DCE 1.1. April 1993

24.1 DCE 1.1 SERVICEABILITY PROPOSAL Provided in DCE 1.1. April 1993

23.0 DCE 1.1 INTERNATIONALIZATION GUIDE Informational; used by DCE 1.1 developers. January 1993

22.0 ADAPTING DME TO MANAGE DCE-BASED SERVICES No current OSF plans. January 1993

21.0 DCE RPC API EXTENSIONS FOR MODULAR SERVERS No current OSF plans. November 1992

20.0 DCE RPC/DG PROTOCOL ENHANCEMENTS Provided in DCE 1.1. October 1992

19.0 SECURITY ENHANCEMENTS FOR DCE 1.1 No current OSF plans. December 1992

Page 153: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

149 Distributed System and Inter-Operability

__________________________________________________________________________________________

18.0 THE REMOTE NETWORK DIRECTORY (RND) NAMING MODEL No current OSF plans; perhaps superceded by XFN. September 1992

17.0 DCE 1.1 CODE CLEAN-UP REQUIREMENTS Met in DCE 1.0. December 1992

16.0 DISTRIBUTED RESOURCE SELECTION No current OSF plans. September 1992

14.0 DCE SIG REQUIREMENTS SURVEY Obsolete informational document. September 1992

13.0 DCE 1.1 INTERNATIONALIZATION REQUIREMENTS Met in DCE 1.0. August 1992

12.0 DCE SERVICEABILITY STRATEGY/DESIGN DISCUSSION PAPER Met in DCE 1.0. August 1992

11.0 DCE SIG SERVICEABILITY REQUIREMENTS Met in DCE 1.0. August 1992

10.0 DCE SIG INFO SHEET Obsolete informational document. July 1992

9.0 EMBEDDED DCE SECURITY BRIDGE (EDB) APPLICATION PROGRAMMING INTERFACE No current OSF plans. July 1992

8.2 SECURITY REQUIREMENTS FOR DCE Many of the top 10 original requirements were met by DCE 1.0. This document continues to drive the security plans for future DCE releases. August 1996 - DRAFT

8.1 SECURITY REQUIREMENTS FOR DCE Many of the top 10 requirements were met by DCE 1.0. This document continues to drive the security plans for future DCE releases. October 1995

7.0 HIERARCHICAL TRUST RELATIONSHIPS FOR INTER-CELL AUTHENTICATION Provided in DCE 1.1. July 1992

6.0 A GENERIC INTERFACE FOR EXTENDED REGISTRY ATTRIBUTES Provided in DCE 1.1. June 1992

5.2 GSS-API EXTENSIONS FOR DCE Provided in DCE 1.1. March 1994

4.0 DCE SIG NAMING REQUIREMENTS Partially met by current DCE. The XFN PST is believed to meet additional/remaining requirements. June 1992

3.0 EXTENDING THE DCE AUTHORIZATION MODEL TO SUPPORT PRACTICAL DELEGATION Provided in DCE 1.1. June 1992

2.1 PROPOSED ENHANCEMENTS FOR DCE 1.1 IDL Provided in DCE 1.1. July 1992

2.0 PROPOSED ENHANCEMENTS FOR DCE 1.0 IDL

Page 154: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

150 Distributed System and Inter-Operability

__________________________________________________________________________________________

Provided in DCE 1.1. June 1992

1.0 POSIX/C2 AUDITING OF DCE API’S An alternate technology (see RFC 28 and RFC 29) is provided in DCE 1.1. June 1992

��

������������������������������

Page 155: 261206021302

___________________________________________________________________________________________ Sony Sumaryo

Sekolah Tinggi Teknologi Telkom

151 Distributed System and Inter-Operability

__________________________________________________________________________________________

5HIHUHQVL�����

�1. Andrew S. Tanenbaum, “ Distributed Operating System” , Prentice Hall International

Editions, 1995. 2. George Coulouris, Jean Dollimore, Tim Kindberg,” Distributed Systems : Concepts

and Design” , Second Edition, Addison-Wesley Publishing Company,1994.