Penyelidikan dan pembangunan kaedah pembinaan. Platform Kawalan Teragih

World Wide Web (WWW) pada asalnya dibayangkan oleh penciptanya sebagai "ruang perkongsian maklumat di mana orang dan komputer boleh berkomunikasi antara satu sama lain." Oleh itu, aplikasi Web pertama adalah pelayan fail primitif yang mengembalikan halaman HTML statik kepada pelanggan yang memintanya. Oleh itu, Web bermula sebagai berorientasikan dokumen.

Peringkat seterusnya dalam pembangunan Web ialah kemunculan konsep aplikasi, yang berasaskan antara muka seperti CGI (atau FastCGI), dan kemudiannya pada ISAPI. Gerbang Bersama Antara Muka (CGI) ialah antara muka standard untuk bekerja dengan pelayan yang membolehkan anda menjalankan aplikasi pelayan yang dipanggil melalui URL. Maklumat input untuk aplikasi tersebut ialah kandungan pengepala HTTP (dan kandungan permintaan apabila menggunakan protokol POST). Aplikasi CGI menghasilkan kod HTML yang dikembalikan kepada penyemak imbas. Masalah utama dengan aplikasi CGI ialah dengan setiap permintaan pelanggan, pelayan melaksanakan program CGI dalam masa nyata, memuatkannya ke dalam ruang alamat yang berasingan.

Kemunculan Internet Server API (ISAPI) bukan sahaja menyelesaikan masalah prestasi yang timbul dengan aplikasi CGI, tetapi juga menyediakan pembangun antara muka pengaturcaraan yang lebih kaya. DLL ISAPI boleh dikaitkan dengan sambungan nama fail melalui pangkalan meta khas. Kedua-dua mekanisme ini (CGI dan ISAPI) berfungsi sebagai asas untuk penciptaan jenis pertama aplikasi Web, di mana, bergantung pada sebarang tindakan pelanggan, kod pelayan telah dilaksanakan. Oleh itu, penjanaan dinamik kandungan halaman Web menjadi mungkin dan kandungan Web tidak lagi statik semata-mata.

Antara muka ISAPI ialah ciri Microsoft Maklumat Internet pelayan. Aplikasi ISAPI ialah perpustakaan beban dinamik (DLL) yang dijalankan dalam ruang alamat pelayan Web. Lama kelamaan, pelayan Web lain juga dapat menjalankan aplikasi yang dilaksanakan sebagai perpustakaan. Dalam kes pelayan Web Netscape, antara muka pengaturcaraan ini dipanggil NSAPI (API Pelayan Netscape). Pelayan Web Apache yang agak popular juga mempunyai keupayaan untuk menjalankan aplikasi Web yang dilaksanakan sebagai perpustakaan; perpustakaan tersebut dipanggil Apache DSO (Dynamic Shared Objects).

Sememangnya, apabila menggunakan kedua-dua aplikasi CGI dan ISAPI, pembangun pada dasarnya menyelesaikan masalah yang sama, jadi langkah semula jadi ialah kemunculan antara muka peringkat tinggi baharu yang memudahkan tugas menjana kod HTML, membenarkan mengakses komponen dan menggunakan pangkalan data . Antara muka ini ialah model objek Active Server Pages (ASP), dibina berdasarkan penapis ISAPI.

Idea utama ASP dari sudut pandangan mencipta antara muka aplikasi ialah pada halaman Web terdapat serpihan kod yang ditafsirkan oleh pelayan Web dan bukannya pengguna menerima hasil daripada melaksanakan serpihan kod ini.

Tidak lama selepas kemunculan ASP, teknologi lain dicipta yang melaksanakan idea meletakkan kod yang dilaksanakan oleh pelayan Web di dalam halaman Web. Yang paling terkenal daripada mereka hari ini ialah teknologi JSP (Java Server Pages), idea utama yang merupakan kompilasi sekali kod Java (servlet) pada kali pertama ia diakses, pelaksanaan kaedah servlet ini dan meletakkan hasil pelaksanaan kaedah ini dalam set data yang dihantar ke penyemak imbas.

Versi terkini teknologi Active Server Pages ialah ASP .NET, yang merupakan kunci kepada seni bina Microsoft .NET Framework. Menggunakan ASP .NET, anda boleh mencipta aplikasi Web dan perkhidmatan Web yang bukan sahaja membolehkan anda melaksanakan penjanaan dinamik halaman HTML, tetapi juga berintegrasi dengan komponen pelayan dan boleh digunakan untuk menyelesaikan pelbagai masalah perniagaan yang timbul sebelum pembangun moden Aplikasi web.

Secara umum, pelanggan pelayan Web bukan sahaja komputer peribadi yang dilengkapi dengan pelayar Web biasa. Seiring dengan penggunaan peranti mudah alih yang meluas, masalah menyediakan pelayan Web dengan data yang boleh ditafsirkan oleh peranti ini juga timbul. Memandangkan peranti mudah alih mempunyai ciri yang berbeza daripada komputer peribadi (saiz skrin terhad, memori kecil, dan selalunya ketidakupayaan untuk memaparkan apa-apa selain beberapa baris teks hitam putih), terdapat protokol pemindahan data lain untuknya (WAP - Protokol Akses Tanpa Wayar) dan bahasa penanda yang sepadan (WML – Wireless Markup Language, СHTML – Compact HTML, dsb.). Dalam kes ini, tugas timbul untuk memindahkan data ke peranti mudah alih dalam format yang sesuai (dan terdapat tapak khas untuk tujuan ini), atau, yang kelihatan lebih mudah, jenis peranti diiktiraf pada masa ia menghubungi pelayan dan dokumen sumber ditukar (contohnya, dalam format XML) ke dalam format yang diperlukan oleh ini peranti mudah alih(contohnya, menggunakan transformasi XSLT).

Satu lagi cara untuk menyokong jenis pelanggan yang berbeza adalah dengan mencipta komponen pelayan "pintar" yang boleh menjana kod berbeza bergantung pada jenis klien. Pendekatan ini, khususnya, dilaksanakan dalam Microsoft ASP .NET.

Arah lain dalam pembangunan bahagian klien aplikasi Web ialah penempatan beberapa bahagian logik aplikasi (seperti menyemak ketepatan data input) dalam pelayar Web itu sendiri. Khususnya, pelayar Web moden mampu mentafsir bahasa skrip (VBScript, JavaScript), kod di mana, seperti kod ASP, dibenamkan dalam halaman Web, tetapi ditafsirkan bukan oleh pelayan Web, tetapi oleh pelayar dan , sewajarnya, dilaksanakan pada peranti klien. selain itu, pelayar moden mampu memaparkan dan melaksanakan applet Java - aplikasi Java khas yang diterima pengguna sebagai sebahagian daripada halaman Web, dan sesetengah penyemak imbas juga boleh berfungsi sebagai bekas untuk kawalan ActiveX - pelayan COM khas yang berjalan dalam ruang alamat penyemak imbas, juga diterima sebagai sebahagian daripada Laman sesawang. Kedua-dua applet Java dan kawalan ActiveX boleh melaksanakan hampir semua fungsi.

Ambil perhatian bahawa apabila jumlah data yang digunakan dan bilangan pelawat tapak web meningkat, keperluan untuk kebolehpercayaan, prestasi dan kebolehskalaan aplikasi Web juga meningkat. Peringkat seterusnya dalam evolusi aplikasi tersebut ialah pengasingan logik perniagaan yang dilaksanakan dalam aplikasi Web, dan selalunya pemprosesan data dan perkhidmatan transaksi, daripada antara mukanya. Dalam kes ini, bahagian pembentangan yang dipanggil biasanya kekal dalam aplikasi Web itu sendiri, dan logik perniagaan, pemprosesan data dan pelaksanaan transaksi dipindahkan ke pelayan aplikasi dalam bentuk objek perniagaan. Bergantung pada jenis pelayan aplikasi Objek perniagaan ini boleh menjadi pelayan COM yang dilaksanakan sendiri, pelayan CORBA atau objek COM+ yang dijalankan menggunakan perkhidmatan. Komponen Windows 2000, atau EJBs (Enterprise Java Beans) boleh laku pelayan aplikasi, menyokong spesifikasi J2EE (Java 2 Enterprise Edition). Sebagai mekanisme capaian data objek tersebut boleh menggunakan OLE DB, ODBC, JDBC (ini bergantung pada cara objek perniagaan dilaksanakan).

Selalunya, objek perniagaan tersebut menyediakan akses kepada data daripada sistem maklumat korporat atau melaksanakan sebahagian daripada fungsinya. Mereka sering membenarkan, sebagai contoh, penyepaduan tapak web dengan sistem CRM (Pengurusan Perhubungan Pelanggan) atau ERP (Enterprise Resource Planning), menyimpan maklumat tentang pelawat tapak dalam sistem korporat dan menyediakan pelanggan berpotensi maklumat tentang produk yang tersedia untuk membuat pesanan.

Memandangkan Internet moden bukanlah satu cara untuk menunjukkan kehadiran syarikat dalam pasaran atau alat pemasaran, tetapi sebaliknya alat untuk menjalankan perniagaan, tugas untuk mengatur hubungan sedemikian dengan pelanggan melalui Internet sebagai penjualan barangan dan perkhidmatan menjadi. agak penting. Dan di sini penyelesaian untuk e-dagang jenis "perusahaan kepada pelanggan" (B2C - perniagaan kepada pengguna) menjadi agak penting. Tidak kurang pentingnya adalah tugas untuk menyepadukan aplikasi Web dengan data dan aplikasi rakan kongsi untuk melaksanakan skim perusahaan-ke-perusahaan (B2B - perniagaan-ke-perniagaan), yang membolehkan memuktamadkan transaksi perdagangan antara perusahaan, menukar katalog produk, menjalankan lelongan, mewujudkan platform dagangan elektronik.

Perhatikan bahawa, menjadi sebahagian penyelesaian sedemikian, pelayan Web mestilah boleh bukan sahaja untuk menjalankan aplikasi dan berinteraksi dengannya pelayan aplikasi, tetapi juga menggunakan perkhidmatan penyepaduan, aplikasi dan perkhidmatan pengurusan data, serta perkhidmatan untuk pembangun.

Langkah seterusnya dalam evolusi aplikasi Web, selain daripada mengakses data korporat dan rakan kongsi, ialah mendapatkan akses kepada aplikasi perusahaan. Untuk menyelesaikan masalah mengintegrasikan aplikasi Web dengan sistem maklumat dalaman perusahaan dan dengan aplikasi yang memastikan interaksi dengan pelanggan dan rakan kongsi, penyelesaian khas, dipanggil portal korporat.

Selalunya, sebahagian daripada penyelesaian portal termasuk alat untuk mengurus kandungan laman web - lagipun, jumlah data yang tersedia untuk pengguna yang menggunakan tapak web syarikat besar dan portal kini sedemikian rupa sehingga mengurus data ini "secara manual" tidak mungkin.

Merumuskan perkara di atas, kita boleh menyerlahkan ciri utama seni bina web [, ]:

  • tidak perlu menggunakan perisian tambahan pada bahagian klien - ini membolehkan anda melaksanakan bahagian klien secara automatik pada semua platform;
  • keupayaan untuk menyambungkan bilangan pelanggan yang hampir tidak terhad;
  • terima kasih kepada satu lokasi penyimpanan data dan kehadiran sistem pengurusan pangkalan data, keperluan minimum untuk mengekalkan integriti data dipastikan;
  • ketersediaan apabila pelayan dan saluran komunikasi beroperasi;
  • ketiadaan jika pelayan atau saluran komunikasi tidak beroperasi;
  • kelajuan agak rendah pelayan Web dan saluran penghantaran data;
  • Mengenai volum data, seni bina sistem Web tidak mempunyai batasan yang ketara.

Secara skematik, seni bina sedemikian (dalam versi tiga peringkat) boleh diwakili seperti ditunjukkan dalam Rajah. 5.9.


nasi. 5.9.

5.1.8. Seni bina berorientasikan perkhidmatan

Penyelesaian kepada banyak masalah yang diterangkan di atas yang timbul apabila mencipta aplikasi Web moden kini mula diberikan kepada perkhidmatan Web - platform, model objek dan komponen perisian bebas pelanggan yang boleh dipanggil daripada aplikasi Web pelanggan (serta dari Web perkhidmatan sendiri ) melalui protokol SOAP berdasarkan protokol HTTP dan bahasa XML. Bahasa seperti XML WSDL digunakan untuk menerangkan perkhidmatan Web, dan antara muka UDDI digunakan untuk mengatur pendaftaran perkhidmatan Web di mana pembangun dan syarikat boleh mencari perkhidmatan yang mereka perlukan, serta menerbitkan data tentang perkhidmatan mereka.

Sokongan perkhidmatan web telah menjadi salah satu hala tuju strategik utama bagi banyak syarikat yang mengkhusus dalam pengeluaran pelayan aplikasi, sistem pengurusan pangkalan data dan alat pembangunan aplikasi.

(SOA, seni bina berorientasikan perkhidmatan)– pendekatan modular kepada pembangunan perisian, berdasarkan penggunaan perkhidmatan dengan antara muka piawai.

OASIS (Organisasi untuk Piawaian Terbuka untuk Maklumat Berstruktur) mentakrifkan SOA seperti berikut (Model Rujukan OASIS untuk Seni Bina Berorientasikan Perkhidmatan V 1.0): Seni bina berorientasikan perkhidmatan ialah paradigma untuk mengatur dan menggunakan sumber maklumat yang diedarkan seperti aplikasi dan data, yang berada di bawah tanggungjawab pemilik yang berbeza, untuk mencapai hasil yang diinginkan oleh pengguna, yang mungkin: pengguna akhir atau aplikasi lain.

SOA adalah berdasarkan prinsip penggunaan semula elemen IT berfungsi, menghapuskan pertindihan fungsi dalam perisian, menyatukan proses operasi standard, memastikan pemindahan model operasi syarikat kepada proses terpusat dan organisasi berfungsi berasaskan platform integrasi industri.

Komponen program boleh diedarkan merentasi nod rangkaian yang berbeza, dan ditawarkan sebagai perkhidmatan aplikasi bebas, gandingan longgar, boleh diganti. Pakej perisian yang dibangunkan mengikut SOA sering dilaksanakan sebagai satu set perkhidmatan web yang disepadukan menggunakan protokol standard yang terkenal (SOAP, WSDL, dll.)

Antara muka komponen program SOA menyediakan enkapsulasi butiran pelaksanaan komponen tertentu (OS, platform, bahasa pengaturcaraan, vendor, dll.) daripada komponen lain. Oleh itu, SOA menyediakan cara yang fleksibel dan elegan untuk menggabungkan dan menggunakan semula komponen untuk membina sistem perisian teragih yang kompleks.

SOA telah membuktikan dirinya berguna untuk membina aplikasi perisian perusahaan besar. Sebilangan pembangun dan penyepadu menawarkan alat dan penyelesaian berasaskan SOA (contohnya, platform IBM WebSphere, Oracle/BEA Aqualogic, Yayasan Komunikasi Microsoft Windows, SAP NetWeaver, IVK Jupiter, TIBCO, Diasoft).

Matlamat utama menggunakan SOA untuk sistem maklumat besar, peringkat perusahaan dan ke atas ialah:

  • mengurangkan kos dalam pembangunan aplikasi dengan memperkemas proses pembangunan;
  • mempertingkatkan penggunaan semula kod;
  • kebebasan daripada platform, alatan, dan bahasa pembangunan yang digunakan;
  • meningkatkan skalabiliti sistem yang dicipta;
  • meningkatkan kebolehkawalan sistem yang dicipta.

Prinsip SOA:

  • seni bina, oleh itu, tidak terikat dengan mana-mana teknologi tertentu;
  • kebebasan organisasi sistem daripada platform pengkomputeran yang digunakan;
  • kebebasan organisasi sistem daripada bahasa pengaturcaraan yang digunakan;
  • penggunaan perkhidmatan bebas daripada aplikasi tertentu, dengan antara muka akses seragam;
  • mengatur perkhidmatan sebagai komponen yang digandingkan secara longgar untuk sistem pembinaan.

Seni bina tidak terikat dengan mana-mana teknologi tertentu. Ia boleh dilaksanakan menggunakan pelbagai jenis teknologi, termasuk teknologi seperti REST, RPC, DCOM, CORBA atau perkhidmatan web. SOA boleh dilaksanakan menggunakan salah satu protokol ini dan, sebagai contoh, boleh juga menggunakan mekanisme sistem fail, untuk pertukaran data.

Perkara utama yang membezakan SOA ialah penggunaan perkhidmatan bebas, dengan antara muka yang jelas, yang, untuk melaksanakan tugas mereka, boleh dipanggil dalam beberapa cara standard, dengan syarat bahawa perkhidmatan tidak mengetahui apa-apa terlebih dahulu tentang aplikasi yang akan memanggil mereka, dan aplikasi tidak tahu, bagaimana perkhidmatan melaksanakan tugas mereka.

SOA juga boleh dianggap sebagai gaya seni bina sistem maklumat yang membolehkan anda mencipta aplikasi yang dibina oleh gabungan perkhidmatan yang digandingkan secara longgar dan berinteraksi. Perkhidmatan ini berinteraksi berdasarkan beberapa antara muka bebas platform dan bebas bahasa yang ditentukan dengan ketat (contohnya, WSDL). Definisi antara muka menyembunyikan pelaksanaan khusus bahasa bagi perkhidmatan.

Oleh itu, sistem berasaskan SOA boleh bebas daripada teknologi dan platform pembangunan (seperti Java, .NET, dll.). Contohnya, perkhidmatan yang ditulis dalam C# berjalan pada platform .Net dan perkhidmatan yang ditulis dalam Java berjalan pada platform Java EE boleh dipanggil oleh aplikasi komposit biasa dengan kejayaan yang sama. Aplikasi yang berjalan pada sesetengah platform boleh memanggil perkhidmatan yang dijalankan pada platform lain, menjadikannya lebih mudah guna semula komponen.

, , Terminal , Pelayan aplikasi, Pelayan pangkalan data, Senibina Sistem Teragih, , Seni bina berorientasikan perkhidmatan.

