Anda di halaman 1dari 11

Data-centered architectures.

Arsitektur ini memiliki tujuan untuk mencapai kualitas integrability data. Istilah ini
mengacu ke sistem di mana akses dan update dari data store yang dapat diakses
secara luas adalah tujuan utamanya. Pada dasarnya, itu tidak lebih dari terpusatnya
data store yang berhubungan dengan sejumlah klien. Yang terpenting dari style ini
adalah tiga protokol: komunikasi, data definition dan data manipulation protocol.

Gb

Data-centered architectures

Sarana komunikasi membedakan dua subtipe: repositori dan blackboard.


Repository: klien mengirimkan permintaan ke sistem untuk melakukan tindakan
yang diperlukan (misalnya memasukkan data).

Papan tulis: sistem mengirimkan pemberitahuan dan data untuk pelanggan ketika
data berubah, dan dengan demikian aktif.

Contoh Data-centered architectures


* Salah satu contoh yang paling terkenal dari arsitektur data-terpusat, adalah
arsitektur database
Ada skema database yang umum (meta struktur-yaitu dari repositori) - dibuat
dengan data definition protocol. Misal dalam RDBMS satu set tabel yang berkaitan
dengan bidang, tipe data, kunci. Klien menggunakan data manipulation protocol
untuk bekerja dengan data. Misalnya SQL untuk insert, select , delete data.
Tergantung dimana klien dikondisikan communication protocol mungkin adalah
Sebuah inner-process communication
Komunikasi antara komponen pada mesin yang sama
Komunikasi melalui network missal, LAN, internet, etc.

Data-centered architectures: analysis

Memastikan integritas data


Handal, aman, dijamin testability
Klien independen pada sistem: kinerja dan kegunaan di sisi klien baik
Masalah dengan skalabilitas
Solusi: repositori bersama, replikasi tapi ini meningkatkan kompleksitas

Contoh lain Data-centered architectures


Adalah Web architecture. Ada skema data umum (yaitu meta struktur dari Web).
Mengikuti model data hypermedia. Pages (node) dan links antara mereka, serta
mekanisme addressing. Manipulasi data tidak langsung dalam sistem tetapi
biasanya dicapai melalui aplikasi. Walaupun protokol HTTP memiliki metode untuk
manipulasi data. Komunikasi adalah protokol HTTP. Analisis: integritas tidak dijamin
(404 error) tetapi sangat berskala.

Resource-Oriented Architecture
arsitektur tersebut melihat ke Web sebagai database besar yang terdistribusi. Data
model: dialamatkan oleh URL dan interlinked. Manipulasi data : cara HTTP (GET,
PUT, POST, DELETE). Berskala, kinerja yang bagus, baik, dll.
Data-flow architectures
Arsitektur ini memiliki tujuan untuk mencapai kualitas pemakaian ulang dan
modifiability. Gaya data-flow ditandai dengan melihat sistem sebagai rangkaian
transformasi pada potongan-potongan berturut-turut input data.Data masuk ke
sistem dan kemudian mengalir melalui satu komponen pada suatu waktu sampai.
Akhirnya, data ditugaskan untuk beberapa tujuan akhir (output atau menyimpan
data).
Data-flow architectures dapat diklasifikasikan ke dalam arsitektur Batch-sequential
dan pipe and filters. Pada gaya batch-sequential setiap langkah, diselesaikan satu
persatu secara berututan. Misalnya, pipa baris perintah UNIX. Dalam pipe and
filtering style, langkah langkahnya merangkap bagian pengolahan data secara
bertahap.

Pipes and filters


Data mengalir melalui pipa: saluran komunikasi antara filter. Pengolahan unit: filter.
Tergantung dimana filter mengeksekusi arsitektur yang berbeda berada. Missal
proses yang sama: filter dijalankan dalam threads. Misal mesin yang sama: filter
dijalankan dalam prosesnya sendiri. Misalnya jaringan: pipes menggunakan
arsitektur jaringan.
konseptual filter mengkonsumsi data dari input dan menulis data ke output. Input
dan output: saluran komunikasi, yaitu pipes. Filer tidak tahu apa apa tentag filter
lainnya. Dapat dimodulkan, pemeliharaan yang baik. Data flow dalam aliran: baik
untuk pengolahan gambar, audio, video, etc.

Variasi: struktural dan komunikasi. Struktural: topologi yang lebih kompleks


mungkin dapat digunakan. Misalnya loop, cabang, lebih dari satu inputan.

