Pikiran halus pada arsitektur situs web

Kita berada dalam WIT-e kita, tentu saja, ambler. Sistem ERP sendiri (menulis tentang hal ini di sini - Bagaimana kita dapat melakukannya tanpa 1C? ), Sistem CRM-nya sendiri, M2M sendiri untuk komunikasi dengan distributor ("apa kata dan singkatan pintar lainnya yang Anda ketahui?"). Dan, tentu saja, pendekatan Anda terhadap WWW, untuk tetap berada dalam kerangka paradigma 3 huruf ini.

Semuanya dimulai dengan kecintaan Microsoft, dan beberapa versi awal situs di akhir tahun 90-an dibuat menggunakan teknologi ASP, dan sebagai basis data di bawahnya terdapat file MS Access biasa. Ngomong-ngomong, penyedia masih menawarkan hosting di ASP lama yang baik , 18 tahun setelah upgrade ke ASP.NET - di sini Anda memiliki sistem warisan dalam semua kemuliaan.

Secara umum, ini cukup mudah - karena basis data internal juga ditulis dalam MS Access, prosedur untuk mempersiapkan data untuk situs ini sangat sederhana, tidak ada terjemahan ulang dari satu format data ke yang lain (MySQL misalnya). Access mendukung ekstensi bahasa SQL dari bentuk "IN <external database name>", yang dapat ditambahkan setelah instruksi DML: INSERT, UPDATE, DELETE (berikut singkatan 3 huruf).

Ketika tautan ini tumbuh, tentu saja, ia mulai melambat tanpa malu-malu (ditambah yang terjadi tidak jelas ketika file mdb mengunci dengan basis data mengunci seluruh situs dengan ketat). Terjemahan situs ke ASP.NET tidak secara mendasar memecahkan masalah, dan itu juga perlu untuk beralih ke MS SQL Server sebagai basis, tetapi kemudian proses berjalan ke arah yang berbeda. Mari kita lihat masalah peningkatan kinerja situs web dari perspektif yang sedikit berbeda.

(Omong-omong, penyedia 1Gb.ru saya menulis bahwa ASP.NET rata-rata lebih cepat daripada bundel LAMP standar (Linux / Apache / MySQL / PHP), yang telah menjadi wahyu bagi saya. Tetapi siapa yang bisa saya percayai di sini karena bukan operator dari semuanya? )

Penafian - ide-ide berikutnya mewakili, di satu sisi, beberapa konstruksi teoretis diangkat ke absolut, yang sering berarti dikurangi menjadi absurditas, di sisi lain, implementasi konkret, sehingga tidak dapat dikatakan bahwa penulis dalam fantasinya dan sepenuhnya terpisah dari realitas.

Pertanyaan 1. Mengapa harus ada database di bawah situs?

Nah, sungguh, Anda semua mengagumi kecepatan In-Memory Databases, kan? Jadi mengapa melangkah jauh, dapatkan diri Anda tepat di bawah situs web Anda. Dan bahkan lebih. Pada inisialisasi awal, muat semua data ke dalam array yang tersedia di tingkat situs secara keseluruhan (objek Aplikasi dalam ASP.NET, Variabel Global dalam PHP, selanjutnya di mana-mana), dan alih-alih menulis kueri ke basis data, putar saja melalui array ini. Apa pun cocok untuk memuat data awal - basis data MS Access yang sama, tetapi setidaknya file teks CSV! - operasi jarang dilakukan dan waktu pelaksanaannya tidak memainkan peran apa pun.

Ada beberapa pertanyaan, tetapi kami sudah memiliki jawaban siap pakai untuk itu.

  1. , - , ? – ( , -), — ,
  2. ( ) . . – ( ) , ? , – / , – , . . Catalog ( -!) 2 – :



    MinIndex MaxIndex. , - ( ) – Parts ID Catalog, – .

Perhatikan bahwa ide ini dapat dilanjutkan lebih lanjut. Dengan cara yang sama bahwa data ditransfer dari database di bawah situs ke struktur data situs itu sendiri, ketika menghasilkan halaman web, data itu harus ditempatkan dalam struktur itu sendiri - yaitu, dalam array JavaScript. Dan tidak ada AJAX, asinkron, penanganan kesalahan komunikasi, dan banyak lagi. Dan itu dilakukan di situs kami pada halaman yang berisi semua jenis konfigurator.

By the way, tidak seperti file database, array dalam memori server web (dan browser web juga, meskipun dengan pemesanan) menempati ukuran kira-kira sama dengan representasi biner mereka, sedangkan database kosong dengan satu tabel di dalamnya sudah menarik ratusan kilobyte.

Pertanyaan 2. Mengapa saya perlu menggunakan skrip di server web?

Saya membawa fragmen kode dalam beberapa baris, sengaja disederhanakan dan dalam bahasa pemrograman yang paling gila - VBA (kecuali untuk 1C)

        Set IE = CreateObject("InternetExplorer.Application")

        IE.Navigate "wit.ru"
        While IE.ReadyState < READYSTATE_COMPLETE
        Wend

        Set str = IE.Document.DocumentElement
        HTML = str.innerhtml

Kode melakukan hal berikut - menjalankan halaman melalui browser yang pernah sangat populer dari satu perusahaan terkenal, dan menyimpan hasil dari mengerjakan skrip server sebagai HTML murni. Anda menebaknya, mungkin, apa yang akan ditawarkan selanjutnya? Cukup benar - sangat mungkin untuk membuat situs sebagai HTML murni di tahun 90-an.

(Lagi dari 1GB.ru: "IIS sangat cepat dan efisien memproses permintaan untuk file statis")

Pada saat yang sama, Anda mungkin harus khawatir tentang transcoding alamat seperti
wit.ru/card.aspx?id=23&prodid=1022985
ke alamat web statis halaman web juga merupakan teknologi tune-up server web yang terkenal, awalnya diciptakan untuk mengelabui mesin pencari dan pengoptimalan web.

Di sini perlu, mungkin, untuk merumuskan prinsip dasar dari mana semua yang lain berasal. Semakin banyak waktu dan sumber daya yang kami habiskan untuk menyiapkan data untuk situs web, semakin mudah baginya untuk menampilkannya dan semakin cepat ia dapat melakukannya. Dalam hal ini, back-end kami dapat bekerja dalam mode kontinu, memuntahkan data yang siap di situs dengan frekuensi yang kami butuhkan. Dan pendekatan ini akan bekerja dalam semua kasus, kecuali, tentu saja, ringkasan pertukaran atau jendela beberapa Amazon atau Alibaba, di mana data berubah setiap detik.

Kesimpulan


Saya sadar bahwa masalah-masalah dalam artikel itu terlalu tajam dan solusi yang tidak standar diusulkan. Saya berani menyarankan (ini bukan topik saya sama sekali) bahwa pendekatan seperti itu dapat bekerja untuk semua sistem tertanam, di mana jika tidak, pada perangkat komputasi yang lemah, Anda harus menempatkan mesin basis data mini dan penangan skrip alih-alih server web yang paling sederhana (dengan biaya dari lebih banyak konsumsi memori - operasional dan konstan).

All Articles