Perisian sumber terbuka telah menjadi blok binaan teras dalam penciptaan beberapa laman web terbesar di dunia. Dengan pertumbuhan tapak web ini, amalan terbaik dan garis panduan untuk seni bina mereka telah muncul. Bab ini bertujuan untuk merangkumi beberapa isu utama yang perlu dipertimbangkan semasa mereka bentuk tapak web yang besar, serta beberapa komponen asas yang digunakan untuk mencapai matlamat ini.

Tumpuan bab ini adalah pada analisis sistem berasaskan web, walaupun beberapa bahan mungkin diekstrapolasi kepada sistem teragih lain.

1.1 Prinsip membina sistem web teragih

Apakah sebenarnya yang dimaksudkan untuk mencipta dan mengurus tapak web atau aplikasi berskala? Pada tahap primitif, ini hanya menghubungkan pengguna ke sumber terpencil melalui Internet. Dan sumber atau akses kepada sumber ini, yang diedarkan melalui banyak pelayan dan merupakan pautan yang memastikan kebolehskalaan tapak web.

Seperti kebanyakan perkara dalam kehidupan, masa yang dihabiskan untuk merancang pembinaan perkhidmatan web boleh membantu kemudian; Memahami beberapa pertimbangan dan pertukaran di sebalik tapak web yang besar boleh menghasilkan keputusan yang lebih bijak apabila membina tapak web yang lebih kecil. Berikut ialah beberapa prinsip utama yang mempengaruhi reka bentuk sistem web berskala besar:

  • Ketersediaan: tempoh masa keadaan bekerja Laman web adalah penting untuk reputasi dan fungsi banyak syarikat. Bagi sesetengah peruncit dalam talian yang lebih besar, tidak tersedia walaupun untuk beberapa minit boleh mengakibatkan kehilangan hasil beribu-ribu atau berjuta-juta dolar. Oleh itu, membangunkan sistem mereka agar sentiasa tersedia dan berdaya tahan terhadap kegagalan adalah keperluan asas perniagaan dan teknologi. Ketersediaan tinggi dalam sistem teragih memerlukan pertimbangan yang teliti terhadap lebihan untuk komponen utama, pemulihan cepat selepas kegagalan sistem separa dan pengurangan keupayaan yang lancar apabila masalah timbul.
  • Prestasi: Prestasi laman web telah menjadi penunjuk penting untuk kebanyakan tapak. Kelajuan tapak web memberi kesan kepada pengalaman dan kepuasan pengguna, serta kedudukan enjin carian—faktor yang secara langsung memberi kesan kepada pengekalan dan hasil khalayak. Akibatnya, kuncinya ialah mencipta sistem yang dioptimumkan untuk respons pantas dan kependaman rendah.
  • Kebolehpercayaan: Sistem mesti boleh dipercayai supaya permintaan khusus apabila menerima data secara seragam mengembalikan data tertentu. Sekiranya berlaku perubahan atau kemas kini data, permintaan yang sama harus mengembalikan data baharu. Pengguna perlu tahu bahawa jika sesuatu direkodkan atau disimpan dalam sistem, mereka boleh yakin bahawa ia akan kekal di tempatnya untuk mendapatkan semula kemudian.
  • Kebolehskalaan: Apabila ia datang kepada mana-mana sistem pengedaran yang besar, saiz hanyalah satu item dalam senarai yang perlu dipertimbangkan. Sama pentingnya ialah usaha untuk meningkatkan kapasiti pemprosesan jumlah yang besar beban, yang biasanya dipanggil kebolehskalaan sistem. Kebolehskalaan boleh merujuk kepada pelbagai parameter sistem: jumlah trafik tambahan yang boleh dikendalikannya, betapa mudahnya untuk menambah kapasiti storan atau berapa banyak lagi transaksi lain yang boleh diproses.
  • Kebolehkawalan: Merancang sistem yang mudah dikendalikan adalah satu lagi faktor penting. Kebolehurusan sistem bersamaan dengan kebolehskalaan operasi "penyelenggaraan" dan "kemas kini". Untuk memastikan kebolehurusan, adalah perlu untuk mempertimbangkan kemudahan mendiagnosis dan memahami masalah yang timbul, kemudahan mengemas kini atau mengubah suai, dan kemudahan penggunaan sistem. (Iaitu, adakah ia berfungsi seperti yang diharapkan tanpa kegagalan atau pengecualian?)
  • Harga: Kosnya ialah faktor penting. Ini jelas boleh termasuk kos perkakasan dan perisian, tetapi ia juga penting untuk mempertimbangkan aspek lain yang diperlukan untuk menggunakan dan menyelenggara sistem. Jumlah masa pembangun yang diperlukan untuk membina sistem, jumlah usaha operasi yang diperlukan untuk menyediakan dan menjalankan sistem, malah tahap latihan yang sesuai mesti disediakan. Kos mewakili jumlah kos pemilikan.

Setiap prinsip ini adalah asas untuk membuat keputusan reka bentuk seni bina web yang diedarkan. Walau bagaimanapun, mereka juga boleh bercanggah antara satu sama lain kerana mencapai matlamat seseorang datang dengan mengorbankan pengabaian yang lain. Contoh mudah: memilih untuk menambah berbilang pelayan sahaja sebagai penyelesaian prestasi (skala) boleh meningkatkan kos pengurusan (anda perlu menjalankan pelayan tambahan) dan pembelian pelayan.

Apabila membangunkan apa-apa jenis aplikasi web, adalah penting untuk mempertimbangkan prinsip utama ini, walaupun ia adalah untuk mengesahkan bahawa projek itu boleh mengorbankan satu atau lebih daripadanya.

1.2 Asas

Apabila mempertimbangkan seni bina sistem, terdapat beberapa isu yang perlu ditangani, seperti komponen mana yang patut digunakan, cara ia sesuai bersama, dan apakah pertukaran yang boleh dibuat. Melabur wang dalam skala tanpa keperluan yang jelas untuk itu bukanlah keputusan perniagaan yang bijak. Walau bagaimanapun, beberapa pemikiran dalam perancangan boleh menjimatkan masa dan sumber yang besar pada masa hadapan.

Bahagian ini memberi tumpuan kepada beberapa faktor asas yang penting kepada hampir semua aplikasi web yang besar: Perkhidmatan,
redundansi, pembahagian, Dan pengendalian kegagalan. Setiap faktor ini melibatkan pilihan dan pertukaran, terutamanya dalam konteks prinsip yang diterangkan dalam bahagian sebelumnya. Untuk menjelaskan, mari kita berikan contoh.

Contoh: Aplikasi Pengehosan Imej

Anda mungkin pernah menyiarkan imej dalam talian sebelum ini. Untuk tapak besar yang menyimpan dan menghantar banyak imej, terdapat cabaran dalam mencipta seni bina yang kos efektif dan boleh dipercayai yang mempunyai kependaman tindak balas yang rendah (pendapatan pantas).

Bayangkan sistem di mana pengguna mempunyai keupayaan untuk memuat naik imej mereka ke pelayan pusat, dan di mana imej boleh diminta melalui pautan tapak atau API, serupa dengan Flickr atau Picasa. Untuk memudahkan penerangan, mari kita anggap bahawa aplikasi ini mempunyai dua tugas utama: keupayaan untuk memuat naik (menulis) imej ke pelayan dan meminta imej. Sudah tentu, pemuatan yang cekap adalah kriteria penting, tetapi keutamaan adalah Penghantaran cepat seperti yang diminta oleh pengguna (sebagai contoh, imej mungkin diminta untuk dipaparkan pada halaman web atau oleh aplikasi lain). Fungsi ini adalah serupa dengan pelayan web atau pelayan tepi Rangkaian Penghantaran Kandungan (CDN) boleh sediakan. Pelayan CDN biasanya menyimpan objek data di berbilang lokasi, dengan itu mendekatkan mereka secara geografi/fizikal kepada pengguna, menghasilkan prestasi yang lebih baik.

Aspek penting lain sistem:

  • Bilangan imej yang disimpan boleh tidak terhad, jadi skala storan mesti dipertimbangkan dari sudut pandangan ini.
  • Harus ada kependaman rendah untuk muat turun/permintaan imej.
  • Jika pengguna memuat naik imej ke pelayan, datanya mesti sentiasa kekal utuh dan boleh diakses.
  • Sistem mestilah mudah diselenggara (manageability).
  • Memandangkan pengehosan imej tidak menjana banyak keuntungan, sistem mestilah kos efektif.

Satu lagi masalah yang berpotensi dengan reka bentuk ini ialah pelayan web seperti Apache atau lighttpd biasanya mempunyai had atas bilangan sambungan serentak yang dapat diservis (lalainya ialah kira-kira 500, tetapi ia boleh menjadi lebih tinggi) dan dengan trafik yang tinggi , rakaman boleh menggunakan had ini dengan cepat. Memandangkan bacaan boleh menjadi tidak segerak atau mengambil kesempatan daripada pengoptimuman prestasi lain seperti pemampatan gzip atau chunking, pelayan web boleh menukar bacaan suapan dengan lebih pantas dan bertukar antara pelanggan, memberikan lebih banyak permintaan daripada bilangan maksimum sambungan (dengan Apache dan bilangan maksimum sambungan yang ditetapkan kepada 500, agak mungkin untuk menyampaikan beberapa ribu permintaan baca sesaat). Rekod, sebaliknya, cenderung untuk memastikan sambungan terbuka sepanjang tempoh muat turun. Oleh itu, pemindahan fail 1 MB ke pelayan boleh mengambil masa lebih daripada 1 saat pada kebanyakan rangkaian rumah, menyebabkan pelayan web hanya dapat memproses 500 entri serentak ini.


Rajah 1.2: Pemisahan Baca/Tulis

Menjangkakan potensi masalah ini mencadangkan keperluan untuk memisahkan bacaan dan penulisan imej kepada perkhidmatan bebas, ditunjukkan dalam . Ini bukan sahaja membolehkan kita menskalakan setiap satu daripadanya secara berasingan (kerana kemungkinan kita akan sentiasa melakukannya lebih banyak bacaan daripada rekod), tetapi juga untuk mengetahui apa yang berlaku dalam setiap perkhidmatan. Akhir sekali, ia akan membezakan masalah yang mungkin timbul pada masa hadapan, menjadikannya lebih mudah untuk mendiagnosis dan menilai masalah akses baca yang perlahan.

Kelebihan pendekatan ini ialah kami dapat menyelesaikan masalah secara bebas antara satu sama lain - tanpa perlu risau tentang merakam dan mendapatkan semula imej baharu dalam konteks yang sama. Kedua-dua perkhidmatan ini masih menggunakan korpus imej global, tetapi dengan menggunakan teknik khusus perkhidmatan mereka dapat mengoptimumkan produktiviti sendiri(contohnya, permintaan beratur atau menyimpan cache imej popular - lebih lanjut mengenai perkara ini kemudian). Dari kedua-dua perspektif perkhidmatan dan kos, setiap perkhidmatan boleh diskalakan secara bebas mengikut keperluan. Dan ini adalah perkara yang positif, kerana menggabungkan dan mencampurkannya boleh menjejaskan prestasi mereka secara tidak sengaja, seperti dalam senario yang diterangkan di atas.

Sudah tentu, model di atas akan berfungsi secara optimum jika terdapat dua titik akhir yang berbeza (sebenarnya, ini sangat serupa dengan beberapa pelaksanaan penyedia storan awan dan Rangkaian Penghantaran Kandungan). Terdapat banyak penyelesaian masalah yang serupa, dan dalam setiap kes kompromi boleh didapati.