komunikasional: adalah filters blocked dan menunggu data?. Bentuk lain dari
sinkronisasi. Misalnya ketika hanya ada satu saluran komunikasi. Memblokir
mungkin membahayakan kinerja. Misalnya baru2 ini sangat popular NIO (nonBlocking input/output) dalam aplikasi jaringan.

Call-and-Return Architectures
Call-and-Return architectures memiliki tujuan untuk mencapai kualitas dari
kempampuan modifikasi dan kemampuan pemecahan masalah. Call-and-Return
architectures telah menjadi style arsitektur dominan dalam system perangkat lunak
yang besar selama 30 tahun terakhir. Namun, dalam style ini sejumlah substyle,
yang masing2 memiliki fitur yang menarik, telah muncul.

Main-Program-and-Subroutine architectures adalah paradigm pemrograman


classic.
Tujuannya adalah untuk menguraikan sebuah progam menjadi pecahan kecil untuk
membantu mencapai kemampuan modifikasi. Sebuah program terurai secara
hirarki. Ada sebuah single thread dari control dan masing2 komponen dalam hirarki
mendapatkan kendali ini (opsional bersama dengan beberapa data) dari induknya
dan melewatinya bersama anak2nya.

Remote procedure call systems adalah sistem main-program-and-subroutine


yang terurai kedalam bagian2 yang hidup dalam komputer2 via sebuah jaringan.
Tujuannya adalah untuk meningkatkan kinerja dengan mendistribusi komputasinya
dan menagmbil keuntungan dari multiple processor. Dalam system remote
procedure call, penugasan sebenarnya bagian untuk prosesor ditangguhkan sampai
saat runtime, yang berarti bahwa tugas mudah diubah untuk mengakomodasi
performance tuning. Kenyataanya, kecuali mungkin subroutine calls membutuhkan
waktu lama untuk tercapai jika pemanggilan fungsi pada mesin remote, procedure
calls remote tidak dibedakan dari program utama dan system subroutine.
Object-oriented or abstract data type systems adalah versi modern dari calland-return architecture.
Paradigmanya, seperti paradigma abstract data type dari yang berevolusi,
menggabungkan data2 dan metode untuk memanipulasi dan akses data (public
interface). Abstraksi objeknya membentuk komponen yang menyediakan layanan
black-box dan komponen lain yang membutuhkan layanannya. Tujuannya adalah
utnuk mencapai kualitas kemampuan yang dapat dimodifikasi.

Bundle ini adalah enkapsulasi yang menyembunyikan rahasia dari lingkungannya.


Akses menuju objek diperbolehkan hanya melalui operasi yang disediakan, dikenal
sebagai metode, yang terbentuk secara paksa dari procedure calls. Enkapsulasi ini
menawarkan reuse and modifiability, terutama karena mempromosikan pemisahan
dari kepentingan.
User dari layanan tidak perlu tahu dan seharusnya tidak tahu, semua tentang
implementasi dari layanan itu.
Abstract layer architectures
Layering: struktur sistemnya diatur dalam set lapisan. Tiap lapisan dalam di bagian
atas lapisan yang lain. Well-defined interface antara lapisan. Mengurangi
kompleksitas, meningkatkan modularitas, usabilitas, pemeliharaan. kriteria yang
berbeda untuk layering: terutama abstraksi.

Layered systems adalah yang dimana komponen ditugaskan ke lapisan untuk


mengontrol interaksi intercomponent. Dalam versi murni arsitektur ini, setiap
tingkatan hanya berkomunikasi dengan tetangga terdekatnya.

Tujuannya adalah untuk mencapai kualitas dari modifiability and, usually, portability.
Lapisan terndah menyediakan beberapa fungsi inti, seperti perangkat keras, atau
kernel system operasi. Setiap lapisan berturut turut dibangun di atas
pendahulunya, menyembunyikan beberapa layanan yang lapisan atas gunakan.

Contoh umumnya : Peer-to-peer protocol stacks


TCP/IP protocol stack, terdiri dari empat lapisan. Lapisan terndah menangani
komunikasi antara dua computer, lapisan teratas menangani ruting paket di seluruh
jaringan. Transport layer menjamin paketnya bebas-error diterima dalam urutan
yang sama seperti yang dikirim. Application layer mendukung protocol aplikasi
spesifik. Misalnya HTTP, SMTP, FTP, dll. Constitute layer sebuah seri dari operasi
abstrak. Lapisan yang lebih tinggi span koneksi virtual antara computer2 dalam
jaringan.

Event-based, Implicit Invocation


Adalah contoh dari gaya arsitektur yang dibuat dengan baik dengan kohesi yang
tinggi dan kopling yang longgar. Dengan demikian, ini adalah salah satu gaya
arsitektur yang diterima secara luas dalam rekayasa perangkat lunak. Contoh
sistem pemanggilan secara implisit berlimpah ruah, termasuk hampir semua sistem

