Arsip: client server lemmmooth

 
user image
more 13 years ago

e_soep

:D :o tuk kk-kk senior, trims ya dbgridscrollingnya...di forum tip & trik... ini sy ada masalah lagi ni....sy coba bikin program multi user, Dtbase dg Mssql2000, Connection dg ADO btw ODBC, sewaktu client mau Connect ke server seh...biasa2 aja... karena masih dalam satu atap...btw satu class jaringan(class C)...koneksinya dapat 100Mbps lewat switch hub...trus masalahnya kalau client-NYA berada di luar class...misalnya luar daerah...koneksi menggunakan LeasedLine...bandwith cuma 64Kbps...n sudah menggunakan jaringan Class B ...ternyata untuk update database... btw ...ambil data dari server terasa lambat...nah...ada g ya...untuk mempercepat koneksinya client ke server.... sekali lagi...trims tuk kk-kk senior...n tak tunggu sarannya...
user image
more 13 years ago

Manz

upgrade bandwidth dari 64Kbps ke 512Kbps ... dijamin lebih cepet ... :mrgreen:
user image
more 13 years ago

irosyidi

kalau lambat...ya pasti lah... wong aku yang pake bandwith 128 aja kerasa lambat kok... mendingan buat 2 server yang setiap hari saling sinkronisasi/update data... jadi beban berat terjadi di malem hari waktu kita bobo manis di rumah..
user image
more 13 years ago

budi_bunga

gimana klo cara ngisi databasenya pake kirim text sql aja nanti di server di eksekusi dengan syarat RAM servernya besar yah minimal 2 GB lah...., sa kira bisa dengan 64 kb :lol:
user image
more 13 years ago

Manz

Nah itu ada beberapa pendapat ... 1. Bandwidth dinaekin ... pasti duid yang dikeluarkan harus naek... 2. Synchronization ... boljug ( boleh juga ) pada saat malem waktu bobo manis, server dikerjain ... 3. Text sql nya saja... wahhh buahayaaaaa, apalagi kalo gak di encrypt, bisa di COMMOT di jalan tuch ... hmm ... bagaimana kalau @irosyidi mengenai synchronization, tapi dibuat distributed database system ... atau grid computing ... atau replica ... :mrgreen:
user image
more 13 years ago

budi_bunga

yah lengkapi dengan script gitulah
user image
more 13 years ago

eksant

Pahami karakteristik database yang anda gunakan, banyak implementasi kurang sukses hanya karena developernya mengadopsi konsep dan implementasi centralized data processing tanpa memahami karakter yang dimiliki database yang digunakan. Meskipun firebird memiliki fitur-fitur seperti yang dimiliki oleh database pada level yang lebih tinggi, namun nilai optimal implementasinya tetap berbeda. Optimasikan algoritma yang digunakan pada objek-objek serverside, Buang jauh-jauh fokus sekedar membuat fungsi tersebut berjalan dengan benar, anda harus lebih memusatkan konsentrasi anda bagaimana agar rutin yang anda buat tersebut tidak hanya berjalan dengan benar, tapi lebih pada bagaimana agar task tersebut diselesaikan dengan secepat-cepatnya. Hal ini sangat penting mengingat rutin tersebut akan dieksekusi di sisi server oleh multi user. Hindari verifikasi data input yang tidak perlu di sisi server, task verifikasi seringkali merupakan salah satu hal yang cukup menguras resource, karena itu hindari server untuk melakukan verifikasi data input yang tidak diperlukan, sebaliknya bebankan fungsi tersebut pada input terminal. server memproses hanya data yang valid dan bersifat garbage-in-garbage-out. Sederhanakan kompleksitas task yang dilakukan oleh stored procedure, Task yang kompleks seringkali merupakan hal yang membutuhkan waktu untuk pemrosesannya, sementara di satu sisi, Firebird tidak memiliki manajemen resource CPU yang digunakan per-task-nya. Task yang sederhana umumnya membutuhkan waktu pengerjaan yang lebih singkat. Hindari looping panjang atas sebuah task kompleks dalam stored procedure, Looping atas sebuah task yang kompleks umumnya memakan waktu, di sisi client hal tersebut juga membuat aplikasi client terlihat seolah crash, dan membuat proses lain yang dikerjakan di server menjadi terganggu. Oleh karena itu sedapat mungkin, hindari melakukan looping atas sebuah task yang kompleks di dalam stored procedure. Meskipun mungkin hal tersebut lebih sederhana dan mudah diimplementasikan, namun seringkali pengorbanannya sangat tidak sesuai dengan kesederhanaan itu. Sebagai contoh, anda bisa lihat betapa sederhananya sebuah looping atas task yang kompleks.
for select acctid from koderek into :kode_rek do
begin
   execute procedure tutup_buku(:kode_rek, :tahun)
end
dibandingkan dengan jika dilakukan di sisi client:
TBRek.First;
while not TBRek.eof do
begin
   if not dmMain.IBTransaction.InTransaction then
      dmMain.IBTransaction.StartTransaction;
   dmMain.ExecuteSQL('execute procedure tutup_buku(:kode_rek, :tahun)',
      VarArrayOf());
   inc(counter)   
   if dmMain.IBTransaction.InTransaction then
   begin
        if (counter mod 50) = 0 then        
          dmMain.IBTransaction.Commit
        else if (index mod 10) = 0 then
          dmMain.IBTransaction.CommitRetaining;
   end;
   ProgressBar.Position := round( (index / counter) * 100);    
   Refresh;
   TBRek.Next;