Sebagai contoh, Flickr menyelesaikan masalah baca-tulis ini dengan mengedarkan pengguna merentas pod berbeza supaya setiap pod hanya boleh memberi perkhidmatan kepada bilangan pengguna tertentu yang terhad dan apabila bilangan pengguna bertambah, lebih banyak pod ditambahkan pada kluster (lihat pembentangan penskalaan Flickr ,
http://mysqldba.blogspot.com/2008/04/mysql-uc-2007-presentation-file.html). Dalam contoh pertama, adalah lebih mudah untuk menskalakan perkakasan berdasarkan beban penggunaan sebenar (bilangan membaca dan menulis merentas keseluruhan sistem), manakala skala Flickr berdasarkan pangkalan pengguna (namun, ini menganggap penggunaan yang sama merentas pengguna, jadi kapasiti perlu dirancang mengikut stok). Pada masa lalu, ketiadaan atau masalah dengan salah satu perkhidmatan akan merosakkan kefungsian keseluruhan sistem(contohnya, tiada siapa yang boleh menulis fail), maka ketiadaan salah satu modul Flickr hanya akan menjejaskan pengguna yang berkaitan dengannya. Dalam contoh pertama, lebih mudah untuk melaksanakan operasi pada keseluruhan set data - contohnya, mengemas kini perkhidmatan rakaman untuk memasukkan metadata baharu atau mencari semua metadata imej - manakala dengan seni bina Flickr, setiap modul perlu dikemas kini atau dicari ( atau perkhidmatan carian terpaksa dibuat untuk mengisih metadata yang sebenarnya bertujuan untuk tujuan ini).

Bagi sistem ini, tiada ubat penawar, tetapi anda harus sentiasa meneruskan dari prinsip yang diterangkan pada permulaan bab ini: tentukan keperluan sistem (beban baca atau tulis atau kedua-duanya, tahap selari, pertanyaan pada set data, julat, pengisihan, dsb.), menjalankan ujian penanda aras perbandingan pelbagai alternatif, memahami kemungkinan keadaan kegagalan sistem, dan membangunkan pelan komprehensif sekiranya kegagalan berlaku.

Lebihan

Untuk menangani kegagalan dengan anggun, seni bina web mesti mempunyai lebihan dalam perkhidmatan dan datanya. Sebagai contoh, jika terdapat hanya satu salinan fail yang disimpan pada pelayan tunggal, kehilangan pelayan itu bermakna kehilangan fail. Ini tidak mungkin menjadi situasi yang positif dan biasanya boleh dielakkan dengan membuat berbilang salinan atau sandaran.

Prinsip yang sama ini digunakan untuk perkhidmatan. Anda boleh melindungi daripada kegagalan nod tunggal dengan menyediakan bahagian penting fungsi untuk aplikasi yang menjamin kerja serentak beberapa salinan atau versinya.

Mencipta lebihan dalam sistem membolehkan anda menyingkirkan titik lemah dan menyediakan kefungsian sandaran atau berlebihan sekiranya berlaku kecemasan. Sebagai contoh, jika terdapat dua contoh perkhidmatan yang sama berjalan dalam pengeluaran, dan salah satu daripadanya gagal sepenuhnya atau sebahagiannya, sistem boleh mengatasi kegagalan itu dengan bertukar kepada salinan kerja.
Penukaran mungkin berlaku secara automatik atau memerlukan campur tangan manual.

.

Satu lagi peranan penting bagi lebihan perkhidmatan ialah mencipta seni bina yang tidak menyediakan perkongsian sumber. Dengan seni bina ini, setiap nod dapat beroperasi secara bebas dan, lebih-lebih lagi, jika tiada "otak" pusat yang menguruskan keadaan atau menyelaraskan tindakan nod lain. Ia menggalakkan kebolehskalaan kerana menambah nod baharu tidak memerlukan syarat atau pengetahuan khas. Paling penting, tiada titik kritikal kegagalan dalam sistem ini, menjadikannya lebih berdaya tahan terhadap kegagalan.

.

Contohnya, dalam aplikasi pelayan imej kami, semua imej akan mempunyai salinan berlebihan di suatu tempat dalam perkakasan lain (sebaik-baiknya di lokasi geografi yang berbeza sekiranya berlaku bencana seperti gempa bumi atau kebakaran di pusat data), dan perkhidmatan akan mengakses imej akan menjadi berlebihan, memandangkan kesemuanya berpotensi menyampaikan permintaan. (Cm. .)
Memandang ke hadapan, pengimbang beban ialah cara yang bagus untuk membolehkan perkara ini, tetapi lebih lanjut mengenai perkara di bawah.


Rajah 1.3: Aplikasi Pengehosan Imej Berlebihan

Segmentasi

Set data boleh menjadi sangat besar sehingga ia tidak boleh dimuatkan pada satu pelayan. Ia juga mungkin berlaku bahawa operasi pengkomputeran memerlukan terlalu banyak sumber komputer, mengurangkan prestasi dan memerlukan peningkatan kuasa. Walau apa pun, anda mempunyai dua pilihan: penskalaan menegak atau mendatar.

Penskalaan menegak melibatkan penambahan lebih banyak sumber pada pelayan tunggal. Jadi, untuk set data yang sangat besar, ini bermakna menambah lebih banyak (atau lebih besar) cakera keras supaya keseluruhan set data boleh dimuatkan pada satu pelayan. Dalam kes operasi pengiraan, ini bermakna memindahkan pengiraan ke pelayan yang lebih besar dengan CPU yang lebih pantas atau lebih banyak memori. Walau apa pun, penskalaan menegak dilakukan untuk menjadikan satu sumber sistem pengkomputeran mampu memproses data tambahan.

Penskalaan mendatar, sebaliknya, melibatkan penambahan lebih banyak nod. Dalam kes set data yang besar, ini bermakna menambah pelayan kedua untuk menyimpan sebahagian daripada jumlah volum data, dan untuk sumber pengkomputeran, ini bermakna membahagikan kerja atau beban merentas beberapa nod tambahan. Untuk memanfaatkan potensi sepenuhnya penskalaan mendatar, ia perlu dilaksanakan sebagai prinsip dalaman pembangunan seni bina sistem. Jika tidak, menukar dan mengasingkan konteks yang diperlukan untuk penskalaan mendatar boleh menjadi masalah.

Kaedah penskalaan mendatar yang paling biasa ialah membahagikan perkhidmatan kepada segmen atau modul. Ia boleh diedarkan sedemikian rupa sehingga setiap set logik fungsi berfungsi secara berasingan. Ini boleh dilakukan mengikut sempadan geografi, atau kriteria lain seperti pengguna yang membayar dan tidak membayar. Kelebihan skim ini ialah ia menyediakan perkhidmatan atau stor data dengan fungsi yang dipertingkatkan.

Dalam contoh pelayan imej kami, ada kemungkinan bahawa pelayan fail tunggal yang digunakan untuk menyimpan imej boleh digantikan dengan berbilang pelayan fail, setiap satu mengandungi set imej uniknya sendiri. (Lihat.) Seni bina ini akan membolehkan sistem mengisi setiap pelayan fail dengan imej, menambah pelayan tambahan apabila ia menjadi penuh. ruang cakera. Reka bentuk akan memerlukan skema penamaan yang mengaitkan nama fail imej dengan pelayan yang mengandunginya. Nama imej boleh dihasilkan daripada skema pencincangan konsisten yang terikat pada pelayan. Atau sebagai alternatif, setiap imej boleh mempunyai ID tambahan, yang membolehkan perkhidmatan penghantaran, apabila meminta imej, hanya memproses julat ID yang dikaitkan dengan setiap pelayan (sebagai indeks).


Rajah 1.4: Aplikasi pengehosan imej dengan redundansi dan pembahagian

Sudah tentu, terdapat kesukaran dalam mengedarkan data atau fungsi merentasi banyak pelayan. Salah satu soalan utama ialah lokasi data; dalam sistem teragih, semakin hampir data itu kepada titik operasi atau pengiraan, semakin prestasi yang lebih baik sistem. Akibatnya, pengedaran data merentasi berbilang pelayan berpotensi bermasalah, kerana pada bila-bila masa data mungkin diperlukan, terdapat risiko ia mungkin tidak tersedia di lokasi yang diperlukan, pelayan perlu melakukan pengambilan semula maklumat yang diperlukan secara mahal. rangkaian.

Satu lagi masalah yang berpotensi timbul dalam bentuk
tidak konsisten (inconsistency) Apabila perkhidmatan yang berbeza membaca dan menulis kepada sumber yang dikongsi, mungkin perkhidmatan lain atau stor data, adalah mungkin untuk "keadaan perlumbaan" berlaku - di mana sesetengah data dianggap dikemas kini kepada keadaan terkini, tetapi sebenarnya dibaca sebelum ia dikemas kini - dalam hal ini data tidak konsisten. Contohnya, dalam senario pengehosan imej, keadaan perlumbaan mungkin berlaku jika seorang pelanggan menghantar permintaan untuk mengemas kini imej anjing, menukar tajuk "Anjing" kepada "Gizmo" semasa pelanggan lain membaca imej itu. Dalam keadaan sedemikian, tidak jelas tajuk mana, "Anjing" atau "Gizmo", yang akan diterima oleh pelanggan kedua.

.

Sudah tentu, terdapat beberapa halangan yang berkaitan dengan pembahagian data, tetapi pembahagian membolehkan anda mengasingkan setiap masalah daripada yang lain: mengikut data, mengikut beban, mengikut corak penggunaan, dsb. ke dalam blok terurus. Ini boleh membantu dengan kebolehskalaan dan kebolehurusan, tetapi masih terdapat risiko. Terdapat banyak cara untuk mengurangkan risiko dan menangani kegagalan; walau bagaimanapun, untuk kepentingan ringkas mereka tidak dibincangkan dalam bab ini. Jika anda mahukan maklumat lanjut tentang topik ini, anda harus melihat catatan blog mengenai toleransi kesalahan dan pemantauan.

1.3. Blok binaan untuk akses data yang pantas dan berskala

Setelah melihat beberapa prinsip asas dalam pembangunan sistem teragih, mari kita beralih kepada isu yang lebih kompleks - menskalakan akses data.

Aplikasi web yang paling mudah, seperti aplikasi tindanan LAMP, adalah serupa dengan imej dalam .


Rajah 1.5: Aplikasi web mudah

Apabila aplikasi berkembang, dua cabaran utama timbul: menskalakan akses kepada pelayan aplikasi dan kepada pangkalan data. Dalam reka bentuk aplikasi yang sangat berskala, web atau pelayan aplikasi biasanya diminimumkan dan sering melaksanakan seni bina perkongsian sumber. Ini menjadikan lapisan pelayan aplikasi sistem boleh berskala secara mendatar. Hasil daripada reka bentuk ini, pengangkatan berat akan beralih ke bawah timbunan ke pelayan pangkalan data dan perkhidmatan sokongan; Lapisan ini adalah tempat isu penskalaan dan prestasi sebenar dimainkan.

Selebihnya bab ini merangkumi beberapa strategi dan teknik yang paling biasa untuk meningkatkan prestasi dan kebolehskalaan jenis perkhidmatan ini dengan menyediakan akses pantas kepada data.


Rajah 1.6: Aplikasi web yang dipermudahkan

Kebanyakan sistem boleh dipermudahkan kepada litar masuk
yang merupakan tempat yang baik untuk mula mencari. Jika anda mempunyai banyak data, anda boleh mengandaikan bahawa anda mahu ia semudah dan sepantas diakses seperti kotak gula-gula dalam laci meja atas anda. Walaupun perbandingan ini terlalu dipermudahkan, ia menunjuk kepada dua masalah yang kompleks: kebolehskalaan storan data dan capaian data yang pantas.

Untuk tujuan bahagian ini, mari kita anggap bahawa anda mempunyai banyak terabait (TB) data dan anda membenarkan pengguna mengakses sebahagian kecil data tersebut dalam susunan rawak. (Cm. .)
Tugas yang sama adalah untuk menentukan lokasi fail imej di suatu tempat pelayan fail dalam contoh aplikasi pengehosan imej.


Rajah 1.7: Akses kepada data tertentu

Ini amat sukar kerana memuatkan terabait data ke dalam memori boleh menjadi sangat mahal dan secara langsung memberi kesan kepada I/O cakera. Kelajuan membaca dari cakera adalah beberapa kali lebih rendah daripada kelajuan membaca dari memori capaian rawak- anda boleh mengatakan bahawa akses memori adalah sepantas Chuck Norris, manakala akses cakera adalah lebih perlahan daripada baris gilir di klinik. Perbezaan dalam kelajuan ini amat ketara untuk set data yang besar; Dalam nombor mentah, capaian memori adalah 6 kali lebih pantas daripada bacaan cakera untuk bacaan berurutan dan 100,000 kali lebih pantas untuk bacaan rawak (lihat Pathologies of Big Data, http://queue.acm.org/detail. cfm?id=1563874). ). Lebih-lebih lagi, walaupun dengan pengecam unik, menyelesaikan masalah mencari sekeping data kecil boleh menjadi sukar seperti cuba memilih gula-gula berisi coklat terakhir daripada kotak ratusan gula-gula lain tanpa melihat.

Nasib baik, terdapat banyak pendekatan yang boleh diambil untuk memudahkan perkara, dengan empat pendekatan yang paling penting ialah penggunaan cache, proksi, indeks dan pengimbang beban. Baki bahagian ini membincangkan bagaimana setiap konsep ini boleh digunakan untuk menjadikan capaian data lebih pantas.

Cache

Caching mendapat manfaat daripada ciri prinsip asas: data yang diminta baru-baru ini mungkin diperlukan lagi. Cache digunakan pada hampir setiap peringkat pengkomputeran: perkakasan, sistem pengendalian, penyemak imbas web, aplikasi web dan banyak lagi. Cache adalah seperti memori jangka pendek: saiz terhad, tetapi lebih pantas daripada sumber data asal dan mengandungi item yang telah diakses baru-baru ini. Cache boleh wujud pada semua peringkat dalam seni bina, tetapi selalunya ditemui pada tahap yang paling hampir dengan bahagian hadapan, di mana ia dilaksanakan untuk mengembalikan data dengan cepat tanpa beban bahagian belakang yang ketara.

Jadi bagaimanakah cache boleh digunakan untuk mempercepatkan akses data dalam contoh API kami? Dalam kes ini, terdapat beberapa lokasi cache yang sesuai. Satu pilihan peletakan yang mungkin adalah untuk memilih nod pada peringkat pertanyaan, seperti yang ditunjukkan dalam
.


Rajah 1.8: Peletakan cache pada nod peringkat pertanyaan

Meletakkan cache terus pada nod peringkat permintaan membolehkan penyimpanan tempatan data tindak balas. Setiap kali permintaan perkhidmatan dibuat, nod akan cepat mengembalikan data tempatan yang dicache, jika ada. Jika ia tiada dalam cache, nod permintaan akan meminta data daripada cakera. Cache pada satu nod peringkat pertanyaan juga boleh didapati dalam ingatan (yang sangat pantas) dan seterusnya cakera tempatan nod (lebih pantas daripada cuba mengakses storan rangkaian).


Rajah 1.9: Sistem cache

Apakah yang berlaku apabila anda menyebarkan cache merentasi banyak nod? Seperti yang anda boleh lihat, jika tahap permintaan termasuk banyak nod, maka berkemungkinan setiap nod akan mempunyai cache sendiri. Walau bagaimanapun, jika pengimbang beban anda mengedarkan permintaan secara rawak antara nod, maka permintaan yang sama akan pergi ke nod yang berbeza, sekali gus meningkatkan kehilangan cache. Dua cara untuk mengatasi halangan ini ialah cache global dan diedarkan.

Cache global

Maksud cache global jelas daripada namanya: semua nod berkongsi satu ruang cache tunggal. Dalam kes ini, anda menambah pelayan atau storan fail sejenis yang lebih pantas daripada storan asal anda dan yang akan tersedia untuk semua nod peringkat permintaan. Setiap nod permintaan menanyakan cache dengan cara yang sama seolah-olah ia adalah tempatan. Skim caching jenis ini boleh menyebabkan beberapa masalah, kerana satu cache boleh menjadi sangat mudah terbeban jika bilangan pelanggan dan permintaan meningkat. Pada masa yang sama, skim ini sangat berkesan pada seni bina tertentu (terutamanya yang dikaitkan dengan perkakasan khusus yang menjadikan cache global ini sangat pantas, atau yang mempunyai set data tetap yang mesti dicache).

Terdapat dua bentuk piawai cache global ditunjukkan dalam rajah. Situasi yang ditunjukkan ialah apabila respons cache tidak ditemui dalam cache, cache itu sendiri bertanggungjawab untuk mendapatkan semula bahagian data yang hilang daripada storan asas. Illustrated adalah tanggungjawab nod permintaan untuk mendapatkan semula data yang tidak ditemui dalam cache.


Rajah 1.10: Cache global, di mana cache bertanggungjawab untuk mendapatkan semula



Rajah 1.11: Cache global, di mana nod permintaan bertanggungjawab untuk mendapatkan semula

Kebanyakan aplikasi yang memanfaatkan cache global cenderung menggunakan jenis pertama, di mana cache itu sendiri menguruskan penggantian dan mengambil data untuk menghalang pelanggan daripada membanjiri permintaan untuk data yang sama. Walau bagaimanapun, terdapat beberapa kes di mana pelaksanaan kedua lebih masuk akal. Sebagai contoh, jika cache digunakan untuk fail yang sangat besar, kadar hit cache yang rendah akan menyebabkan cache penimbal menjadi terlebih beban dengan kehilangan cache; dalam situasi ini ia membantu untuk mempunyai peratusan yang besar daripada jumlah set data (atau set data panas) dalam cache. Contoh lain ialah seni bina di mana fail yang disimpan dalam cache adalah statik dan tidak boleh dipadamkan. (Ini mungkin berlaku disebabkan ciri prestasi asas berkenaan kependaman data sedemikian - mungkin bahagian tertentu data perlu sangat pantas untuk set data yang besar - di mana logik aplikasi memahami strategi penggantian atau titik liputan lebih baik daripada cache.)

Cache yang diedarkan

Indeks ini selalunya disimpan dalam ingatan atau di tempat yang sangat setempat kepada permintaan pelanggan masuk. Berkeley DB (BDB) dan struktur data pokok, yang biasanya digunakan untuk menyimpan data dalam senarai tersusun, adalah sesuai untuk akses diindeks.

Selalunya terdapat banyak lapisan indeks yang bertindak sebagai peta, memindahkan anda dari satu lokasi ke lokasi lain, dan seterusnya, sehingga anda mempunyai sekeping data yang anda perlukan. (Cm. )


Rajah 1.17: Indeks pelbagai peringkat

Indeks juga boleh digunakan untuk mencipta berbilang paparan lain bagi data yang sama. Untuk set data yang besar, ini ialah cara yang bagus untuk menentukan penapis dan paparan yang berbeza tanpa perlu membuat banyak salinan tambahan data.

Sebagai contoh, katakan sistem pengehosan imej yang dinyatakan di atas sebenarnya mengehos imej halaman buku dan perkhidmatan tersebut membenarkan pelanggan menanyakan teks dalam imej tersebut, mencari semua kandungan teks pada topik tertentu dengan cara yang sama seperti yang membolehkan anda enjin carian. untuk mencari kandungan HTML. Dalam kes ini, semua imej buku ini menggunakan begitu banyak pelayan untuk menyimpan fail, dan mencari satu halaman untuk dibentangkan kepada pengguna boleh menjadi agak sukar. Pada mulanya, indeks terbalik untuk menyoal perkataan sewenang-wenangnya dan set perkataan harus tersedia; maka terdapat tugas untuk bergerak ke halaman dan tempat yang tepat dalam buku itu dan mendapatkan semula imej yang betul untuk hasil carian. Jadi dalam kes ini, indeks terbalik akan dipetakan ke lokasi (seperti buku B), dan kemudian B boleh mengandungi indeks dengan semua perkataan, lokasi dan bilangan kejadian dalam setiap bahagian.

Indeks terbalik, yang Index1 mungkin paparkan dalam rajah di atas, akan kelihatan seperti ini: Setiap perkataan atau set perkataan berfungsi sebagai indeks untuk buku yang mengandunginya.

Indeks perantaraan akan kelihatan serupa, tetapi hanya akan mengandungi perkataan, lokasi dan maklumat untuk buku B. Seni bina berlapis ini membolehkan setiap indeks mengambil sedikit ruang berbanding jika semua maklumat ini disimpan dalam satu indeks terbalik yang besar.

Dan ini adalah perkara utama dalam sistem berskala besar, kerana walaupun dimampatkan, indeks ini boleh menjadi agak besar dan mahal untuk disimpan. Katakan kita mempunyai banyak buku dari seluruh dunia dalam sistem ini - 100,000,000 (lihat catatan blog "Di Dalam Buku Google") - dan setiap buku hanya 10 halaman (untuk memudahkan pengiraan) dengan 250 perkataan setiap halaman : Ini memberikan kami sejumlah 250 bilion perkataan. Jika kita mengambil purata bilangan aksara dalam perkataan menjadi 5, dan mengekod setiap aksara dengan 8 bit (atau 1 bait, walaupun sesetengah aksara sebenarnya mengambil 2 bait), dengan itu membelanjakan 5 bait setiap perkataan, maka indeks yang mengandungi setiap perkataan perkataan sekali sahaja memerlukan penyimpanan lebih daripada 1 terabait. Jadi anda boleh melihat bahawa indeks yang turut mengandungi maklumat lain, seperti set perkataan, lokasi data dan kiraan penggunaan, boleh membesar dalam saiz dengan cepat.

Mencipta indeks perantaraan sedemikian dan mempersembahkan data dalam ketulan yang lebih kecil menjadikan masalah data besar lebih mudah untuk diselesaikan. Data boleh diedarkan merentasi berbilang pelayan dan pada masa yang sama boleh diakses dengan cepat. Indeks ialah asas bagi mendapatkan maklumat dan asas untuk enjin carian moden hari ini. Sudah tentu, bahagian ini hanya menconteng permukaan topik pengindeksan, dan terdapat banyak penyelidikan tentang cara menjadikan indeks lebih kecil, lebih pantas, mengandungi lebih banyak maklumat (seperti perkaitan), dan mudah dikemas kini. (Terdapat beberapa isu dengan mengurus keadaan bersaing, serta bilangan kemas kini yang diperlukan untuk menambah data baharu atau menukar data sedia ada, terutamanya apabila perkaitan atau pemarkahan terlibat).

Mampu mencari data anda dengan cepat dan mudah adalah penting, dan indeks ialah alat yang paling mudah dan berkesan untuk mencapai matlamat ini.

Pengimbang Beban

Akhir sekali, satu lagi bahagian penting dalam mana-mana sistem teragih ialah pengimbang beban. Pengimbang beban ialah bahagian teras mana-mana seni bina kerana peranan mereka adalah untuk mengagihkan beban antara nod yang bertanggungjawab untuk melayani permintaan. Ini membolehkan berbilang nod untuk melaksanakan fungsi yang sama secara telus dalam sistem. (Lihat.) Tujuan utamanya adalah untuk mengendalikan banyak sambungan serentak dan menghalakan sambungan tersebut ke salah satu nod yang diminta, membolehkan sistem membuat skala dengan hanya menambah nod untuk berkhidmat. Kuantiti yang besar permintaan.


Rajah 1.18: Pengimbang Beban

Terdapat banyak pelbagai algoritma untuk melayani permintaan, termasuk pemilihan nod rawak, round robin, atau bahkan pemilihan nod berdasarkan kriteria tertentu seperti penggunaan pemproses pusat atau RAM. Pengimbang beban boleh dilaksanakan sebagai peranti perkakasan atau perisian. Antara pengimbang beban perisian sumber terbuka, HAProxy adalah yang paling banyak digunakan.

Dalam sistem teragih, pengimbang beban selalunya terletak di "tepi depan" sistem, supaya semua permintaan masuk melaluinya terus. Besar kemungkinan dalam sistem teragih yang kompleks permintaan perlu melalui berbilang pengimbang, seperti yang ditunjukkan dalam
.


Rajah 1.19: Pengimbang beban berbilang

Seperti proksi, beberapa pengimbang beban juga boleh menghalakan permintaan secara berbeza bergantung pada jenis permintaan. Mereka juga dikenali sebagai proksi terbalik.

Mengurus data khusus untuk sesi pengguna tertentu adalah salah satu cabaran apabila menggunakan pengimbang beban. Di tapak e-dagang, apabila anda hanya mempunyai seorang pelanggan, sangat mudah untuk membenarkan pengguna meletakkan item dalam troli mereka dan menyimpan kandungan antara lawatan (ini penting kerana kemungkinan menjual item meningkat dengan ketara jika, apabila pengguna kembali ke tapak, produk masih ada dalam trolinya). Walau bagaimanapun, jika pengguna diarahkan ke satu nod untuk sesi pertama, dan kemudian ke nod lain pada lawatan seterusnya, ketidakkonsistenan mungkin berlaku kerana nod baharu mungkin tidak mempunyai pengetahuan tentang kandungan troli beli-belah pengguna tersebut. (Tidakkah anda kecewa jika anda meletakkan bungkusan Mountain Dew ke dalam troli anda dan apabila anda kembali ia tidak ada?) Satu penyelesaian mungkin adalah dengan membuat sesi "melekit" supaya pengguna sentiasa diarahkan ke nod yang sama. Walau bagaimanapun, mengambil kesempatan daripada beberapa ciri kebolehpercayaan, seperti failover automatik, akan menjadi sangat sukar. Dalam kes ini, troli pengguna akan sentiasa mempunyai kandungan, tetapi jika nod melekit mereka menjadi tidak boleh diakses maka pendekatan khas akan diperlukan dan andaian tentang kandungan troli tidak lagi benar (walaupun diharapkan andaian ini tidak akan dibina ke dalam permohonan). Sudah tentu, masalah ini boleh diselesaikan menggunakan strategi dan alat lain, seperti yang diterangkan dalam bab ini, seperti perkhidmatan, dan banyak lagi (seperti cache penyemak imbas, kuki dan penulisan semula URL).

Jika sistem hanya mempunyai beberapa nod, maka teknik seperti karusel DNS mungkin lebih praktikal daripada pengimbang beban, yang boleh mahal dan menambah lapisan kerumitan yang tidak perlu pada sistem. Sudah tentu, dalam sistem yang besar terdapat semua jenis algoritma penjadualan dan pengimbangan beban yang berbeza, termasuk yang semudah pemilihan rawak atau algoritma karusel, atau lebih mekanisme yang kompleks, yang mengambil kira ciri prestasi corak penggunaan sistem. Semua algoritma ini membenarkan trafik dan permintaan untuk diedarkan, dan boleh menyediakan alat kebolehpercayaan yang berguna seperti toleransi kesalahan automatik atau pengalihan keluar automatik nod yang gagal (contohnya, apabila ia berhenti bertindak balas kepada permintaan). Walau bagaimanapun, ciri-ciri canggih ini boleh menyukarkan mendiagnosis masalah. Contohnya, dalam situasi beban tinggi, pengimbang beban akan mengalih keluar nod yang mungkin berjalan perlahan atau tamat masa (disebabkan permintaan bertubi-tubi), yang hanya akan memburukkan keadaan untuk nod lain. Pemantauan yang meluas adalah penting dalam kes ini kerana walaupun trafik dan beban sistem keseluruhan kelihatan berkurangan (kerana nod menyediakan lebih sedikit permintaan) - nod individu boleh dimuatkan ke had.

Pengimbang beban ialah cara mudah untuk meningkatkan kapasiti sistem. Seperti kaedah lain yang diterangkan dalam artikel ini, ia memainkan peranan penting dalam seni bina sistem teragih. Pengimbang beban juga menyediakan fungsi kritikal untuk memeriksa kesihatan nod. Jika, akibat semakan sedemikian, nod tidak bertindak balas atau terlebih beban, maka ia boleh dialih keluar daripada kumpulan pemprosesan permintaan, dan, terima kasih kepada lebihan sistem anda, beban akan diagihkan semula di antara nod yang berfungsi yang tinggal .

Beratur

Setakat ini kami telah melihat banyak cara untuk membaca data dengan cepat. Pada masa yang sama, satu lagi bahagian penting dalam penskalaan lapisan data ialah pengurusan rekod yang berkesan. Apabila sistem mudah dan mempunyai beban pemprosesan yang minimum dan pangkalan data yang kecil, penulisan boleh diramalkan dengan pantas. Walau bagaimanapun, dalam sistem yang lebih kompleks proses ini mungkin mengambil masa yang lama. Sebagai contoh, data mungkin perlu ditulis ke berbilang tempat pada pelayan atau indeks yang berbeza, atau sistem mungkin berada di bawah beban yang tinggi. Dalam kes di mana penulisan, atau bahkan sebarang tugasan, mengambil masa yang lama, mencapai prestasi dan ketersediaan memerlukan membina tak segerak ke dalam sistem. Cara biasa untuk melakukan ini ialah mengatur baris gilir permintaan.


Rajah 1.20: Permintaan segerak

Bayangkan sistem di mana setiap pelanggan meminta tugas penyelenggaraan jarak jauh. Setiap pelanggan ini menghantar permintaannya kepada pelayan, yang melaksanakan tugasan secepat mungkin dan mengembalikan keputusan mereka kepada pelanggan yang sepadan. Dalam sistem kecil di mana pelayan tunggal (atau perkhidmatan logik) boleh melayani pelanggan masuk secepat mereka tiba, situasi seperti ini sepatutnya berfungsi dengan baik. Walau bagaimanapun, apabila pelayan menerima lebih banyak permintaan daripada yang boleh dikendalikan, maka setiap pelanggan terpaksa menunggu permintaan pelanggan lain untuk menyelesaikan pemprosesan sebelum respons kepada permintaannya sendiri dijana. Ini ialah contoh permintaan segerak, yang digambarkan dalam .

Jenis tingkah laku segerak ini boleh merendahkan prestasi pelanggan dengan ketara; sebenarnya, kerana terbiar, pelanggan terpaksa menunggu sehingga ia menerima respons kepada permintaan itu. Menambah pelayan tambahan untuk menampung beban sistem sebenarnya tidak menyelesaikan masalah; Walaupun dengan pengimbangan beban yang berkesan, adalah amat sukar untuk menyediakan pengagihan beban yang sekata dan saksama yang diperlukan untuk memaksimumkan produktiviti pelanggan. Selain itu, jika pelayan untuk memproses permintaan ini tidak tersedia (atau ia telah ranap), maka pelanggan yang disambungkan kepadanya juga akan berhenti berfungsi. Penyelesaian yang berkesan untuk masalah ini memerlukan abstraksi antara permintaan pelanggan dan kerja sebenar yang dilakukan untuk melayaninya.


Rajah 1.21: Menggunakan Baris Gilir untuk Mengurus Permintaan

Beratur masuk. Cara baris gilir berfungsi adalah sangat mudah: tugas tiba, masuk ke baris gilir, dan kemudian "pekerja" menerima tugas seterusnya sebaik sahaja mereka berpeluang memprosesnya. (Lihat.) Tugas-tugas ini boleh menjadi entri pangkalan data yang mudah atau sesuatu yang rumit seperti menjana imej pratonton untuk dokumen tersebut. Apabila pelanggan menyerahkan permintaan tugasan ke baris gilir, ia tidak perlu lagi menunggu keputusan pelaksanaan; sebaliknya, permintaan hanya memerlukan pengesahan bahawa ia telah diterima dengan betul. Pengesahan ini kemudiannya boleh menjadi rujukan kepada hasil kerja apabila pelanggan memintanya.

Baris gilir membolehkan pelanggan bekerja dalam cara tak segerak, memberikan abstraksi strategik permintaan dan tindak balas pelanggan. Sebaliknya, dalam sistem segerak, tiada pembezaan antara permintaan dan respons, dan oleh itu ia tidak boleh diuruskan secara berasingan. Dalam sistem tak segerak, pelanggan menyerahkan tugas, perkhidmatan bertindak balas dengan mesej yang mengesahkan bahawa tugas itu telah diterima, dan pelanggan kemudiannya boleh menyemak status tugasan secara berkala, hanya meminta hasilnya sebaik sahaja tugas itu selesai. Semasa pelanggan membuat permintaan tak segerak, ia bebas untuk melakukan kerja lain, malah membuat permintaan tak segerak daripada perkhidmatan lain. Yang terakhir ialah contoh cara baris gilir dan mesej berfungsi dalam sistem teragih.

Baris gilir juga menyediakan beberapa perlindungan terhadap gangguan dan kegagalan perkhidmatan. Sebagai contoh, agak mudah untuk mencipta baris gilir yang sangat berdaya tahan yang boleh mencuba semula permintaan perkhidmatan yang gagal disebabkan oleh kegagalan pelayan seketika. Adalah lebih baik untuk menggunakan baris gilir untuk menguatkuasakan jaminan kualiti perkhidmatan daripada mendedahkan pelanggan kepada gangguan perkhidmatan sementara, yang memerlukan pengendalian ralat yang rumit dan selalunya tidak konsisten di pihak pelanggan.

Baris gilir ialah prinsip asas dalam mengurus penghantaran teragih antara bahagian yang berlainan bagi mana-mana sistem teragih berskala besar, dan terdapat banyak cara untuk melaksanakannya. Terdapat beberapa pelaksanaan baris gilir sumber terbuka seperti RabbitMQ.
ActiveMQ
BeanstalkD, tetapi ada juga yang menggunakan perkhidmatan seperti

  • penskalaan
  • pengkomputeran teragih
  • pembangunan web
  • Kate Matsudaira
  • Tambah tag

    REKA BENTUK BERASASKAN TEKNOLOGI PERKHIDMATAN WEB

    Keistimewaan: 05.13.12 – Reka bentuk sistem automasi

    St. Petersburg 2013 2

    Kerja itu dijalankan di institusi pendidikan tinggi belanjawan negeri persekutuan pendidikan vokasional"Universiti Elektroteknikal Negeri St. Petersburg "LETI" dinamakan sempena. V. I. Ulyanova (Lenin), Jabatan Sistem Reka Bentuk Berbantukan Komputer

    Pengarah saintifik– Doktor Sains Teknikal, Profesor Dmitrevich Gennady Daniilovich

    Lawan rasmi:

    Doktor Sains Teknikal, Profesor, Universiti Elektroteknikal Negeri St. Petersburg "LETI" dinamakan selepas. DALAM DAN.

    Ulyanova (Lenin), Jabatan Pemprosesan Maklumat Automatik dan Sistem Kawalan Kutuzov Oleg Ivanovich Calon Sains Teknikal, Syarikat Saham Bersama Terbuka "Keprihatinan"

    "PERSATUAN PENYELIDIKAN DAN PENGELUARAN "AURORA",

    ketua makmal Pakhomenkov Yuri Mikhailovich

    Organisasi terkemuka: Institusi Pendidikan Belanjawan Negara Persekutuan Pendidikan Profesional Tinggi "Universiti Penyelidikan Kebangsaan Teknologi Maklumat, Mekanik dan Optik St. Petersburg"

    Pembelaan disertasi akan berlangsung pada 23 Mei 2013 jam 16.30 pada mesyuarat majlis disertasi D212.238.02 Universiti Elektroteknik Negeri St. Petersburg "LETI" yang dinamakan sempena. DALAM DAN.

    Ulyanova (Lenin) di alamat: 197376, St. Petersburg, st. Professora Popova, 5.

    Disertasi boleh didapati di perpustakaan Universiti Teknikal Elektronik Negeri St. Petersburg. Abstrak telah dihantar "_" 2013.

    Setiausaha Saintifik Majlis Disertasi D212.238.02 N. M. Safyannikov

    HURAIAN UMUM KERJA

    Perkaitan penyelidikan Pengenalan meluas sistem reka bentuk bantuan komputer ke dalam amalan masalah kejuruteraan adalah terhad dengan ketara kos yang tinggi perisian berlesen. Seiring dengan ini, penciptaan sistem CAD anda sendiri dikaitkan dengan perbelanjaan sumber yang besar dan tidak dapat dilaksanakan dalam masa yang singkat, kerana pembangunan sistem CAD moden memerlukan beratus-ratus tahun manusia. Masalahnya juga rumit oleh fakta bahawa dalam situasi operasi sebenar, sistem CAD bersepadu pelbagai fungsi digunakan, sebagai peraturan, sangat tidak berkesan, sejak ketika menyelesaikan tugasan tertentu Daripada komposisi utama sistem ini, tidak lebih daripada 10-20% perisian yang paling khusus untuk setiap jabatan sering digunakan.

    Penyelesaian kepada masalah mendesak ini mungkin desentralisasi seni bina CAD melalui peralihan kepada sistem reka bentuk teragih yang dibina berdasarkan teknologi Internet yang melaksanakan tugasan komunikasi dan pertukaran maklumat antara aplikasi.

    Aplikasi yang diuruskan secara bebas ini adalah autonomi dan boleh berkomunikasi antara satu sama lain untuk menyelesaikan tugas yang sama.

    Protokol teknologi Internet menyediakan asas yang boleh dipercayai untuk memautkan subsistem dan tidak memerlukan penggunaan sumber yang diselaraskan yang terletak dalam nod rangkaian yang berbeza, yang secara signifikan memudahkan proses membina dan mengendalikan sistem CAD teragih. Keperluan utama untuk kemungkinan melaksanakan sistem teragih sedemikian ialah ketekalan antara muka yang melaluinya subsistem individu disambungkan. Apabila keperluan ini dipenuhi komponen individu CAD yang diedarkan boleh dibuat oleh pelbagai pembangun dan diselenggara di pelbagai tapak dari mana ia akan dihantar (mungkin secara komersial) kepada pengguna.

    Kaedah yang paling berkesan untuk menggabungkan subsistem ke dalam aplikasi yang diedarkan harus dipertimbangkan sebagai organisasi panggilan prosedur jauh berdasarkan seni bina berorientasikan perkhidmatan menggunakan perkhidmatan web. Penyepaduan berdasarkan perkhidmatan web dalam pembangunan sistem CAD terdesentralisasi membolehkan anda beralih kepada penerangan antara muka dan interaksi berdasarkan XML, memberikan keupayaan untuk mengubah suai dan membangunkan perisian yang dibina sambil mengekalkan antara muka yang dipilih. Ini membolehkan, disebabkan gandingan longgar subsistem individu, untuk memastikan interaksi antara perkhidmatan pada platform sewenang-wenangnya dan menyesuaikan aplikasi sedia ada kepada keadaan reka bentuk yang berubah-ubah.

    Beban utama untuk melaksanakan operasi pengiraan dengan seni bina sedemikian terletak pada perkhidmatan web yang menyelesaikan semua masalah pemodelan sistem yang direka bentuk; aplikasi klien hanya diberikan fungsi paling mudah untuk menyediakan data dan memaparkan hasil pemodelan. Apabila membangunkan CAD menggunakan perkhidmatan web, jenis berikut boleh digunakan aplikasi pelanggan:

    aplikasi jenis konsol, aplikasi jenis tetingkap dan aplikasi web.

    Ciri aplikasi konsol ialah kekurangan antara muka grafik, tetapi penggunaannya boleh berguna apabila melaksanakan sistem CAD mudah untuk komputer poket dengan kawasan skrin kecil.

    Aplikasi bertingkap memungkinkan untuk dilaksanakan dengan terbaik alatan grafik dan paling sesuai untuk membangunkan sistem teragih berdasarkan perkhidmatan web. Untuk mana-mana perkhidmatan web, adalah mungkin untuk membina beberapa aplikasi klien dengan cara yang berbeza untuk melaksanakan interaksi dialog.

    Aplikasi web menyediakan keupayaan untuk meletakkan semua perisian CAD anda sepenuhnya dalam talian. Kelebihan mengaplikasikan struktur ini ialah akses terbuka untuk menggunakan CAD yang diedarkan melalui mana-mana jenis pelayar, kelemahan jenis aplikasi ini ialah peningkatan masa yang diperlukan untuk menerangkan komponen sistem yang direka bentuk kerana menunggu respons pada langkah kemasukan data individu.

    Untuk sebarang jenis aplikasi klien, perkhidmatan web dipanggil dengan cara yang sama, dan untuk setiap perkhidmatan web adalah mungkin untuk menggunakan sebarang cara untuk melaksanakan aplikasi klien yang ditulis dalam bahasa yang berbeza. Jika perlu, aplikasi klien sedemikian boleh diubah suai dengan mudah untuk disesuaikan dengan keadaan reka bentuk yang berubah-ubah, dan perkhidmatan web juga boleh dikembangkan untuk memasukkan kaedah tambahan.

    Matlamat kerja dan objektif utama penyelidikan Disertasi ini ditumpukan kepada penyelidikan dan pembangunan kaedah untuk membina sistem CAD teragih bebas platform menggunakan perkhidmatan web. Untuk pelaksanaan tertentu, tugas membangunkan sistem automasi teragih untuk reka bentuk litar telah dipilih.

    Untuk mencapai matlamat ini, tugas-tugas berikut harus diselesaikan:

    1. Bangunkan metodologi umum untuk membina, ujian luar talian, dan menggunakan ke pelayan perkhidmatan web Java yang dipilih.

    Perisian perkhidmatan web Java untuk sistem automasi reka bentuk litar teragih.

    3. Menyelidik dan membangunkan metodologi untuk membina perkhidmatan web Java menggunakan teknologi pemampatan data.

    4. Menjalankan penyelidikan dan pembangunan metodologi umum untuk membina templat untuk aplikasi klien jenis konsol dan tetingkap, serta aplikasi web pelanggan.

    5. Membangunkan metodologi untuk melaksanakan fungsi perkhidmatan web dan aplikasi pelanggan dalam persekitaran heterogen.

    Kaedah penyelidikan Semasa melaksanakan tugasan yang diberikan dalam disertasi, asas telah digunakan teori umum CAD, teori sistem pemodelan, teori asas matriks dan graf.

    Kebolehpercayaan keputusan saintifik disahkan oleh peruntukan asas teori umum CAD, teori pemodelan, ketepatan alat matematik yang digunakan, dan keputusan yang diperoleh daripada menguji perisian yang dicipta untuk perkhidmatan web dan aplikasi klien.

    Keputusan saintifik baharu CAD yang diedarkan menggunakan perkhidmatan web.

    2. Metodologi umum telah dibangunkan untuk pelaksanaan, ujian luar talian dan penggunaan perkhidmatan web Java pada pelayan CAD teragih.

    3. Kaedah penyelidikan dan pembangunan untuk membina perisian perkhidmatan web Java untuk menyelesaikan masalah reka bentuk litar elektronik biasa.

    5. Metodologi umum untuk membina aplikasi klien konsol dan tetingkap, serta aplikasi web pelanggan, telah dibangunkan.

    6. Satu metodologi telah dibangunkan untuk melaksanakan perisian CAD teragih untuk mengatur interaksi dalam persekitaran heterogen perkhidmatan web dan aplikasi pelanggan.

    Peruntukan asas 1. Seni bina CAD berorientasikan perkhidmatan teragih berdasarkan perkhidmatan web.

    2. Metodologi am untuk reka bentuk bottom-up perkhidmatan web Java 3. Metodologi untuk melaksanakan perisian perkhidmatan web Java berdasarkan pemampatan data.

    Nilai praktikal 1. Struktur CAD teragih yang dicadangkan menyediakan keupayaan untuk mengatur interaksi antara pelbagai perkhidmatan web pada platform yang dipilih dan menyesuaikan aplikasi dengan keadaan reka bentuk yang berubah-ubah.

    2. Perpustakaan fungsi tambahan yang dibina berdasarkan pemampatan data meningkatkan kecekapan mencipta perisian perkhidmatan web Java untuk sistem automasi reka bentuk litar 3. Metodologi yang dibangunkan untuk melaksanakan interaksi pelanggan-pelayan memastikan operasi sistem CAD teragih dalam persekitaran heterogen.

    4. Perisian sistem automasi teragih yang dibangunkan untuk reka bentuk litar mengandungi kernel invarian untuk mengatur kedua-dua peringkat simbolik dan berangka program Java, yang boleh digunakan sebagai asas untuk membina sistem reka bentuk untuk pelbagai objek.

    Pelaksanaan dan pelaksanaan keputusan Sistem CAD teragih yang dibangunkan dalam tesis menggunakan perkhidmatan web telah dilaksanakan di Java menggunakan platform WTP (Web Tools Platform). Hasil praktikal ialah sistem CAD reka bentuk litar teragih bebas platform, yang menjalankan pemodelan multivariat litar tak linear dalam mod pegun, dalam mod dinamik, untuk pengiraan ciri frekuensi, dan juga menyediakan pengiraan sensitiviti fungsi pemindahan dan sensitiviti pembolehubah keadaan mantap kepada variasi parameter.

    Hasil kerja disertasi digunakan dalam penyelidikan belanjawan negeri mengenai topik "Pembangunan model dan kaedah analisis dan sintesis sistem pintar sokongan keputusan untuk menguruskan objek teragih kompleks" (kod pelan subjek CAD-47 St. Petersburg Electrotechnical University 2011) dan mengenai topik "Asas matematik dan logik membina persekitaran instrumen maya" (kod CAD-49 pelan subjek SPbGETU 2012) Keputusan disertasi diperkenalkan ke dalam amalan kejuruteraan syarikat pengeluaran saintifik "Modem" dan digunakan dalam proses pendidikan jabatan CAD Universiti Teknikal Negeri St. Petersburg untuk mengkaji metodologi untuk membina perisian untuk sistem automasi reka bentuk litar dalam penyediaan sarjana muda dan sarjana dalam bidang "Informatik dan Kejuruteraan Komputer".

    Kelulusan kerja Peruntukan utama disertasi telah dilaporkan dan dibincangkan pada persidangan berikut:

    1. Persidangan ke-9 saintis muda "Navigasi dan kawalan lalu lintas" - St. Petersburg;

    2. Persidangan antarabangsa ke-5 "Pembuatan instrumen dalam ekologi dan keselamatan manusia" - St. Petersburg, SUAI;

    3. XIII, XIV, XVII persidangan antarabangsa"Pendidikan moden: kandungan, teknologi, kualiti." – St. Petersburg, 4. 60, 61, persidangan saintifik dan teknikal ke-63 tenaga pengajar SETU.

    Penerbitan Kandungan teori dan praktikal utama disertasi telah diterbitkan dalam 16 karya saintifik, termasuk 4 artikel dalam penerbitan semakan rakan terkemuka yang disyorkan dalam senarai semasa Suruhanjaya Pengesahan Tinggi, 1 sijil pendaftaran rasmi program komputer yang berdaftar dengan Perkhidmatan Persekutuan untuk Harta Intelek, Paten dan Tanda Dagangan.

    Struktur dan skop disertasi Disertasi ini mengandungi pengenalan, empat bab kandungan utama, kesimpulan dan bibliografi yang mengandungi 69 sumber. Kerja ini dibentangkan pada 154 muka surat teks, dan mengandungi 21 angka dan satu jadual.

    Dalam pengenalan justifikasi diberikan untuk kerelevanan topik disertasi, objektif penyelidikan digubal, dan senarai tugasan yang perlu diselesaikan dalam kerja diberikan.

    Dalam bab pertama Isu membina seni bina aplikasi teragih dipertimbangkan, yang menentukan struktur umum, fungsi yang dilakukan dan hubungan komponen individu sistem.

    Ia ditunjukkan bahawa seni bina aplikasi yang diedarkan meliputi kedua-dua aspek struktur dan tingkah lakunya, serta peraturan penyepaduan dan penggunaan, kefungsian, fleksibiliti, kebolehpercayaan, prestasi, kebolehgunaan semula, had teknologi dan isu antara muka pengguna. Objektif utama menyepadukan aplikasi autonomi (subsistem) ke dalam aplikasi teragih adalah untuk menyediakan sambungan berfungsi yang menyediakan interaksi yang diperlukan dengan pergantungan minimum antara subsistem.

    Kerja disertasi menunjukkan bahawa mekanisme sedemikian disediakan dengan paling berkesan apabila menggunakan seni bina berdasarkan interaksi antara subsistem menggunakan panggilan prosedur jauh, digunakan untuk pertukaran data dan untuk melakukan tindakan tertentu. Sekiranya aplikasi perlu mendapatkan semula atau menukar sebarang maklumat yang disimpan oleh aplikasi lain, ia mengaksesnya melalui panggilan fungsi.

    Untuk membina sistem CAD teragih, tesis ini mencadangkan untuk menggunakan seni bina berorientasikan perkhidmatan (SOA) berdasarkan struktur perisian modular dan antara muka piawai. SOA menggunakan penyatuan proses operasi asas, prinsip penggunaan berulang elemen fungsi, dan organisasi berdasarkan platform penyepaduan. Walaupun seni bina SOA tidak dikaitkan dengan mana-mana teknologi panggilan prosedur jauh khusus, subsistem perisian yang direka bentuk mengikut SOA biasanya dilaksanakan sebagai koleksi perkhidmatan web yang dipautkan menggunakan protokol asas (SOAP, WSDL).

    Sistem berdasarkan seni bina berorientasikan perkhidmatan tergolong dalam kelas sistem berbilang ejen (MAS), yang dibentuk oleh beberapa ejen pintar berinteraksi yang memastikan autonomi, perwakilan terhad dan desentralisasi subsistem individu bagi sistem pengkomputeran maklumat teragih.

    Perkhidmatan web adalah berdasarkan piawaian XML dan membolehkan pengguna berinteraksi dengan alatan sistem luaran melalui Internet, sebagai komponen sistem perisian yang digandingkan secara longgar yang tersedia untuk digunakan melalui protokol Internet. Kerja disertasi menunjukkan bahawa dalam pelaksanaan praktikal sistem CAD teragih menggunakan perkhidmatan web, perhatian penting harus diberikan kepada pembahagian tanggungjawab fungsi yang betul yang diberikan kepada aplikasi pelanggan utama dan perkhidmatan web yang berinteraksi dengan aplikasi ini.

    Metodologi khusus untuk melaksanakan perkhidmatan web bergantung dengan ketara pada bahasa pengaturcaraan yang dipilih. Kerja menunjukkan bahawa keutamaan apabila memilih bahasa pengaturcaraan untuk membina perkhidmatan web harus diberikan kepada bahasa Java, yang paling sepenuhnya memastikan kebebasan platform penyelesaian yang dilaksanakan. Faktor penting yang memihak kepada pilihan ini juga ialah ketersediaan sokongan alat yang berkuasa untuk pembangunan aplikasi berasaskan web di Jawa, yang disediakan oleh persekitaran WTP (Web Tools Platform).

    Kerja disertasi menjalankan analisis perbandingan dua kaedah utama untuk membina perkhidmatan web Java - bottom-up (Bottom-Up), apabila kelas Java perkhidmatan web pertama kali dibuat, dan kemudian dokumen WSDL dihasilkan berdasarkannya, dan atas-bawah (Atas-Bawah), apabila dokumen WSDL yang diperlukan mula-mula dibuat, dan kemudian kod pelaksanaan perkhidmatan web dijana berdasarkannya. Berdasarkan penilaian perbandingan, ditunjukkan bahawa reka bentuk perkhidmatan web harus dilakukan menggunakan kaedah bawah ke atas, kerana dalam kes ini, dokumen WSDL dibentuk berdasarkan kelas Java yang dibuat terlebih dahulu, yang menerangkan semua parameter yang dihantar kepada kaedah perkhidmatan web dan nilai yang dikembalikan oleh kaedah ini. Dalam kes ini, semua maklumat yang tersedia dalam kelas Java ditukar secara automatik ke dalam dokumen WSDL yang sepadan, kandungan yang betul-betul sepadan dengan struktur asas spesifikasi WSDL dan ciri utama kaedah perkhidmatan web yang dipanggil, yang memastikan lengkap kebolehpercayaan maklumat yang terkandung dalam dokumen WSDL.

    Untuk memungkinkan untuk melaksanakan reka bentuk perkhidmatan web secara praktikal menggunakan kaedah bawah ke atas, disertasi mencadangkan metodologi untuk membina projek web dinamik dan kelas Java untuk melaksanakan perkhidmatan web yang terkandung di dalamnya dengan penerangan kaedah yang dipanggil, antaranya, sebagai tambahan kepada kaedah kerja utama, mestilah mengandungi kaedah tambahan tanpa hujah, yang mengembalikan pembolehubah rentetan yang mengandungi semua maklumat tentang kaedah utama yang memastikan fungsi perkhidmatan web dan penerangan tentang format parameter yang diluluskan, serta data yang dikembalikan, yang memastikan pendokumentasian kendiri perkhidmatan web dan keupayaan untuk mencipta dan menambah baik aplikasi klien secara berterusan tanpa mengira pembangun perkhidmatan web.

    Disertasi menyediakan teknik untuk mengatur panggilan ke kaedah maklumat perkhidmatan web secara langsung daripada persekitaran pembangunan aplikasi Java bersepadu, di mana, dengan menggunakan URL perkhidmatan web, anda boleh mengakses respons Soap kaedah maklumat dan kandungan pengembaliannya. nilai.

    Dalam bab kedua Kaedah untuk membina perkhidmatan web CAD teragih dipertimbangkan, dengan bantuan litar tak linear dikira dalam mod pegun, fungsi litar litar linear dan linear dikira untuk domain frekuensi, dan litar tak linear dikira dalam mod dinamik. Di samping itu, subsistem yang termasuk dalam sistem teragih termasuk perkhidmatan web untuk mengira sensitiviti fungsi litar dalam domain frekuensi, dan perkhidmatan web untuk mengira kepekaan pembolehubah keadaan mantap litar tak linear kepada variasi parameter. Sebagai komponen litar yang direka bentuk berdasarkan perkhidmatan web yang dibangunkan, anda boleh menggunakan peranti dua terminal jenis R, C, L, sumber terkawal bergantung frekuensi linear, sumber terkawal tak linear, transformer, transistor bipolar dan unipolar, penguat operasi, serta sumber arus dan voltan induk.

    Asas bagi kaedah tersebut ialah struktur umum penerangan matematik sistem reka bentuk litar. Disertasi menyediakan penilaian perbandingan kaedah yang mungkin untuk memilih asas koordinat untuk membentuk perihalan litar linear, dengan keutamaan diberikan kepada asas lanjutan potensi nod. Adalah diperhatikan bahawa, bersama-sama dengan kelebihan yang tidak diragui, had ketara asas ini ialah kemustahilan untuk menerangkan secara matematik komponen litar dengan persamaan dalam bentuk tersirat, yang sering merumitkan, dan kadangkala membuat mustahil, aplikasi praktikalnya. Untuk merealisasikan kemungkinan menerangkan komponen litar dengan persamaan dalam bentuk tersirat, kerja itu menyediakan versi diubah suai bagi asas lanjutan voltan nod, yang diambil sebagai asas untuk membina perisian perkhidmatan web.

    Apabila mempertimbangkan isu yang berkaitan dengan pembinaan perkhidmatan web untuk masalah pengiraan sifat frekuensi litar elektronik, diperhatikan bahawa masalah jenis ini boleh dibahagikan kepada dua kumpulan. Kumpulan pertama termasuk masalah mengira litar linear, parameter komponen yang mempunyai nilai tetap yang tidak bergantung pada proses menyelesaikan masalah pada nilai koordinat titik operasi komponen. Kumpulan kedua dikaitkan dengan pengiraan ciri frekuensi litar linear, parameter yang bergantung pada koordinat titik operasi komponen dan koordinat ini, serta nilai parameter linear yang sepadan, mesti pra-kiraan.

    Untuk menyelesaikan kumpulan pertama masalah mengira sifat frekuensi litar elektronik semasa melaksanakan kerja disertasi, perkhidmatan web ModService_Java telah dibina. Untuk dapat bekerja dengan nombor kompleks semasa pembinaannya, kelas Kompleks tersuai telah dicipta, memandangkan pada masa kerja ini kelas sedemikian bukan sebahagian daripada alat API Java standard. Kelas Kompleks mengandungi pembina dan fungsi pembantu untuk memproses data kompleks dan segala-galanya fungsi yang diperlukan untuk melakukan aritmetik dan operasi logik dengan nombor kompleks, kerana bahasa Java tidak mempunyai pengendali override untuk operasi ini. Perkhidmatan web menerima penerangan tentang komponen litar dan arahan pengiraan sebagai hujah dan mengembalikan tatasusunan yang menerangkan hasil pengiraan ciri frekuensi.

    Untuk mengira mod pegun, jangan sistem linear Disertasi mencadangkan metodologi umum untuk membina perisian untuk perkhidmatan web yang sepadan, dilaksanakan semasa mencipta perkhidmatan web StaticService_Java. Perkhidmatan web juga menerima sebagai hujah perihalan komponen litar dan arahan pengiraan dan mengembalikan tatasusunan yang menerangkan hasil pengiraan pembolehubah asas dan koordinat keadaan mantap untuk semua komponen tak linear (diod, transistor bipolar, transistor unipolar, penguat kendalian, sumber terkawal tak linear). Elemen sifar tatasusunan yang dikembalikan dikhaskan untuk menghantar maklumat kepada pihak klien sekiranya tiada penumpuan proses pengkomputeran, yang memerlukan menukar arahan pengiraan dan memanggil kaedah perkhidmatan web sekali lagi.

    Disertasi ini mengkaji pendekatan yang mungkin untuk membangunkan metodologi untuk membina perkhidmatan web untuk mengira ciri frekuensi litar linear, yang parameternya bergantung pada koordinat titik operasi komponen. Hasil daripada penilaian perbandingan, laluan telah dipilih untuk membina perkhidmatan web berdasarkan sistem bersepadu, yang merangkumi perisian untuk linearisasi komponen bukan linear pada titik operasi yang dikira dan untuk pengiraan seterusnya sifat frekuensi litar linear. . Kerja ini menyediakan metodologi umum untuk menyelesaikan masalah sedemikian, yang pelaksanaannya telah dijalankan dalam perkhidmatan web StFrqService_Java. Perkhidmatan web menerima sebagai hujah perihalan komponen litar yang bergantung kepada frekuensi dan bukan linear, serta arahan pengiraan, dan sebagai hasil kerjanya, tatasusunan dikembalikan yang menerangkan hasil pengiraan ciri frekuensi. Dengan cara yang sama seperti dalam pengiraan keadaan mantap, elemen sifar tatasusunan yang dikembalikan digunakan untuk memindahkan maklumat ke bahagian klien sekiranya proses tidak menumpu.

    Apabila membangunkan metodologi untuk membina perkhidmatan web untuk mengira mod dinamik sistem tak linear, penerangan matematik litar dalam asas lanjutan potensi nod yang diubah suai digunakan, yang memungkinkan untuk mendapatkan sistem persamaan jenis algebra-pembezaan. dalam bentuk yang paling umum. Penghapusan derivatif daripada persamaan komponen dilakukan berdasarkan formula pembetulan yang mengikuti daripada kaedah tersirat berbilang langkah bagi susunan yang lebih tinggi, manakala kaedah Gear tertib kedua diguna pakai sebagai kaedah utama dengan kemungkinan meningkatkan susunannya. Komponen daripada persamaan yang derivatifnya dikecualikan ialah rangkaian dua terminal jenis C dan L, diod, transformer, transistor bipolar dan unipolar, penguat operasi, serta sumber terkawal yang bergantung kepada frekuensi. Untuk mengira nilai sumber autonomi yang mengekalkan nilai pembolehubah yang sepadan dalam langkah sebelumnya, fungsi pensampelan tambahan dis_cmp dibina untuk semua komponen cmp tersenarai dengan sifat bergantung kepada frekuensi.

    Metodologi yang dibangunkan telah dilaksanakan dalam pembinaan perkhidmatan web Dyn2Service_Java, yang mengembalikan kepada sisi klien tatasusunan yang menerangkan hasil pengiraan ciri dinamik.

    Dalam bab ketiga Isu membina perkhidmatan web menggunakan kaedah pemampatan data dipertimbangkan. Kaitan isu-isu ini ditentukan oleh fakta bahawa struktur sistem sebenar dicirikan oleh hubungan yang lemah antara komponen, yang menghasilkan penerangan matematik mereka dalam bentuk matriks jenis jarang, di mana hanya sebahagian kecil daripada unsur-unsur mempunyai. maklumat yang bermakna.

    Keadaan ini menimbulkan tugas untuk menukar pendekatan yang diterima umum kepada pembentukan dan penyelesaian persamaan untuk menjimatkan memori dan meningkatkan prestasi, yang penting untuk berfungsi sistem berasaskan web.

    Kerja disertasi menganalisis keberkesanan kaedah yang mungkin untuk menukar data kepada tatasusunan padat, berdasarkan kesimpulan dibuat tentang kesesuaian memilih kaedah berdasarkan penggunaan pemampatan Sherman dan memerlukan prosedur dua peringkat untuk melaksanakan simbolik dan pemprosesan data berangka. Kelebihan ketara prosedur dua peringkat yang diterima pakai ialah pembahagiannya kepada dua bahagian bebas daripada peringkat simbolik dan berangka. Memandangkan hampir semua masalah reka bentuk litar sebenar dikaitkan dengan pengiraan multivariate bagi litar struktur yang tidak berubah, peringkat simbolik dilakukan untuk setiap struktur hanya sekali, manakala peringkat berangka dilaksanakan berpuluh, ratusan, dan kadangkala beribu kali.

    Walau bagaimanapun, prosedur dua peringkat dicirikan oleh logik yang agak kompleks untuk membina kod program, dan apabila beralih ke penerangan berdasarkan pemampatan data, perubahan ketara kepada penerangan lengkap yang dibuat sebelum ini diperlukan.

    Disertasi meneliti gambarajah blok pelaksanaan pemprosesan data dua peringkat apabila membina aplikasi Java, mengikut mana, pada peringkat analisis simbolik, matriks indeks jenis integer dibentuk, yang mana peringkat simbolik pemfaktoran LU adalah. dijalankan, di mana baris (lajur) disusun untuk meminimumkan nombor sekali lagi muncul elemen dengan nilai bukan sifar. Pada langkah terakhir peringkat simbolik, matriks koordinat dibina, yang mengandungi maklumat tentang struktur matriks indeks, akibatnya matriks ini boleh dipadamkan.

    Pada peringkat berangka, mengikut format penerangan yang diketahui, matriks padat dibentuk dan pemfaktoran LU berangka maya mereka dilakukan berdasarkan algoritma yang dibina dalam kerja. Selepas melengkapkan peringkat berangka pemfaktoran LU, semua pembolehubah sistem dikira dan dikod semula mengikut pilih atur baris (lajur) yang dijalankan pada peringkat pemprosesan simbolik. Masalah ini, mengikut teknik pemfaktoran LU umum, biasanya diselesaikan menggunakan pergerakan ke belakang dan ke hadapan melalui baris matriks asal, tetapi oleh kerana tiada matriks lengkap apabila menggunakan pemampatan data, kedua-dua pergerakan ke hadapan dan ke belakang dilakukan menggunakan algoritma khas. yang melaksanakan tugas ini menggunakan pemampatan data.

    Tesis menunjukkan bahawa dua pendekatan berbeza untuk membangunkan perisian perkhidmatan web berdasarkan pemampatan data adalah mungkin. Yang pertama dikaitkan dengan pemprosesan perisian sedia ada, berdasarkan penerangan matematik yang lengkap dalam bentuk matriks asli dengan struktur yang jarang, untuk membina kaedah yang diubah suai menggunakan tatasusunan padat. Mempunyai prototaip sangat memudahkan proses mencipta kaedah berdasarkan pemampatan data, tetapi untuk menggunakan bahan yang tersedia dengan paling berkesan, adalah perlu untuk mempunyai metodologi untuk membangunkan versi diubah suai perkhidmatan web. Teknik ini dibina dalam disertasi dan berdasarkannya semua perkhidmatan web yang dibincangkan di atas telah diubah suai. Hasilnya ialah rangka kerja perkhidmatan web yang mengandungi dua kaedah kerja utama, satu berdasarkan penerangan penuh litar yang dimodelkan, dan yang kedua menggunakan teknologi pemprosesan data padat.

    Pendekatan kedua digunakan dalam kes di mana tiada prototaip untuk membangunkan kaedah berdasarkan pemampatan data. Dalam kes ini, kedua-dua peringkat simbolik dan berangka dilaksanakan tanpa ketiadaan penerangan lengkap litar simulasi dalam bentuk matriks jarang, yang merumitkan proses pengaturcaraan dengan ketara. Dalam disertasi, pendekatan kedua digunakan untuk membina perkhidmatan web yang mengira sensitiviti penghantaran litar dan pembolehubah mod pegun litar kepada variasi dalam parameter komponennya.

    Untuk mengira sensitiviti ciri frekuensi fungsi litar, perkhidmatan web VaryService telah dibina, yang mengandungi kaedah berdasarkan pembezaan persamaan dan kaedah berdasarkan litar yang disambungkan.

    Berdasarkan pembezaan persamaan, kaedah perkhidmatan web VaryService membolehkan anda mengira nilai sensitiviti vektor mutlak dan relatif fungsi litar untuk domain frekuensi kepada parameter pembolehubah yang dipilih untuk keseluruhan set pembolehubah asas. Parameter boleh ubah boleh menjadi nilai rintangan, kapasitansi, atau induktansi litar dua terminal sewenang-wenangnya jenis R, C atau L, dan parameter penghantaran sumber bergantung frekuensi terkawal seperti ITUN, INUN, ITUT atau INUT.

    Kaedah perkhidmatan web VaryService, menggunakan litar yang dilampirkan, membolehkan anda mengira nilai kedua-dua sensitiviti skalar mutlak dan relatif bagi fungsi litar untuk domain frekuensi berkenaan dengan semua parameter pembolehubah yang mungkin untuk nilai yang dipilih bagi pembolehubah yang dianalisis. Gambar rajah blok perisian yang dicadangkan dalam kerja ini membolehkan anda menggunakan hasil pembentukan tatasusunan padat litar utama untuk mengira litar yang dipasang. Parameter pembolehubah dalam kaedah berdasarkan litar bersebelahan boleh menjadi parameter yang sama seperti kaedah berdasarkan pembezaan persamaan.

    Untuk mengira sensitiviti pembolehubah yang mentakrifkan mod pegun litar tak linear kepada variasi dalam parameternya, perkhidmatan web StVaryService telah dibangunkan, yang juga mengandungi dua kaedah, satu daripadanya adalah berdasarkan pembezaan persamaan, dan yang kedua pada lampiran. litar. Parameter pembolehubah dalam kedua-dua kaedah boleh menjadi nilai rintangan perintang dan parameter penghantaran sumber terkawal seperti ITUN, INUN, ITUT atau INUT.

    Algoritma untuk mengira sensitiviti mutlak pembolehubah asas mod pegun dengan kaedah pembezaan persamaan menyediakan pembezaan persamaan tak linear litar oleh pembolehubah asas dan parameter pembolehubah, yang memungkinkan untuk mendapatkan persamaan kepekaan , penyelesaian yang menentukan sensitiviti vektor yang dikehendaki bagi pembolehubah mod pegun.

    Pelaksanaan praktikal kaedah ini adalah berdasarkan membezakan persamaan komponen yang diubah menggunakan hasil pengiraan pembolehubah asas mod pegun litar tak linear.

    Algoritma kaedah yang mengira sensitiviti skalar pembolehubah mod pegun menggunakan litar bersambung menyediakan pengiraan pembolehubah asas mod pegun litar utama dan pengiraan pembolehubah asas litar bersambung linear, yang dilakukan berdasarkan tatasusunan padat yang dijana sebelum ini untuk litar utama. Hasil kaedah kedua ialah tatasusunan nilai sensitiviti mutlak dan relatif pembolehubah litar yang dipilih untuk semua parameter komponen pembolehubah.

    Bab keempat membincangkan kaedah untuk membina aplikasi pelanggan tersuai yang menyediakan interaksi dengan perkhidmatan web, yang, selepas ia dibina dalam alat pembangunan aplikasi Java, mesti digunakan pada pelayan CAD teragih. Untuk menggunakan perkhidmatan web, anda perlu mengetahui ciri utamanya, termasuk nama perkhidmatan, nama kelas, nama kaedah dan jenis dokumen WSDL.

    Maklumat berkaitan tentang perkhidmatan web yang dibangunkan dan diterangkan di atas untuk sistem reka bentuk litar teragih diberikan dalam tesis, dan dalam kaedah maklumat bernama getInf, yang disertakan dalam semua perkhidmatan web yang dibangunkan. Makalah ini mencadangkan teknik mudah untuk menggunakan perkhidmatan web secara langsung pada pelayan, dan membincangkan cara yang mungkin mengimport fail WSDL ke bahagian klien. Berdasarkan analisis perbandingan, kerja menunjukkan bahawa ketepatan operasi penghantaran fail WSDL daripada perkhidmatan web jauh kepada aplikasi klien boleh dipastikan dengan paling berkesan dengan menggunakan alat Web Services Explorer, dan urutan yang paling optimum untuk mengimport a Fail WSDL ke dalam rangka kerja awal aplikasi klien diwujudkan.

    Sebaik sahaja fail WSDL telah dihantar ke projek aplikasi klien, transformasi lanjut rangka projek awal kepada aplikasi klien yang lengkap dicadangkan untuk dijalankan dalam dua peringkat. Peringkat pertama transformasi sedemikian ialah penciptaan objek proksi dalam rangka kerja projek awal, dan peringkat kedua ialah pembentukan kelas yang mengandungi kaedah yang menyokong fungsi objek proksi dan interaksi perkhidmatan jauh dengan aplikasi pelanggan. Pelaksanaan peringkat pertama datang untuk menambah projek dengan pengendali mencipta objek proksi; peringkat kedua dijalankan menggunakan alat Perkhidmatan Web platform WTP, cara penggunaan yang paling berkesan yang diberikan dalam disertasi.

    Penyempurnaan rangka reka bentuk awal ke dalam aplikasi pelanggan yang lengkap boleh dilakukan dengan cara yang berbeza untuk jenis aplikasi yang berbeza. Cara paling mudah untuk menjalankan aplikasi klien adalah dengan mereka bentuknya berdasarkan aplikasi konsol yang tidak mempunyai antara muka grafik. Kerja mencadangkan generalisasi skema struktur pelaksanaan aplikasi konsol CAD teragih untuk pengiraan litar elektronik, yang boleh digunakan untuk mana-mana perkhidmatan web walaupun terdapat pelbagai kemungkinan penyelesaian khusus.

    Semasa tesis, aplikasi konsol pelanggan telah dilaksanakan untuk semua perkhidmatan web CAD yang diedarkan di atas. Fail sumber mereka boleh dihantar cara standard melalui Internet kepada pelanggan dan digunakan kedua-duanya untuk membina versi termudah bagi aplikasi konsol untuk berinteraksi dengan perkhidmatan CAD yang diedarkan, dan sebagai alat bantu mengajar untuk pembangunan aplikasi tetingkap yang lebih maju.

    Aplikasi pelanggan bertingkap menyediakan peluang terhebat untuk berfungsi dalam CAD teragih, kerana ia memungkinkan untuk menggunakan elemen grafik sepenuhnya. Untuk perkhidmatan web ini, anda boleh membina pelbagai versi aplikasi klien dengan cara yang berbeza untuk mengatur dialog dengan pengguna dan memaparkan hasil pengiraan. Kerja ini telah menetapkan set alat dialog minimum yang memastikan interaksi penuh dengan perkhidmatan. Set sedemikian mengandungi menu tetingkap dan satu set kotak dialog untuk memasukkan data dan memaparkan hasil pengiraan, serta mengurus arahan pengiraan.

    Disertasi ini mencadangkan metodologi untuk membina aplikasi web pelanggan, berdasarkan templat halaman JSP telah dibangunkan yang melaksanakan fungsi memilih dan berpindah ke halaman lain, memasukkan set pembolehubah tertentu dengan peralihan ke halaman awal, memasuki kitaran set pembolehubah tertentu dengan peralihan ke halaman seterusnya mengikut nilai pembolehubah ini , memanggil perkhidmatan web yang diperlukan dan memaparkan hasil operasinya. Penggunaan aplikasi web pelanggan membolehkan anda meletakkan keseluruhan kod program sistem yang diedarkan pada rangkaian, dan, bergantung pada kaedah yang diterima pakai untuk meletakkan aplikasi klien dan pelayan pada rangkaian, memanggil perkhidmatan adalah mungkin sama ada dari satu atau dari beberapa laman web.

    Ciri positif seni bina ini ialah keupayaan untuk mengatur akses kepada CAD teragih melalui pelayar web sewenang-wenangnya tanpa perlu membina aplikasi klien anda sendiri; kelemahan pendekatan ini untuk mengatur CAD teragih ialah peningkatan yang tidak dapat dielakkan dalam selang masa yang diperlukan untuk menerangkan komponen sistem dalam proses interaksi interaktif.

    Disertasi membina metodologi untuk mengatur proses penggunaan aplikasi klien, tujuannya adalah untuk memastikan keupayaan untuk melancarkan aplikasi klien menggunakan alat seluruh sistem tanpa menggunakan alat pembangunan aplikasi, manakala kedua-duanya untuk aplikasi klien jenis konsol dan untuk aplikasi klien jenis tetingkap, pelancaran hendaklah dijalankan melalui baris arahan, dan untuk aplikasi web - daripada penyemak imbas. Maklumat tentang lokasi perkhidmatan web dihantar melalui objek kelas proksi, yang mesti dikonfigurasikan terlebih dahulu ke URL yang sesuai.

    Kerja mencatatkan bahawa apabila menggunakan aplikasi konsol, halaman kod projek mesti diubah terlebih dahulu, yang mana ia perlu untuk beralih dari halaman kod di mana teks Cyrillic dipaparkan dalam semua sistem alat bersepadu yang berfungsi dengan kod Java, ke halaman kod di mana teks Cyrillic akan dipaparkan secara normal dalam tetingkap baris arahan.

    Disertasi menunjukkan bahawa apabila menggunakan aplikasi web klien, bergantung pada struktur komunikasi yang dipilih antara komputer klien dan pelayan, maklumat tentang lokasi perkhidmatan web boleh dihantar melalui objek kelas proksi dan melalui URL yang dimasukkan dari penyemak imbas. Kaedah interaksi pelanggan yang sepadan dengan perkhidmatan semasa melaksanakan tugas fungsional mereka untuk struktur komunikasi yang dipilih juga dibincangkan dalam kerja.

    Penyeragaman SOAP menyediakan keupayaan untuk menyambungkan aplikasi gandingan longgar tanpa mengira platform pelaksanaannya, yang membenarkan penggunaan perkhidmatan web untuk memastikan penggunaan yang cekap dan optimum bagi pelbagai sumber yang heterogen dan gandingan longgar dalam aplikasi yang diedarkan. Disertasi menyediakan metodologi umum untuk membina perisian untuk interaksi objek kelas proksi aplikasi dalam persekitaran .NET dengan perkhidmatan dalam persekitaran Java/J2EE. Berdasarkan metodologi ini, organisasi interaksi antara perkhidmatan web Java yang dibangunkan dan aplikasi klien Windows yang dibina dalam persekitaran .NET berdasarkan bahasa C# telah dilaksanakan.

    Keupayaan untuk mengendalikan CAD teragih dalam persekitaran heterogen meluaskan skop penggunaannya dengan ketara.

    Dalam tahanan keputusan saintifik dan praktikal utama yang diperolehi berdasarkan penyelidikan yang dijalankan dalam disertasi dirumuskan.

    Keputusan utama Kerja 1. Seni bina untuk CAD berorientasikan perkhidmatan teragih berdasarkan perkhidmatan web telah dibangunkan, dicirikan oleh struktur terdesentralisasi, kebebasan platform dan keupayaan untuk menjalankan pemodenan berterusan subsistem individu untuk menyesuaikan sifatnya kepada keadaan reka bentuk yang berubah-ubah.

    2. Metodologi umum telah dilaksanakan untuk membina perkhidmatan web Java dan dokumen WSDL yang sepadan menggunakan kaedah bawah ke atas, serta menghantarnya ke pelayan CAD teragih selepas ujian luar talian dalam persekitaran pembangunan.

    3. Satu metodologi telah dibangunkan untuk membina perisian untuk perkhidmatan web Java untuk menyelesaikan masalah tipikal pemodelan sistem berterusan dalam reka bentuk automatik litar elektronik.

    4. Perpustakaan fungsi tambahan telah dibina untuk melaksanakan perisian perkhidmatan web Java berdasarkan pemampatan data.

    5. Metodologi umum untuk membina templat untuk aplikasi klien konsol dan tetingkap untuk sistem automasi reka bentuk litar teragih telah dibangunkan dan organisasi fungsi sistem CAD teragih dengan aplikasi web pelanggan telah dilaksanakan.

    6. Metodologi telah dibangunkan untuk membina sistem CAD teragih yang memastikan interaksi perkhidmatan web Java dan aplikasi klien jenis sewenang-wenangnya dalam persekitaran yang heterogen.

    1. Anisimov D.A. Pembinaan sistem reka bentuk bantuan komputer berdasarkan perkhidmatan Web [Teks] / Anisimov D.A. Gridin V.N., Dmitrevich G.D. // Automasi dalam industri – 2011. – No. 1 – ms 9-12.

    2. Anisimov D.A. Pembinaan sistem reka bentuk bantuan komputer berdasarkan teknologi Web [Teks] / Gridin V.N., Dmitrevich G.D., Anisimov D.A. // Teknologi maklumat - 2011. - No. 5. – ms 23-27.

    3. Anisimov D.A. Pembinaan perkhidmatan web untuk sistem automasi reka bentuk litar [Teks] / Gridin V.N., Dmitrevich G.D., Anisimov D.A // Teknologi maklumat dan sistem pengkomputeran - 2012. - No. 4. – ms 79-84.

    4. Anisimov D.A. Kaedah untuk membina sistem automasi untuk reka bentuk litar berdasarkan perkhidmatan web [Teks] / Anisimov D.A. // Berita Universiti Elektroteknikal St. Petersburg "LETI" - 2012. - No. 10. – St. Petersburg: Rumah penerbitan Universiti Elektroteknikal St. Petersburg “LETI”, – ms 56-61.

    5. Anisimov D.A. Akses kepada sumber Web dalam sistem navigasi dan kawalan CAD [Teks] / Laristov D.A., Anisimov D.A. // Giroskopi dan navigasi. 2007. No 2. –S. 106.

    Perkhidmatan web- perkataan baharu dalam teknologi sistem teragih. Spesifikasi Persekitaran Bersih Terbuka (SATU) Perbadanan dan Inisiatif Sun Microsystems. Microsoft's Net menyediakan infrastruktur untuk menulis dan menggunakan perkhidmatan Web. DALAM pada masa ini Terdapat beberapa definisi perkhidmatan Web. Perkhidmatan Web boleh menjadi sebarang aplikasi yang mempunyai akses kepada Web, seperti halaman Web dengan kandungan dinamik. Dalam erti kata yang lebih sempit, perkhidmatan Web ialah aplikasi yang menyediakan antara muka terbuka yang boleh digunakan oleh aplikasi lain di Web. Spesifikasi ONE Sun memerlukan perkhidmatan Web boleh diakses melalui HTTP dan protokol Web lain, untuk membolehkan maklumat ditukar melalui mesej XML, dan boleh dicari melalui perkhidmatan khas- perkhidmatan carian. Satu protokol khas telah dibangunkan untuk akses kepada perkhidmatan Web - Mudah Akses Objek Protokol (SOAP), yang memperkenalkan kebolehoperasian berasaskan XML untuk banyak perkhidmatan Web. Perkhidmatan web amat menarik kerana ia boleh memberikan tahap keserasian yang tinggi antara sistem yang berbeza.

    Perkhidmatan Web hipotesis yang dibangunkan mengikut seni bina Sun's ONE boleh mengambil bentuk pendaftaran perkhidmatan yang menerbitkan perihalan perkhidmatan Web sebagai dokumen .

    Potensi besar perkhidmatan Web tidak ditentukan oleh teknologi yang digunakan untuk menciptanya. HTTP, XML dan protokol lain yang digunakan oleh perkhidmatan Web bukanlah baharu. Saling kendali dan kebolehskalaan perkhidmatan Web bermakna pembangun boleh membina aplikasi yang lebih besar dengan cepat dan perkhidmatan Web yang lebih besar daripada perkhidmatan Web yang lebih kecil. Spesifikasi Sun Open Net Environment menerangkan seni bina untuk mencipta perkhidmatan web pintar.Perkhidmatan Web Pintar memanfaatkan persekitaran operasi biasa. Dengan berkongsi konteks, perkhidmatan Web pintar boleh melakukan pengesahan standard untuk transaksi kewangan, memberikan cadangan dan panduan berdasarkan lokasi geografi syarikat yang terlibat dalam transaksi tersebut. e-perniagaan.

    Untuk mencipta aplikasi yang merupakan perkhidmatan Web, perlu menggunakan beberapa teknologi.

    Hubungan antara teknologi ini secara konvensional dibentangkan dalam Rajah. 10.1.


    nasi. 10.1.

    Malah, perkhidmatan Web adalah salah satu pilihan pelaksanaan seni bina komponen, di mana aplikasi itu dianggap sebagai koleksi komponen yang berinteraksi antara satu sama lain. Seperti yang telah dikatakan berkali-kali, interaksi komponen berjalan platform yang berbeza, adalah tugas yang agak kompleks, khususnya, ia memerlukan pembangunan protokol komunikasi , dengan mengambil kira ciri pemindahan data antara platform yang berbeza. Salah satu idea utama yang mendasari teknologi perkhidmatan Web yang sedang dipertimbangkan ialah penolakan binari protokol komunikasi. Mesej ditukar antara komponen sistem dengan menghantar mesej XML. Memandangkan mesej XML ialah fail teks, protokol pengangkutan penghantaran boleh sangat berbeza - Mesej XML boleh dihantar melalui protokol HTTP, SMTP, FTP, dan penggunaan protokol pengangkutan yang berbeza adalah telus kepada aplikasi. Seperti yang telah disebutkan, protokol yang membolehkan perkhidmatan Web berinteraksi dipanggil SABUN (Protokol Akses Objek Mudah). Ia ditakrifkan berdasarkan XML. SABUN memastikan interaksi sistem teragih, tanpa mengira model objek atau platform yang digunakan. Data dalam SABUN dihantar dalam bentuk dokumen XML format khas. SABUN tidak mengenakan sebarang protokol pengangkutan khusus. Walau bagaimanapun, dalam aplikasi sebenar pemindahan paling kerap dilaksanakan SABUN-mesej melalui protokol HTTP. Juga digunakan secara meluas sebagai pengangkutan Protokol SMTP, FTP dan juga TCP "tulen". Jadi, SABUN mentakrifkan mekanisme di mana perkhidmatan Web boleh memanggil fungsi satu sama lain. Dari satu segi, pengendalian protokol ini mengingatkan kepada panggilan prosedur jauh - pemanggil mengetahui nama perkhidmatan Web, nama kaedahnya, parameter yang diterima oleh kaedah tersebut, dan memformalkan panggilan ke kaedah ini dalam bentuk. SABUN-mesej dan menghantarnya ke perkhidmatan Web.

    Walau bagaimanapun, pendekatan yang diterangkan hanya sesuai jika "tandatangan" kaedah yang dilaksanakan oleh perkhidmatan Web diketahui terlebih dahulu. Tetapi bagaimana jika ini tidak berlaku? Untuk menyelesaikan masalah ini, lapisan tambahan telah diperkenalkan ke dalam model perkhidmatan Web - lapisan untuk menerangkan antara muka perkhidmatan. Lapisan ini dibentangkan sebagai penerangan WSDL.

    Seperti yang ditakrifkan oleh W3C, " WSDL - Format XML untuk penerangan perkhidmatan rangkaian sebagai satu set operasi terhingga yang beroperasi menggunakan mesej yang mengandungi maklumat berorientasikan dokumen atau berorientasikan prosedur." Dokumen WSDL menerangkan sepenuhnya antara muka perkhidmatan Web dengan dunia luar. Ia menyediakan maklumat tentang perkhidmatan yang boleh diperoleh menggunakan kaedah perkhidmatan dan cara mengakses kaedah ini. Oleh itu, jika tandatangan kaedah perkhidmatan Web tidak diketahui dengan tepat (contohnya, ia telah berubah dari semasa ke semasa), perkhidmatan Web sasaran boleh ditanya WSDL-penerangan - fail di mana maklumat ini akan terkandung.

    Lapisan teknologi seterusnya ialah perkhidmatan Penerangan Universal, Penemuan dan Integrasi (UDDI).Teknologi ini melibatkan penyelenggaraan pendaftaran perkhidmatan Web. Dengan menyambung ke pendaftaran ini, pengguna boleh mencari perkhidmatan Web yang paling sesuai dengan keperluannya. Teknologi UDDI memungkinkan untuk mencari dan menerbitkan perkhidmatan yang diingini, dan operasi ini boleh dilakukan sama ada oleh seseorang atau oleh perkhidmatan Web lain atau program pelanggan khas. UDDI, seterusnya, juga merupakan perkhidmatan Web.

    Oleh itu, perkhidmatan Web adalah satu lagi pelaksanaan sistem perisian tengah. Ciri tersendiri teknologi ini ialah kebebasannya daripada perisian yang digunakan dan perkakasan, serta penggunaan yang digunakan secara meluas piawaian terbuka(seperti XML) dan protokol komunikasi standard.

    Pada masa ini, perkhidmatan Web adalah teknologi yang sangat aktif digalakkan dan diletakkan sebagai satu cara untuk menyelesaikan beberapa masalah.

    Perlu diingatkan bahawa menggunakannya, aplikasi yang dipanggil "standard" juga boleh dibina, di mana bahagian pelayan direka sebagai perkhidmatan Web.

    Protokol Akses Objek Mudah (SOAP)

    Protokol asas yang memastikan interaksi dalam persekitaran perkhidmatan Web ialah

    Bab 1. Metodologi umum untuk membina sistem teragih berdasarkan perkhidmatan web

    1.1. Seni bina berorientasikan perkhidmatan.

    1-2. Metodologi untuk membina perkhidmatan web Java.

    1-3. Ujian awal perkhidmatan web.

    Bab 2. Kaedah untuk membina perisian untuk perkhidmatan web sistem automasi reka bentuk litar teragih

    2-1. Sokongan matematik untuk sistem automasi reka bentuk litar.

    2-2. Perkhidmatan web untuk mereka bentuk sistem linear dalam domain frekuensi.

    2-3. Perkhidmatan web untuk mengira keadaan mantap sistem tak linear.

    2-4. Sistem bersepadu berorientasikan perkhidmatan untuk analisis frekuensi litar linear.

    2-5. Perkhidmatan web untuk mengira sistem tak linear dalam mod dinamik.

    Bab 3. Membina perkhidmatan web berdasarkan kaedah pemampatan data.

    3-1. Kaedah penyingkiran unsur sifar semasa penyimpanan dan pemprosesan matriks.

    3-2. Metodologi untuk membangunkan versi diubah suai perkhidmatan web.

    3-2-1. Pengubahsuaian pada peringkat simbolik.

    3-2-2. Pengubahsuaian pada peringkat berangka.

    3-3. Perkhidmatan web untuk mengira sensitiviti fungsi litar kepada variasi parameter.

    3-3-1. Pembinaan kaedah perkhidmatan web berdasarkan pembezaan persamaan.

    3-3-2. Kaedah perkhidmatan web berdasarkan skema yang dilampirkan.

    3-4. Perkhidmatan web untuk mengira sensitiviti pembolehubah keadaan mantap.

    3-4-1. Pembinaan kaedah perkhidmatan web untuk mengira sensitiviti vektor pembolehubah.

    3-4-2. Kaedah perkhidmatan web untuk mengira sensitiviti skalar pembolehubah.

    Bab 4. Kaedah untuk membina aplikasi pelanggan sistem CAD teragih.

    4-1. Teknik untuk membina aplikasi klien berdasarkan dokumen WSDL.

    4-1-1. Menggunakan perkhidmatan web pada pelayan Apache Tomcat.

    4-1-2. Teknik untuk mengimport fail WSDL dan membina aplikasi klien rangka.

    4-2. Aplikasi pelanggan sistem reka bentuk litar teragih.

    4-2-1. Metodologi untuk membina pelanggan konsol.

    4-2-2. Metodologi untuk membina aplikasi klien bertingkap.

    4-2-3. Metodologi untuk membina aplikasi web pelanggan.

    4-3. Penggunaan aplikasi Java pelanggan.

    4-3-1. Penggunaan aplikasi klien Java dilancarkan daripada baris arahan.

    4-3-2. Penggunaan aplikasi klien Java yang dilancarkan daripada pelayar web.

    4-4. Organisasi interaksi aplikasi klien dengan perkhidmatan web dalam persekitaran heterogen.

    Pengenalan disertasi (sebahagian daripada abstrak) mengenai topik "Penyelidikan dan pembangunan kaedah untuk membina sistem reka bentuk bantuan komputer teragih berdasarkan teknologi perkhidmatan web"

    Pengenalan meluas sistem reka bentuk bantuan komputer ke dalam amalan menyelesaikan masalah kejuruteraan dihadkan dengan ketara oleh kos tinggi perisian CAD berlesen. Pada masa yang sama, mencipta sistem reka bentuk bantuan komputer anda sendiri dikaitkan dengan kos sumber yang besar dan tidak dapat dilaksanakan dalam masa yang singkat, kerana pembangunan sistem CAD moden memerlukan beratus-ratus tahun manusia. Masalahnya juga rumit oleh fakta bahawa dalam situasi operasi sebenar, sistem CAD bersepadu pelbagai fungsi (contohnya, Micro-Cap 7, PSPICE, DISPC) digunakan, sebagai peraturan, sangat tidak berkesan, kerana dalam proses menyelesaikan masalah tertentu dari perisian asas sistem ini, tidak lebih daripada 10-20% daripada perisian yang paling khusus untuk setiap jabatan.

    Penyelesaian kepada masalah mendesak ini mungkin desentralisasi seni bina CAD dengan berpindah ke sistem reka bentuk teragih yang dibina berdasarkan teknologi Internet yang melaksanakan tugas komunikasi dan pertukaran maklumat antara aplikasi. Aplikasi yang diuruskan secara bebas ini adalah autonomi dan boleh berkomunikasi antara satu sama lain untuk menyelesaikan tugas yang sama. Protokol teknologi Internet menyediakan asas yang boleh dipercayai untuk memautkan subsistem, dan tidak seperti teknologi Grid, ia tidak memerlukan penggunaan sumber yang diselaraskan yang terletak dalam nod rangkaian yang berbeza, yang secara signifikan memudahkan proses membina dan mengendalikan sistem CAD teragih. Keperluan utama untuk kemungkinan melaksanakan sistem teragih sedemikian ialah ketekalan antara muka yang melaluinya subsistem individu boleh berinteraksi antara satu sama lain. Jika keperluan ini dipenuhi, komponen individu sistem CAD yang diedarkan boleh dibuat oleh pelbagai pembangun dan diselenggara di pelbagai tapak, dari mana ia akan dihantar, mungkin secara komersial, kepada pengguna.

    Kaedah yang paling berkesan untuk menyepadukan subsistem individu ke dalam aplikasi yang diedarkan ialah panggilan prosedur jauh berdasarkan seni bina berorientasikan perkhidmatan menggunakan teknologi perkhidmatan web. Penyepaduan berdasarkan perkhidmatan web dalam pembangunan sistem CAD terdesentralisasi membolehkan anda beralih kepada perihalan antara muka dan interaksi berdasarkan XML, memberikan keupayaan untuk mengubah suai dan membangunkan perisian, dengan syarat antara muka yang dipilih dipelihara. Ini membolehkan, disebabkan gandingan longgar subsistem individu, untuk memastikan interaksi antara pelbagai perkhidmatan pada mana-mana platform dan menyesuaikan aplikasi sedia ada kepada keadaan reka bentuk yang berubah-ubah.

    Beban utama untuk melaksanakan operasi pengiraan dengan seni bina sedemikian terletak pada perkhidmatan web, yang menyelesaikan semua masalah pemodelan sistem yang direka bentuk; aplikasi klien hanya diberikan fungsi paling mudah untuk menyediakan data awal dan memaparkan hasil pemodelan. Apabila membina sistem CAD berdasarkan teknologi perkhidmatan web, jenis aplikasi klien berikut boleh dilaksanakan: aplikasi jenis konsol, aplikasi jenis tetingkap dan aplikasi web.

    Ciri aplikasi konsol ialah kekurangan antara muka grafik; namun, penggunaannya boleh berguna apabila melaksanakan sistem CAD mudah untuk komputer poket dengan kawasan skrin kecil.

    Aplikasi tetingkap memungkinkan untuk melaksanakan antara muka grafik yang terbaik dan paling sesuai untuk membangunkan sistem CAD berdasarkan teknologi perkhidmatan web. Pada masa yang sama, untuk mana-mana perkhidmatan web adalah mungkin untuk membina beberapa aplikasi dari jenis yang sama dengan cara yang berbeza untuk melaksanakan interaksi dialog.

    Aplikasi web menyediakan keupayaan untuk meletakkan sepenuhnya semua perisian sistem reka bentuk yang diedarkan di Internet. Kelebihan aplikasi struktur sedemikian ialah akses terbuka kepada penggunaan CAD yang diedarkan melalui pelayar apa-apa jenis; kelemahan aplikasi jenis ini ialah peningkatan dalam masa yang diperlukan untuk memasukkan perihalan komponen yang dimodelkan. sistem, disebabkan oleh jangkaan tindak balas pada setiap langkah memasukkan data awal.

    Untuk sebarang jenis aplikasi klien, perkhidmatan web dipanggil dengan cara yang sama, dan untuk setiap perkhidmatan web anda boleh menggunakan sebarang cara untuk membina aplikasi klien yang ditulis dalam bahasa pengaturcaraan yang berbeza. Jika perlu, aplikasi pelanggan tersebut boleh diubah suai dengan mudah mengikut keadaan reka bentuk yang berubah-ubah; ia juga mungkin untuk mengembangkan perkhidmatan web dengan memasukkan kaedah tambahan.

    Tujuan disertasi ini adalah untuk menyelidik dan membangunkan kaedah untuk membina sistem reka bentuk bantuan komputer teragih bebas platform berdasarkan seni bina berorientasikan perkhidmatan menggunakan teknologi perkhidmatan web. Untuk pelaksanaan tertentu, tugas yang dipilih adalah untuk membina sistem automasi teragih untuk reka bentuk litar, yang harus menjalankan pemodelan multivariate litar elektronik linear dan bukan linear dalam mod pegun, dalam domain frekuensi, dalam domain masa, dan juga mengira kepekaan fungsi litar (pemindahan) dan kepekaan pembolehubah mod pegun kepada variasi parameter.

    Untuk mencapai tugas ini adalah perlu:

    Membangunkan metodologi umum untuk membina, ujian luar talian dan menggunakan perkhidmatan web Java ke pelayan.

    Lakukan penyelidikan dan pembangunan perisian perkhidmatan web Java untuk sistem automasi reka bentuk litar teragih.

    Menyelidik dan membangunkan metodologi untuk membina perkhidmatan web Java berdasarkan teknologi pemampatan data.

    Menjalankan penyelidikan dan pembangunan metodologi umum untuk membina templat untuk aplikasi klien jenis konsol dan tetingkap, serta aplikasi web pelanggan.

    Membangunkan metodologi untuk melaksanakan fungsi perkhidmatan web dalam persekitaran heterogen.

    Disertasi ini mengandungi pengenalan, empat bab kandungan utama, kesimpulan dan bibliografi yang mengandungi 69 tajuk. Kerja ini dibentangkan pada 154 muka surat teks, dan termasuk 21 angka dan satu jadual.

    Kesimpulan disertasi mengenai topik "Sistem automasi reka bentuk (mengikut industri)", Anisimov, Denis Andreevich

    Hasil utama kerja disertasi adalah seperti berikut:

    1. Seni bina untuk CAD berorientasikan perkhidmatan teragih berdasarkan perkhidmatan web telah dibangunkan, dicirikan oleh struktur terdesentralisasi, kebebasan platform dan keupayaan untuk menjalankan pemodenan berterusan subsistem individu untuk menyesuaikan sifatnya kepada keadaan reka bentuk yang berubah-ubah.

    2. Metodologi umum telah dilaksanakan untuk membina perkhidmatan web Java dan dokumen WSDL yang sepadan menggunakan kaedah bawah ke atas, serta menghantarnya ke pelayan CAD teragih selepas ujian luar talian dalam persekitaran pembangunan.

    3. Satu metodologi telah dibangunkan untuk membina perisian perkhidmatan web Java untuk menyelesaikan masalah pemodelan biasa sistem berterusan dalam reka bentuk automatik litar elektronik.

    4. Perpustakaan fungsi tambahan telah dibina untuk melaksanakan perisian perkhidmatan web Java berdasarkan pemampatan data.

    5. Metodologi umum untuk membina templat untuk aplikasi klien konsol dan tingkap bagi sistem automasi reka bentuk litar teragih telah dibangunkan dan organisasi fungsi sistem CAD teragih dengan aplikasi web pelanggan telah dilaksanakan.

    6. Satu metodologi telah dibangunkan untuk membina sistem CAD teragih yang memastikan interaksi perkhidmatan web Java dan aplikasi klien dari sebarang jenis dalam persekitaran heterogen.

    Kesimpulan

    Semasa melaksanakan kerja disertasi, isu penyelidikan dan pembangunan kaedah untuk membina sistem CAD teragih bebas platform dengan seni bina berorientasikan perkhidmatan dan penggunaan perkhidmatan web telah dipertimbangkan. Untuk menentukan sistem CAD sedemikian, sistem teragih telah dipilih untuk menyelesaikan masalah reka bentuk litar.

    Kerja menunjukkan bahawa penggunaan perkhidmatan web semasa membina perisian CAD terdesentralisasi memungkinkan untuk menerangkan antara muka dan interaksi berdasarkan XML, memberikan peluang untuk mengubah suai dan membangunkan sistem, dengan syarat antara muka yang diperlukan. Ini membolehkan anda mengatur interaksi antara perkhidmatan pada mana-mana platform dan menyesuaikan aplikasi yang digunakan untuk mengubah keadaan reka bentuk.

    Kerja ini mencipta metodologi umum untuk membina, ujian luar talian dan menggunakan perkhidmatan web Java pada pelayan. Berdasarkan metodologi ini, pelaksanaan perisian perkhidmatan web Java telah dibangunkan yang menyelesaikan masalah pengiraan litar elektronik linear dan tak linear dalam mod keadaan mantap, dalam domain frekuensi, dalam domain masa, termasuk mengira kepekaan fungsi litar dan pegun. -mod pembolehubah kepada variasi parameter. Struktur perisian adalah berdasarkan penggunaan meluas teknologi pemampatan data dan fungsi tambahan, perpustakaan yang dicipta dalam proses menyiapkan kerja disertasi.

    Untuk mengatur interaksi pengguna yang berkesan dengan perkhidmatan web, kami telah membangunkan metodologi umum membina templat untuk aplikasi klien jenis konsol dan tetingkap, serta aplikasi web pelanggan dan melaksanakan fungsi perkhidmatan web dalam persekitaran heterogen.

    Senarai rujukan untuk penyelidikan disertasi Calon Sains Teknikal Anisimov, Denis Andreevich, 2013

    1. Automasi reka bentuk litar Teks: monograf / V.N. Ilyin [et al.]; diedit oleh V.N. Ilyina. M.: Radio dan komunikasi, 1987. - 368 p.

    2. Automasi reka bentuk litar pada komputer mini Teks: buku teks / V.I. Anisimov [dsb.]. JL: Rumah penerbitan Leningr. Universiti, 1983. - 199 hlm.

    3. Anisimov, V.I. Satu set pakej interaktif untuk memodelkan litar elektronik analog dan digital pada Teks IBM/PC. / V.I.Anisimov, K.B.Skobeltsyn, A.V.Nikitin // Reka bentuk automatik dalam elektronik radio dan pembuatan instrumen: 1991.-P.3-6.

    4. Anisimov, V.I. Kepekaan sistem tak linear kepada variasi parameter Teks. / V.I.Anisimov, Yu.M.Amakhvr // Prosiding Universiti Elektroteknikal St. Petersburg "LETI". Ser. Informatik, pengurusan dan teknologi komputer, -2007. Isu 2. - ms 22-26.

    5. Anisimov, V.I. Pemodelan sistem berterusan Teks: buku teks / V.I. Anisimov. SPb.: LETI, 2006. - 172 p.

    6. Bellignaso, M. Pembangunan aplikasi Web dalam persekitaran ASP.NET 2.0 Teks: monograf / M. Bellignaso.; lorong dari bahasa Inggeris diedit oleh Yu.N. Artemenko. M.: LLC "I.D. Williams", 2007. - 640 p.

    7. Bellman, R. Pengenalan kepada teori matriks Teks: monograf / R. Bellman; lorong dari bahasa Inggeris diedit oleh V.B. Lidsky. M.: Nauka, 1969. - 336 hlm.

    8. Bogdanov, A.B. Seni bina berorientasikan perkhidmatan: peluang baharu berdasarkan perkembangan teknologi GRID / A.V. Bogdanov, E.N. Stankova, V.V. Mareev (http//www.ict.edu.ru/lib/index.php?idres= 5639)

    9. Vlah, I. Kaedah mesin analisis dan reka bentuk litar elektronik Teks: monograf / I. Vlah, K. Singhal.; lorong dari bahasa Inggeris M.: Radio dan komunikasi, 1988. - 560 p.

    10. Gamma, E. Teknik reka bentuk berorientasikan objek Teks: monograf / E. Gamma, R. Helm.; lorong dari bahasa Inggeris St. Petersburg: Peter, 2001.

    11. I. Gerber, Sh. Buku rujukan lengkap tentang Teks C#: monograf / Sh. Gerber.; lorong dari bahasa Inggeris St. Petersburg: Peter, 2006. - 740 p.

    12. Gloriozov, E.L. Pengenalan kepada automasi reka bentuk litar Teks: monograf / E.L. Gloriozov, V.G. Sorin, P.P. Sypchuk. M.: Radio Soviet, 1976. - 232 p.

    13. Daconta, M. XML dan Java 2. Pustaka pengaturcara Teks: monograf / M. Daconta, A. Saganich; lorong dari bahasa Inggeris St Petersburg: 2001. - 384 p.

    14. Dey, N. Eclipse: Teks Platform Alat Web: monograf / N. Dey, L. Mandel, A. Rayman; lorong dari bahasa Inggeris M.:, 2008.- 688 p.

    15. Deitel, H.M. Teknologi pengaturcaraan dalam Java 2: Buku 1. Grafik, JavaBeans, antara muka pengguna Teks: monograf / H.M.Deitel, P.D.Deitel, S.I.Santry.; M.: Binom-Press LLC, 2003.-560 hlm.

    16. Deitel, H.M. Teknologi pengaturcaraan dalam Java 2: Buku 2. Aplikasi yang diedarkan Teks: monograf / Kh.M. Deitel, P. D. Deitel, S. I. Santry.; M.: Binom-Press LLC, 2003.-464 hlm.

    17. Deitel, H.M. Teknologi pengaturcaraan dalam Java 2: Buku 3. Sistem korporat, servlet, JSP, perkhidmatan Web Teks: monograf / H.M.Deitel, P.D.Deitel, S.I.Santry; lorong dari bahasa Inggeris M.: Binom-Press LLC, 2003. - 672 p.

    18. Demidovich, B.P. Asas matematik pengiraan Teks: monograf / B.P. Demidovich, I.A. Maron. M.: Fizmatgiz, 1963. - 658 hlm.

    19. James, O. Kaedah berulang untuk menyelesaikan sistem persamaan tak linear Teks: monograf / O. James, R. Vener.; lorong dari bahasa Inggeris diedit oleh E.V. Vershkova, N.P. Zhidkova, I.V. Konovatseva. M.: Mir, 1975.- 551 hlm.

    20. George, A. Penyelesaian berangka bagi sistem persamaan yang jarang besar Teks: monograf / A. George, J. Liu.; lorong dari bahasa Inggeris H.D. Ikramova M.: Mir, 1984. - 333 p.

    21. Sistem dialog reka bentuk litar Teks: monograf / V.I. Anisimov [dsb.]. M.: Radio dan komunikasi, 1988. - 287 p.

    22. Dunaev S.B. Java untuk Internet pada Windows dan Teks Linux.: monograf / S.B. Dunaev. M.: DIALOG-MEPhI, 2004. - 496 hlm.

    23. Zelenukhina, V.A. Pembangunan makmal maya berorientasikan Internet untuk pemodelan matematik dengan mengasingkan tugas pengiraan dan visualisasi Teks. / V.A.Zelenukhina, //Teknologi Maklumat, 2010. No. 10. - DENGAN.

    24. Zykov, A.A. Asas teori graf Teks: monograf / A.A. Zykov. -M.: Nauka, 1987.-256 hlm.

    25. Ilyin, V.N. Asas automasi reka bentuk litar Teks: monograf / V.N. Ilyin. M.: Tenaga, 1979. - 391 hlm.

    26. Pemodelan simulasi sistem pengeluaran Teks: monograf / A.A. Vavilov [et al.]. Kyiv: Teknik, 1983. - 415 p.

    27. Cara memprogram dalam Teks XML: monograf / H.M. Deitel, [dll.].; lorong dari bahasa Inggeris M.: ZAO Publishing House BINOM, 2001. - 944 hlm.

    28. Kalitkin, N.H. Kaedah berangka Teks: monograf / N.N. Kalitkin. -M.: Nauka, 1978, - 519 hlm.

    29. Knuth, D. Seni pengaturcaraan komputer Teks: monograf / D.Knut.; lorong dari bahasa Inggeris G.P.Bavenko, Yu.M.Vayakovsky; diedit oleh K.I. Babenko, V.S. Shtarkman. M.: Mir, 1976. - 734 hlm.

    30. Christofides, N. Teori graf. Pendekatan Algoritma Teks: monograf / N. Christofides; lorong dari bahasa Inggeris diedit oleh G.P. Gavrilova. M.: Mir, 1978.-432 hlm.

    31. MacDonald, M. Microsoft ASP.NET 2.0 dengan contoh dalam C# 2005 untuk profesional Teks: monograf / M. MacDonald, M. Shpushta; lorong dari bahasa Inggeris diedit oleh Yu.N. Artemenko. M.: LLC "I.D. Williams", 2006. - 1408 p.

    32. Mikhailov, V.B. Kaedah analisis berangka untuk menyelesaikan sistem persamaan pembezaan-algebra supertegar Teks: monograf / V.B. Mikhailov. St Petersburg: Nauka, 2005. - 223 p.

    33. Norenkov, I.P. Pengenalan kepada reka bentuk bantuan komputer peranti dan sistem teknikal Teks: monograf / I.P. Norenkov. -M.: Sekolah Tinggi, 1986. 302 hlm.

    34. Norenkov, I.P. Asas teori dan reka bentuk CAD Teks: monograf / I.P. Norenkov, V.B. Manichev. M.: 1990. -334 hlm.

    35. Norenkov, I.P. Sistem reka bentuk bantuan komputer untuk peralatan elektronik dan komputer Teks: monograf / I.P. Norenkov, V.B. Manichev. -M.: Sekolah Tinggi, 1983. 272 ​​​​hlm.

    36. Naughton, P. Java 2 Teks: monograf / P. Naughton, G. Schildt. ; lorong dari bahasa Inggeris St Petersburg: BHV-Petersburg, 2001. - 1072 p.

    37. Petrenko, A.I. Asas membina sistem reka bentuk bantuan komputer Teks: monograf / A.I. Petrenko, O.I. Semenkov. -Kiev: Sekolah Tinggi, 1984. 293 hlm.

    38. Petrenko, A.I. Kaedah Jadual pemodelan litar elektronik pada komputer digital Teks: monograf / A.I. Petrenko, A.I.Vlasov, A.P.Timchenko. -Kiev: Sekolah Tinggi, 1977. 186 hlm.

    39. Pissanetski, S. Teknologi matriks jarang Teks: monograf / S. Pissanetski; lorong dari bahasa Inggeris diedit oleh Kh.D.Ikramova. M.: Mir, 1988. - 410 p.

    40. Razevig, V. Pemodelan litar menggunakan Micro-Cap 7 Teks: monograf / V. Razevig. M.: Telekom, 2003. - 368 p.

    41. Pembangunan aplikasi yang diedarkan pada platform Microsoft. Rangka Kerja Bersih Teks: monograf / S. Morgan [et al.].; lorong dari bahasa Inggeris M.: "Edisi Rusia", 2008. - 608 p.

    42. Pembangunan aplikasi web pelanggan pada platform Microsoft .Net Framework Teks: monograf / Glenn D. [et al.].; lorong dari bahasa Inggeris M.: "Edisi Rusia", 2007. - 768 p.

    43. Teks Panduan Pembangun Borland JBuilder: monograf / M. Lendi [et al.].; lorong dari bahasa Inggeris M.: Rumah penerbitan "William", 2004. -864 p.

    44. Rice, J. Pengiraan matriks dan perisian matematik Teks: monograf / J. Rice.; lorong dari bahasa Inggeris M.: Mir, 1984. - 264 hlm.

    45. C# untuk profesional Teks: monograf / Simon Robinson [et al.].; lorong dari bahasa Inggeris S. Korotigin [dan lain-lain]. M.: Lori, 2005. - 1002 p.

    46. ​​Simon, P. Microsoft Windows 2000 API. Teks Ensiklopedia Pengaturcara: monograf / R. Simon; St. Petersburg: DiaSoft, 2002.-1088 hlm.

    47. Rahsia pengaturcaraan untuk Internet dalam Java Teks: monograf / M. Thomas [et al.].; lorong dari bahasa Inggeris St. Petersburg: Peter, 1997. - 640 p.

    48. Seshu, S. Graf linear dan litar elektrik Teks: monograf / S.Seshu, M.B.Rid.; lorong dari bahasa Inggeris M.: Sekolah Tinggi, 1971. - 448 p.

    49. Sigorsky, V.P. Algoritma untuk analisis litar elektronik Teks: /

    50. V.P.Sigorsky, A.I.Petrenko. M.: Radio Soviet, 1976. - 606 p.

    51. Sigorsky, V.P. Alat matematik jurutera Teks: monograf / V.P. Sigorsky. Kyiv: Teknik, 1975. - 765 p.

    52. Slipchenko, V.G. Algoritma mesin dan program untuk memodelkan litar elektronik Teks: monograf / V.G. Slipchenko, V.G. Tabarny - Kiev: Teknologi, 1976. 157 p.

    53. Sovetov, B.Ya. Pemodelan sistem Teks: monograf / B.Ya.Sovetov,

    54. S.A. Yakovlev. M.: Sekolah Tinggi, 1985. - 271 hlm.

    55. Solnitsev, R.I. Automasi reka bentuk sistem kawalan automatik Teks: monograf / R.I. Solnitsev. M.: Sekolah Tinggi, 1991. - 328 p.

    56. Solnitsev, R.I. Asas automasi dalam reka bentuk sistem giroskopik. Teks: monograf / R.I. Solnitsev. M.: Sekolah Tinggi, 1985. - 240 p.

    57. Stepanenko, I.P. Asas mikroelektronik: buku teks. manual untuk universiti Teks / I.P. Stepanenko. M.: Radio Soviet, 1980. -567 p.

    58. Tarasik, V.P. Pemodelan matematik sistem teknikal Teks: monograf / V.P. Tarasik. Minsk: Design PRO, 2004. - 639 p.

    59. Troelsen, E. Bahasa pengaturcaraan C# 2005 dan platform .NET 2.0 Teks: monograf / E. Troelsen; lorong dari bahasa Inggeris diedit oleh A.G. Spivak. M.: LLC "I.D. Williams", 2007. - 1168 p.

    60. Tewarson, F.R. Matriks jarang Teks: monograf / F.R. Tewarson; lorong dari bahasa Inggeris M.: Mir, 1977. - 189 hlm.

    61. Fadeev, D.K. Kaedah pengiraan algebra linear Teks: monograf / D.K. Fadeev, V.N. Fadeeva. M.: Penerbitan Fiz-mat Literature, 1963. - 734 hlm.

    62. Ferrara, A. Pengaturcaraan perkhidmatan web untuk .NET Text: monograph / A. Ferrara, M. MacDonald. St. Petersburg: Peter, 2003. - 422 p.

    63. Forsythe, J. Kaedah mesin pengiraan matematik Teks: monograf / J. Forsyth, M. Malcolm, K. Mowler.; lorong dari bahasa Inggeris diedit oleh Kh.D.Ikramova. M.: Mir, 1980. - 277 hlm.

    64. Cymbal, A.A. Teknologi untuk mencipta sistem teragih Teks: monograf / A.A. Tsimbal, M.L. Anshina. St. Petersburg: Peter, 2003. - 576 p.

    65. Chua, L.O. Analisis mesin litar elektronik Teks: monograf / L.O.Chua, Lin.Pen-Min.; lorong dari bahasa Inggeris -M.: Tenaga, 1980. 631 hlm.

    66. Heineman, P. PSPICE Memodelkan pengendalian litar elektronik Teks: monograf / R. Heineman. -M.: Rumah Penerbitan DMK, 2005. 327 hlm.

    67. Khabibulin, I. Pembangunan perkhidmatan Web menggunakan Teks Java: monograf / I. Khabibulin. St Petersburg: BHV-Petersburg, 2003. - 400 p.

    68. Hall, M. Servlets dan JavaServer Pages Text: monograph / M. Hall; lorong dari bahasa Inggeris -SPb.: Peter, 2001. 496 hlm.

    69. Esterby, O. Kaedah langsung untuk matriks jarang Teks: monograf / O. Esterby, Z. Zlatev; lorong dari bahasa Inggeris M.: Mir, 1987. - 111 hlm.

    70. Muda, M.D. Microsoft XML. Teks langkah demi langkah: monograf / M.D. Young; lorong dari bahasa Inggeris -M.: EKOM Publishing House, 2002. 384 hlm.69. http://bigor.bmstu.ru/?doc=080IS/ai006.mod/?cou-140CADedu/CAD.cou

    Sila ambil perhatian perkara di atas teks ilmiah disiarkan untuk tujuan maklumat dan diperoleh melalui pengecaman teks disertasi asal (OCR). Oleh itu, ia mungkin mengandungi ralat yang berkaitan dengan algoritma pengecaman yang tidak sempurna. Tiada ralat sedemikian dalam fail PDF disertasi dan abstrak yang kami sampaikan.