operasi modern, integrated


management systems.

development

environtments,

dan

database

Implicit invocation system dijalankan oleh event2. Event2 yang dipicu setiap kali
sistem
perlu untuk melakukan sesuatu-seperti menanggapi permintaan yang masuk. Event
dapat mengambil banyak bentuk di berbagai jenis implementasi, sering untuk
system berbasis obyek sebuah event adalah sebuah obyek yang sifatnya
mengandung informasi kontekstual yang diperlukan untuk proses event (mirip
dengan bagaimana permintaan HTTP disertai dengan berbagai bentuk dan variable
query-string).

Implicit invocation architectures berbeda dengan explicit invocation system dalam


implicit invocation system gunakan events untuk berkomunikasi satu sama lain.
Connector in such architectures mengikat antara event dan komponen metode.

Repository
Komponennya:
Data store
Clients, yang berinteraksi dengan store

Connector
Queries
Arsitekturnya terpusat pada data store yang terakses secara luas. Data store dan
clients adalah 2 varian utamanya. Database yang digunakan adalah passive data
store dan clients that poll the database. Blackboardnya yaitu data store yang active
yang memberitahu setiap data klien yang diubah oleh klien dan clientnya bias
disebut sebagai sumber pengetahuan.

Kemampuan dari repository adalah Klien yang relatif independen satu sama lain.
Data toko independen dari klien, berskala dan modifiable. Kelemahannya yaitu
kekutan bergantung pada data store itu sendiri.
Ada beberapa varian dari sistem DB termasuk perbedaan utama antara database
tradisional vs database berorientasi objek, distributed database.

Table driven intrepeters


Dalam sebuah organisasi juru mesin virtual diproduksi dalam perangkat lunak.
Sebuah interpreter mencakup pseudo-program yang diinterpretasikan dan
penafsiran mesin itu sendiri. Pseudo-program termasuk program itu sendiri dan
analog interpreter dari status eksekusinya sendiri (activation record). Mesin
interpreter mencakup kedua definisi dari interpreter dan current state dari
eksekusinya. Jadi interpreter umumnya memiliki empat komponen: mesin interretasi

untuk melakukan pekerjaan itu, sebuah memori berisi pseudo code untuk
diterjemahkan, sebuah representasi dari status control mesin interpretasi, dan
representasi dari current state dari program sedang disimulasikan.

Interpreters biasanya digunakan untuk membangun virtual machine yang menutup


kesenjangan antara mesin komputasi diharapkan oleh semantic program dan mesin
komputasi yang tersedia di hardware. Yang dikatakan sebagai bahasa pemrograman
atau mesin virtual pascal.

Heterogeneous Architectures
Sistem jarang dibangun dari satu gaya, dan kita mengatakan bahwa sistem tersebut
heterogen.
Ada tiga jenis heterogenitas, mereka adalah sebagai berikut.
Locationally heterogeneous artinya bahwa gambar struktur runtime yang akan
mengungkapkan pola gaya yang berbeda di berbagai daerah. Sebagai contoh,
beberapa cabang sistem Main-Program-dan-subrutin mungkin memiliki data berbagi
repositori (yaitu database).

Hierarchically Heterogeneous berarti bahwa komponen dari satu gaya, ketika


terurai, disusun menurut aturan gaya yang berbeda. Sebagai contoh, sebuah
antarmuka pengguna akhir sub-sistem mungkin dibangun menggunakan gaya Event
Sistem arsitektur, sementara semua sub-sistem lainnya - menggunakan Layered
Arsitektur.

Simultaneously Heterogeneous berarti bahwa salah satu dari beberapa gaya


dengan baik mungkin deskripsi yang tepat dari sistem.
Bentuk terakhir dari heterogenitas mengakui bahwa gaya tidak partisi arsitektur
perangkat lunak menjadi non-overlapping, kategori bersih. Anda mungkin telah
memperhatikan ini sudah. Data-gaya berpusat pada awal diskusi ini terdiri dari klien
benang-independen, seperti arsitektur komponen independen.
Lapisan dalam sistem berlapis dapat terdiri dari objek atau komponen independen
atau bahkan subrutin dalam-main-sistem-program dan subrutin. Komponen dalam
sistem pipa-dan-filter biasanya diimplementasikan sebagai proses yang beroperasi
secara independen, menunggu sampai masukan di pelabuhan mereka, sekali lagi,
ini mirip dengan sistem komponen independen yang urutan eksekusi sudah
ditentukan sebelumnya.

Anda mungkin juga menyukai