end
Anda secara eksplisit bisa melihat bahwa anda membutuhkan kode lebih banyak untuk memproses hal yang sama di sisi client, namun bayangkan bila kode rekening tersebut terdiri misalnya lebih dari 500 rekening dan masing-masing rekening memiliki puluhan ribu transaksi per tahunnya. dari sisi kinerja sistem secara umum, jeda waktu yang dibutuhkan client untuk melakukan update User Interface akan meningkatkan reliabilitas server untuk memberikan kesempatan memproses task lainnya untuk user lainnya. sementara di sisi user sendiri, hal ini lebih memberikan rasa aman bahwa data tetap diproses oleh aplikasi dibandingkan menunggu aplikasi yang seolah crash. :: Maaf, kalo saya hanya jargonfile saja ::
user image
more 13 years ago

eksant

Pahami karakteristik database yang anda gunakan, banyak implementasi kurang sukses hanya karena developernya mengadopsi konsep dan implementasi centralized data processing tanpa memahami karakter yang dimiliki database yang digunakan. Meskipun firebird memiliki fitur-fitur seperti yang dimiliki oleh database pada level yang lebih tinggi, namun nilai optimal implementasinya tetap berbeda. Optimasikan algoritma yang digunakan pada objek-objek serverside, Buang jauh-jauh fokus sekedar membuat fungsi tersebut berjalan dengan benar, anda harus lebih memusatkan konsentrasi anda bagaimana agar rutin yang anda buat tersebut tidak hanya berjalan dengan benar, tapi lebih pada bagaimana agar task tersebut diselesaikan dengan secepat-cepatnya. Hal ini sangat penting mengingat rutin tersebut akan dieksekusi di sisi server oleh multi user. Hindari verifikasi data input yang tidak perlu di sisi server, task verifikasi seringkali merupakan salah satu hal yang cukup menguras resource, karena itu hindari server untuk melakukan verifikasi data input yang tidak diperlukan, sebaliknya bebankan fungsi tersebut pada input terminal. server memproses hanya data yang valid dan bersifat garbage-in-garbage-out. Sederhanakan kompleksitas task yang dilakukan oleh stored procedure, Task yang kompleks seringkali merupakan hal yang membutuhkan waktu untuk pemrosesannya, sementara di satu sisi, Firebird tidak memiliki manajemen resource CPU yang digunakan per-task-nya. Task yang sederhana umumnya membutuhkan waktu pengerjaan yang lebih singkat. Hindari looping panjang atas sebuah task kompleks dalam stored procedure, Looping atas sebuah task yang kompleks umumnya memakan waktu, di sisi client hal tersebut juga membuat aplikasi client terlihat seolah crash, dan membuat proses lain yang dikerjakan di server menjadi terganggu. Oleh karena itu sedapat mungkin, hindari melakukan looping atas sebuah task yang kompleks di dalam stored procedure. Meskipun mungkin hal tersebut lebih sederhana dan mudah diimplementasikan, namun seringkali pengorbanannya sangat tidak sesuai dengan kesederhanaan itu. Sebagai contoh, anda bisa lihat betapa sederhananya sebuah looping atas task yang kompleks.
for select acctid from koderek into :kode_rek do
begin
   execute procedure tutup_buku(:kode_rek, :tahun)
end
dibandingkan dengan jika dilakukan di sisi client:
TBRek.First;
while not TBRek.eof do
begin
   if not dmMain.IBTransaction.InTransaction then
      dmMain.IBTransaction.StartTransaction;
   dmMain.ExecuteSQL('execute procedure tutup_buku(:kode_rek, :tahun)',
      VarArrayOf());
   inc(counter)   
   if dmMain.IBTransaction.InTransaction then
   begin
        if (counter mod 50) = 0 then        
          dmMain.IBTransaction.Commit
        else if (index mod 10) = 0 then
          dmMain.IBTransaction.CommitRetaining;
   end;
   ProgressBar.Position := round( (index / counter) * 100);    
   Refresh;
   TBRek.Next;
end
Anda secara eksplisit bisa melihat bahwa anda membutuhkan kode lebih banyak untuk memproses hal yang sama di sisi client, namun bayangkan bila kode rekening tersebut terdiri misalnya lebih dari 500 rekening dan masing-masing rekening memiliki puluhan ribu transaksi per tahunnya. dari sisi kinerja sistem secara umum, jeda waktu yang dibutuhkan client untuk melakukan update User Interface akan meningkatkan reliabilitas server untuk memberikan kesempatan memproses task lainnya untuk user lainnya. sementara di sisi user sendiri, hal ini lebih memberikan rasa aman bahwa data tetap diproses oleh aplikasi dibandingkan menunggu aplikasi yang seolah crash. :: Maaf, kalo saya hanya jargonfile saja ::
user image
more 13 years ago

herux

Kalo menurut saya kok, masih bagus yg pake looping di procedure (server) !!. dibandingkan dengan disisi client yg masih menggunakan procedure di server !! (kecuali semua di proses di client !!) seperti terlihat di script kedua masih ada kata2 "dmMain.ExecuteSQL('execute procedure tutup_buku(:kode_rek, :tahun)'" itu artinya client mengirim perintah unuk menjalankan SP di server.!! hanya loopingnya di client !!. kesimpulannya : 1. Proses lebih cepat menggunakan script pertama ! 2. Proses boleh lebih cepat jika procedure tutup_buku di server di ganti script delphi di sisi client, dan menggunakan data2 pendukung di client (ClientSideDataset) itu pendapatku lho......
user image
more 13 years ago

eksant

pndapat yang lain..?
more ...
  • Pages:
  • 1
  • 2
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com