Layanan Web XML. Ikhtisar teknologi

Judul topik benar-benar sebuah pertanyaan, karena Saya sendiri tidak tahu apa itu dan untuk pertama kalinya saya akan mencoba bekerja dengannya dalam kerangka artikel ini. Satu-satunya hal yang saya dapat menjamin bahwa kode di bawah ini akan berfungsi, tetapi frasa saya hanyalah asumsi dan tebakan tentang bagaimana saya sendiri memahami semua ini. Jadi ayo pergi ...

pengantar

Kita harus mulai dengan untuk apa konsep layanan web dibuat. Pada saat konsep ini muncul, teknologi sudah ada di dunia yang memungkinkan aplikasi untuk berinteraksi di kejauhan, di mana satu program dapat memanggil beberapa metode di program lain, yang pada saat yang sama dapat diluncurkan di komputer yang terletak di kota lain atau bahkan negara. Semua ini disingkat RPC (Remote Procedure Calling). Contohnya termasuk teknologi CORBA, dan untuk Java - RMI (Remote Method Invoking). Dan semuanya tampak baik di dalamnya, terutama di CORBA, tk. Anda dapat bekerja dengannya dalam bahasa pemrograman apa pun, tetapi ada sesuatu yang masih hilang. Saya percaya bahwa kelemahan CORBA adalah ia bekerja melalui beberapa protokol jaringannya sendiri, bukan HTTP sederhana, yang akan merayapi firewall apa pun. Ide di balik layanan web adalah untuk membuat RPC yang akan menempel pada paket HTTP. Ini adalah bagaimana pengembangan standar dimulai. Apa konsep dasar dari standar ini:
  1. SABUN MANDI... Sebelum memanggil prosedur jarak jauh, Anda perlu menjelaskan panggilan ini dalam file XML SOAP. SOAP hanyalah salah satu dari banyak markup XML yang digunakan dalam layanan web. Segala sesuatu yang ingin kita kirim ke suatu tempat melalui HTTP pertama-tama diubah menjadi deskripsi XML SOAP, kemudian dimasukkan ke dalam paket HTTP dan dikirim ke komputer lain di jaringan melalui TCP / IP.
  2. WSDL... Ada layanan web yaitu program yang metodenya dapat dipanggil dari jarak jauh. Tetapi standar mengharuskan deskripsi dilampirkan ke program ini, yang mengatakan bahwa "ya, Anda tidak salah - ini benar-benar layanan web dan Anda dapat memanggil metode ini dan itu darinya." Deskripsi ini diwakili oleh file XML lain yang memiliki format berbeda, yaitu WSDL. Itu. WSDL hanyalah file deskripsi XML untuk layanan web dan tidak ada yang lain.
Mengapa Anda bertanya begitu singkat? Anda tidak bisa mendapatkan rincian lebih lanjut? Mungkin Anda bisa, tetapi untuk ini Anda harus beralih ke buku seperti Mashnin T. "Java Web Services". Di sana, untuk 200 halaman pertama, ada deskripsi terperinci dari setiap tag standar SOAP dan WSDL. Haruskah saya melakukannya? Menurut saya tidak, tk. semua ini dibuat secara otomatis di Java, dan yang perlu Anda lakukan hanyalah menulis konten metode yang seharusnya dipanggil dari jarak jauh. Jadi, di Jawa ada API seperti JAX-RPC. Jika ada yang tidak tahu, ketika mereka mengatakan bahwa Java memiliki API ini dan itu, itu berarti ada paket dengan sekumpulan kelas yang merangkum teknologi yang dimaksud. JAX-RPC berkembang dari versi ke versi untuk waktu yang lama dan akhirnya berkembang menjadi JAX-WS. WS jelas merupakan singkatan dari WebService dan Anda mungkin berpikir bahwa ini adalah penggantian nama sederhana dari RPC menjadi kata yang populer akhir-akhir ini. Ini tidak terjadi, karena Sekarang layanan web telah menjauh dari ide asli dan memungkinkan Anda tidak hanya untuk memanggil metode jarak jauh, tetapi juga hanya mengirim pesan dokumen dalam format SOAP. Mengapa ini diperlukan, saya belum tahu, jawabannya tidak mungkin "berjaga-jaga, tiba-tiba akan dibutuhkan." Saya sendiri ingin belajar dari rekan-rekan yang lebih berpengalaman. Dan hal terakhir, kemudian ada juga JAX-RS untuk layanan web yang disebut RESTful, tetapi ini adalah topik untuk artikel terpisah. Pada titik ini, pengenalan dapat diakhiri, karena selanjutnya kita akan belajar bekerja dengan JAX-WS.

Pendekatan umum

Layanan web selalu memiliki klien dan server. Server adalah layanan web kami dan kadang-kadang disebut titik akhir (seperti titik akhir tempat pesan SOAP dari klien pergi). Kita perlu melakukan hal berikut:
  1. Jelaskan antarmuka layanan web kami
  2. Terapkan antarmuka ini
  3. Mulai layanan web kami
  4. Tulis klien dan panggil metode layanan web yang diperlukan dari jarak jauh
Layanan web dapat diluncurkan dengan cara yang berbeda: baik dengan mendeskripsikan kelas dengan metode utama dan meluncurkan layanan web secara langsung, sebagai server, atau menyebarkannya ke server seperti Tomcat atau lainnya. Dalam kasus kedua, kami sendiri tidak memulai server baru dan tidak membuka port lain di komputer, tetapi cukup memberi tahu wadah servlet Tomcat bahwa “kami menulis kelas layanan web di sini, tolong publikasikan, sehingga setiap orang yang menghubungi Anda dapat kami menggunakan layanan web ". Terlepas dari metode peluncuran layanan web, kami akan memiliki klien yang sama.

Server

Mari mulai IDEA dan buat proyek baru Buat Proyek Baru... Ayo masukkan nama HaloWebLayanan dan tekan tombol Berikutnya, lalu tombol Menyelesaikan... Di dalam folder src membuat paket ru.javarush.ws... Dalam paket ini, kami akan membuat antarmuka HelloWebService: paket ru. javarush. ws; // ini adalah anotasi, mis. cara untuk menandai kelas dan metode kita, // terkait dengan teknologi layanan web impor javax. jws. WebMetode; impor javax. jws. Layanan web; impor javax. jws. sabun mandi. SOAPMengikat; // kami mengatakan bahwa antarmuka kami akan berfungsi sebagai layanan web@Layanan web // katakan bahwa layanan web akan digunakan untuk memanggil metode@SOAPBinding (gaya = SOAPBinding. Gaya. RPC) antarmuka publik HelloWebService ( // kami mengatakan bahwa metode ini dapat dipanggil dari jarak jauh@WebMethod public String getHelloString (Nama string); ) Dalam kode ini, kelas WebService dan WebMethod disebut anotasi dan tidak melakukan apa pun selain menandai antarmuka dan metodenya sebagai layanan web. Hal yang sama berlaku untuk kelas SOAPBinding. Satu-satunya perbedaan adalah bahwa SOAPBinding adalah anotasi parameter. Dalam hal ini, parameter gaya digunakan dengan nilai yang menyatakan bahwa layanan web tidak akan bekerja melalui pesan dokumen, tetapi sebagai RPC klasik, mis. untuk memanggil metode. Mari kita implementasikan logika antarmuka kita dan buat kelas HelloWebServiceImpl di package.json kita. Omong-omong, saya perhatikan bahwa akhir kelas di Impl adalah konvensi di Jawa, yang menurutnya implementasi antarmuka dilambangkan dengan cara ini (Impl - dari kata implementasi, yaitu implementasi). Ini bukan persyaratan dan Anda bebas memberi nama kelas apa pun yang Anda inginkan, tetapi aturan bentuk yang baik mengharuskannya: package ru. javarush. ws; // anotasi yang sama seperti saat mendeskripsikan antarmuka, impor javax. jws. Layanan web; // tetapi digunakan di sini dengan parameter endpointInterface, // menentukan nama kelas yang sepenuhnya memenuhi syarat dari antarmuka layanan web kami@WebService (endpointInterface = "ru.javarush.ws.HelloWebService") kelas publik HelloWebServiceImpl mengimplementasikan HelloWebService (@Override public String getHelloString (Nama string) ( // hanya membalas salam kembali "Halo," + nama + "!" ; )) Mari kita mulai layanan web kita sebagai server independen, mis. tanpa keterlibatan Tomcat dan server aplikasi (ini adalah topik untuk diskusi terpisah). Untuk melakukan ini, dalam struktur proyek di folder src mari kita buat paket ru.javarush.endpoint, dan di dalamnya buat kelas HelloWebServicePublisher dengan metode utama: paket ru. javarush. titik akhir; // kelas untuk memulai server web dengan layanan web impor javax. xml. ws. Titik akhir; // kelas layanan web kami impor ru. javarush. ws. HelloWebServiceImpl; kelas publik HelloWebServicePublisher (public static void main (String... args) ( // memulai server web pada port 1986 // dan pada alamat yang ditentukan dalam argumen pertama, // memulai layanan web yang diteruskan dalam argumen kedua Titik akhir. mempublikasikan ( "http: // localhost: 1986 / wss / halo", HelloWebServiceImpl baru ()); )) Sekarang mari kita jalankan kelas ini dengan mengklik Shift + F10... Tidak ada yang muncul di konsol, tetapi server sedang berjalan. Anda dapat memverifikasi ini dengan mengetik di browser baris http: // localhost: 1986 / wss / hello? Wsdl. Halaman yang terbuka, di satu sisi, membuktikan bahwa server web (http: //) telah dimulai di komputer kami (localhost) pada port 1986, dan, di sisi lain, menunjukkan deskripsi WSDL dari layanan web kami. Jika Anda menghentikan aplikasi, deskripsi akan menjadi tidak dapat diakses, serta layanan web itu sendiri, jadi kami tidak akan melakukan ini, tetapi melanjutkan menulis klien.

Pelanggan

Di folder proyek src buat paket ru.javarush.client, dan di dalamnya kelas HelloWebServiceClient dengan metode utama: paket ru. javarush. klien; // diperlukan untuk mendapatkan deskripsi wsdl dan melaluinya // mencapai layanan web itu sendiri impor jawa. bersih. URL; // eksekusi seperti itu akan terjadi saat bekerja dengan objek URL impor jawa. bersih. MalformedURLException; // kelas untuk mengurai xml-ku dengan deskripsi wsdl // dan mencapai tag layanan di dalamnya impor javax. xml. ruang nama. QNama; impor javax. xml. ws. Melayani; // antarmuka layanan web kami (kami membutuhkan lebih banyak) impor ru. javarush. ws. HaloWebLayanan; kelas publik HelloWebServiceClient (public static void main (String args) melempar MalformedURLException ( // buat tautan ke deskripsi wsdl Url url = url baru ( "http: // localhost: 1986 / wss / halo? wsdl") ; // Kami melihat parameter konstruktor berikutnya di tag pertama dari deskripsi WSDL - definisi // lihat argumen pertama di atribut targetNamespace // lihat argumen ke-2 dalam atribut nama QName qname = new QName ("http: //ws.site/", "HelloWebServiceImplService"); // Sekarang kita dapat mencapai tag layanan dalam deskripsi wsdl, Layanan layanan = Layanan. buat (url, qname); // dan kemudian ke tag port bersarang, sehingga // dapatkan tautan ke objek layanan web yang jauh dari kami HelloWebService halo = layanan. getPort (kelas HelloWebService.); // Hore! Sekarang Anda dapat memanggil metode jarak jauh Sistem. keluar. println(halo.getHelloString("CodeGym")); )) Saya memberikan komentar maksimal pada kode dalam daftar. Saya tidak punya apa-apa untuk ditambahkan, jadi jalankan (Shift + F10). Kita akan melihat teks di konsol: Halo, CodeGym! Jika Anda tidak melihatnya, Anda mungkin lupa memulai layanan web.

Kesimpulan

Dalam topik ini, tamasya singkat ke layanan web disajikan. Sekali lagi, banyak dari apa yang saya tulis adalah dugaan saya tentang cara kerjanya, dan karena itu tidak boleh terlalu dipercaya. Saya akan berterima kasih jika orang yang berpengetahuan mengoreksi saya, karena dengan begitu saya akan belajar sesuatu. UPD.

Layanan web (layanan) - program yang mengatur interaksi antar situs. Informasi dari satu portal ditransfer ke yang lain.

Misalnya, ada maskapai penerbangan. Dia memiliki banyak penerbangan, masing-masing, banyak tiket. Ini mengirimkan informasi melalui layanan web ke situs agregator perjalanan. Seorang pengguna yang mengunjungi agregator akan dapat membeli tiket untuk maskapai ini di sana.

Contoh lain dari layanan web adalah situs pelacak cuaca yang berisi informasi tentang kondisi cuaca di kota atau negara tertentu secara keseluruhan. Informasi ini juga sering digunakan oleh pihak ketiga.

Informasi di Internet beragam. Situs web dikelola oleh sistem yang berbeda. protokol transmisi dan enkripsi yang berbeda digunakan. Layanan web memudahkan pertukaran informasi antar situs yang berbeda.

Arsitektur dan protokol layanan web

Anda dapat menentukan 3 contoh yang berinteraksi satu sama lain: katalog, kontraktor, dan pelanggan. Setelah membuat layanan, kontraktor mendaftarkannya ke dalam katalog, dan di sana pelanggan menemukan layanan tersebut.

Mekanisme pertukaran data terbentuk dalam deskripsi Deskripsi Layanan Web. Ini adalah spesifikasi yang mencakup format transportasi, tipe konten, protokol transportasi yang digunakan dalam pertukaran informasi antara pelanggan dan operator layanan.

Saat ini, beberapa teknologi paling sering digunakan untuk mengimplementasikan berbagai layanan web:

  1. TCP/IP adalah protokol yang dipahami oleh hampir semua peralatan jaringan, mulai dari mainframe hingga perangkat portabel dan PDA.
  2. HTML adalah bahasa markup tujuan umum yang digunakan untuk menampilkan konten pada perangkat konsumen.
  3. XML adalah alat universal untuk memproses semua jenis data. Protokol pertukaran informasi lainnya dapat bekerja atas dasar: SOAP dan WSDL.
  4. UDDI adalah sumber universal pengakuan, integrasi dan deskripsi. Bekerja, sebagai suatu peraturan, di jaringan pribadi dan belum menemukan distribusi yang memadai.

Fleksibilitas dari teknologi yang disajikan adalah dasar untuk memahami layanan web. Mereka berjalan pada teknologi standar yang independen dari vendor aplikasi dan sumber daya jaringan lainnya. Dapat digunakan di semua sistem operasi, server aplikasi, bahasa pemrograman, dll.

Keuntungan

  • Penciptaan kondisi yang diperlukan untuk interaksi komponen perangkat lunak terlepas dari platform.
  • Layanan web didasarkan pada protokol standar terbuka. Karena pengenalan XML, kesederhanaan pembentukan dan konfigurasi layanan web disediakan.
  • Penggunaan HTTP menjamin interoperabilitas antar sistem melalui akses jaringan.

Kekurangan

  • Performa rendah dan volume lalu lintas tinggi, dibandingkan dengan sistem RMI, CORBA, DCOM, karena penggunaan pesan XML dalam konteks teks.
  • Tingkat keamanan. Semua layanan web modern harus menerapkan pengkodean dan memerlukan otorisasi pengguna. Apakah HTTPS cukup di sini atau protokol yang lebih andal seperti Enkripsi XML, SAML, dll. diperlukan adalah masalah pengembangan.

Tugas layanan web

Layanan web dapat digunakan di banyak area.

transaksi B2B

Prosesnya langsung terintegrasi, tanpa partisipasi orang. Misalnya, pengisian ulang katalog toko online dengan produk baru. Mereka dibawa ke gudang, dan penjaga toko mencatat kedatangan di database. Informasi secara otomatis dikirimkan ke toko online. Dan pembeli, alih-alih menandai "Stok habis" pada kartu produk, melihat kuantitasnya.

Integrasi Layanan Perusahaan

Jika perusahaan menggunakan program perusahaan, maka layanan web akan membantu mengatur kolaborasi mereka.

Pembuatan sistem client-server

Layanan digunakan untuk menyesuaikan cara kerja klien dan server. Ini memberikan manfaat berikut:

  • Anda tidak dapat menjual perangkat lunak itu sendiri, tetapi membayar untuk akses ke layanan web;
  • lebih mudah untuk memecahkan masalah menggunakan perangkat lunak pihak ketiga;
  • lebih mudah untuk mengatur akses ke konten dan materi di server.

Layanan web adalah aplikasi yang menyederhanakan konfigurasi teknis interaksi sumber daya.

Saat ini layanan WEB digunakan hampir di mana-mana - mereka memberi kami informasi tentang penerbangan pesawat dan kereta api, nilai tukar, dan cuaca. Tidak mengherankan bahwa 1C juga memiliki kemampuan untuk membuat layanan WEB sendiri yang memungkinkannya bertindak sebagai pemasok dan konsumen. Mekanisme ini dibangun ke dalam platform 1C: Enterprise 8.3 dan pengembang bahkan dapat menambahkan objek layanan WEB mereka sendiri ke konfigurasi standar. Arsitektur mereka dibangun di atas seperangkat layanan yang memungkinkan pertukaran informasi dengan perangkat lunak lain.

Pembuatan layanan web 1C

Salah satu keunggulan utama layanan WEB 1C adalah tidak adanya kebutuhan untuk menyediakan akses langsung ke data keamanan informasi. Layanan web 1C yang dikonfigurasi dengan benar memungkinkan aplikasi lain menggunakan fungsi dari luar. Dalam kasus seperti itu, fungsi itu sendiri harus menentukan hak untuk menggunakan data sesuai dengan parameter yang ditentukan sesuai dengan aturan yang ditentukan oleh pengembang.

Bagaimana cara membuat layanan web di 1C?

Agar fungsi tertentu dari sistem 1C tersedia untuk perangkat lunak eksternal, urutan tindakan berikut harus dilakukan:

  1. Buka konfigurasi dan tambahkan objek layanan WEB di cabang pohon tertentu;
  2. Jelaskan semua operasi yang dapat dilakukan fungsionalitas kami. Deskripsi fungsi dibuat dalam modul dalam bahasa yang dibangun ke dalam 1C;
  3. Tambahkan deskripsi parameter fungsi layanan web. Harap dicatat bahwa tipe data dijelaskan dengan mempertimbangkan tipe mekanisme XDTO yang ada yang muncul di platform versi 8.1;
  4. Publikasikan layanan WEB yang dibuat di server. Mekanisme yang dibangun ke dalam platform 1C mendukung standar berikut:
  • SSL / TLS
  • WS-I BP

Contoh pembuatan layanan WEB sederhana

Untuk mendemonstrasikan dengan jelas pengoperasian mekanisme layanan WEB, mari buat contoh - fungsi yang menentukan panjang string yang dimasukkan. Perangkat lunak akan melewatkan string sebagai parameter kueri, dan fungsi yang dijelaskan dalam 1C akan mengembalikan jumlah karakter. Saat membuat, Anda harus ingat bahwa publikasi mekanisme ini akan memungkinkan berbagai perangkat lunak untuk mengaksesnya. Karena tidak semua perangkat lunak dapat memahami alfabet Cyrillic, kami akan memberi nama objek konfigurasi menggunakan karakter Latin.

Buka konfigurator, temukan cabang "WEB-services" di pohon dan tambahkan layanan baru "wa_LengthString". Anda juga perlu menambahkan operasi baru pada tab Operasi. Sebut saja "CalcLengthString", di properti, tentukan jenis nilai yang dikembalikan - int atau integer dan buat parameter "InputString" di dalamnya. Kami meninggalkan tipe nilai sebagai string.


Sekarang Anda perlu mendaftarkan tindakan fungsi CalcLengthString dalam modul layanan WEB. Untuk melakukan ini, buka properti dari fungsi yang dibuat dan klik tombol kaca pembesar di sebelah kanan bidang input "Nama prosedur". 1C akan secara otomatis membuat fungsi dalam modul layanan WEB kami dan membukanya sehingga kami dapat menjelaskan tindakan CalcLengthString. Mari kita manfaatkan ini dan tulis aksi fungsi - menentukan panjang string input.


Sebenarnya, ini melengkapi pembuatan layanan WEB paling sederhana. Sekarang Anda perlu "menempatkan" layanan ini di domain publik sehingga perangkat lunak pihak ketiga atau sistem 1C lainnya dapat menggunakan fungsi ini.

Agar kami dapat mempublikasikan layanan web yang dibuat dengan fungsinya, kami harus memiliki akses ke situs. Sebelum kita mulai memublikasikan layanan, kita perlu memeriksa nama file di properti modul wa_LengthString yang baru dibuat. Itu harus jelas, sederhana dan memiliki ekstensi "1cws".


Sekarang saatnya untuk mempublikasikan layanan WEB yang kita buat di server. Fitur ini muncul di platform versi 8.3, dan banyak perusahaan telah memahami manfaat penuh dari fungsi ini. Untuk mulai menerbitkan, Anda perlu membuka formulir "Administrasi / Penerbitan di server web ..." di konfigurator.


Di jendela yang terbuka, kita perlu mengonfigurasi layanan Web 1C dan mengisi bidang-bidang tertentu:

  • Nama. Menunjukkan folder di server web yang akan menyimpan deskripsi layanan web kami. Berhati-hatilah dengan huruf besar/kecil, karena terkadang server membedakan antara karakter huruf besar dan huruf kecil;
  • server web. Anda harus memilih server dari yang diinstal di komputer;
  • Katalog. Anda harus memilih jalur ke folder tempat penyimpanan data server web untuk menyiapkan koneksi. Hanya huruf Latin yang digunakan;
  • Dua tanda dari tipe "Boolean". Yang pertama berguna bagi kita jika kita perlu mengkonfigurasi akses melalui klien web ke konfigurasi. Untuk mempublikasikan layanan 1C, Anda harus memberi tanda kedua.

Tetap hanya untuk memeriksa bahwa layanan WEB yang diperlukan memiliki kotak centang di kolom pertama, dan klik "Terbitkan".


Karena mekanisme ini masih cukup baru, Anda mungkin mengalami kesalahan dalam bentuk "Terjadi kesalahan saat melakukan operasi file ...". Dalam hal ini, Anda hanya perlu mengulangi tombol "Terbitkan". Dalam kebanyakan kasus, ini membantu, dan Anda akan disajikan dengan pesan bahwa layanan web telah diterbitkan.

Ru // ws / .1cws?

Menanggapi permintaan alamat seperti itu, browser harus menampilkan struktur file XML. Jika Anda melihat halaman kosong, kesalahan atau karakter yang tidak dapat dipahami (masalah penyandian), maka Anda perlu memeriksa semua tindakan lagi. Juga tidak akan berlebihan untuk memastikan bahwa server dikonfigurasi dengan benar dan Anda memiliki akses ke sana. Setelah publikasi berhasil, layanan WEB 1C akan dapat menggunakan aplikasi pihak ketiga.

Layanan WEB - (dari layanan web bahasa Inggris, sinonim - layanan online). Layanan web dipahami sebagai layanan yang disediakan di Internet menggunakan program khusus. Misalnya, layanan seperti: hosting, email, penyimpanan berbagai informasi (file, bookmark) di Internet, kalender, dll. adalah umum. Properti penting dari layanan web adalah tidak bergantung pada penyedia, komputer, atau browser Anda - Anda dapat bekerja dengan data Anda di mana pun di dunia yang dapat Anda akses.

Knyazev A.A. Kamus Ensiklopedis Media. - Bishkek: Rumah penerbitan KRSU... A.A. Knyazev. 2002.

Lihat apa itu "layanan WEB" di kamus lain:

    layanan web

    layanan web- Layanan web. Layanan web, layanan web adalah sistem perangkat lunak yang diidentifikasi oleh string; antarmuka didefinisikan dalam XML dan ditransmisikan menggunakan protokol Internet. Layanan web adalah unit modularitas ketika digunakan ... ... Wikipedia

    Protokol Komunikasi Cache Web- (WCCP) Protokol Pengalihan Konten Cisco. Menyediakan mekanisme untuk mengarahkan arus lalu lintas secara real time. Memiliki penskalaan bawaan, penyeimbangan beban, toleransi kesalahan. Cisco IOS ... ... Wikipedia

    Layanan Peta Web- (WMS rus. Layanan peta web) protokol standar untuk melayani gambar dengan georeferensi melalui Internet, yang dihasilkan oleh server kartografi berdasarkan data dari database GIS. Standar ini dikembangkan dan untuk pertama kalinya ... ... Wikipedia

    Web Hotel Salvador- (Salvador, Brazil) Kategori Hotel: Hotel Bintang 2 Alamat: Rua das Alfazemas… Hotel Directory

    Web Hotel Aparecida- (Aparecida, Brazil) Kategori Hotel: Hotel Bintang 3 Alamat: Av. Isaac Ferrei… Direktori hotel

    arsitektur berorientasi layanan- Proses bisnis organisasi diimplementasikan berdasarkan layanan yang disediakan oleh aplikasi Pelanggan yang ada. Jika aplikasi tidak mendukung kemampuan untuk menyediakan layanan (Layanan Web), saat produk disebarkan ... ... Panduan penerjemah teknis

    Web 2

    Web 2.0- Konsep Kunci Terkait dengan Web 2.0 Web 2.0 (seperti yang didefinisikan oleh Tim O'Reilly) adalah metode perancangan sistem yang, dengan memperhitungkan interaksi jaringan, menjadi lebih baik jika semakin banyak orang menggunakannya. Fitur web 2.0. adalah prinsipnya ... ... Wikipedia

    Situs web- Permintaan "situs" dialihkan ke sini. cm. juga arti lainnya. Situs web (dari Situs Web bahasa Inggris: web web dan situs "tempat") dalam jaringan komputer yang disatukan di bawah satu nama domain atau alamat IP) adalah kumpulan dokumen orang pribadi atau ... ... Wikipedia

Buku

  • Teknologi informasi dalam industri pariwisata, V. N. Shitov. Manual ini membahas secara rinci teknologi komputer tujuan umum menggunakan paket Microsoft Office 2010 populer dan kompleks alternatif, penggunaan ... Beli seharga 546 rubel
  • 75 solusi siap pakai untuk situs Web Anda di PHP, Steinmetz U., Ward B .. Setiap orang yang membuat atau akan membuat situs webnya sendiri pasti menghadapi sejumlah tugas dan kesulitan: bagaimana membuat blog di situs .. .... "mengacaukan" pemungutan suara, tutup pasti ....

Berdasarkan arsitektur layanan web, kami membuat dua komponen berikut sebagai bagian dari implementasi layanan web:

Penyedia layanan atau penerbit

Ini adalah penyedia layanan web. Penyedia layanan mengimplementasikan layanan ini dan membuatnya tersedia di Internet atau intranet. Kami akan menulis dan menerbitkan layanan web sederhana menggunakan .NET SDK.

Penyedia layanan atau konsumen

Setiap konsumen layanan web. Pemohon menggunakan layanan web yang ada dengan membuka koneksi jaringan dan mengirimkan permintaan XML. Kami juga akan menulis dua permintaan untuk layanan web: satu konsumen web (aplikasi ASP.NET) dan konsumen lain berdasarkan aplikasi Windows.

Di bawah ini adalah contoh pertama kami dari layanan web yang bertindak sebagai penyedia layanan dan menyediakan dua metode (tambah dan SayHello) sebagai layanan web untuk digunakan oleh aplikasi. Ini adalah template standar untuk layanan web. Ekstensi .asmx digunakan dalam layanan NET. Perhatikan bahwa metode yang diekspos sebagai layanan web memiliki atribut WebMethod. Simpan file ini sebagai FirstService.asmx di direktori virtual IIS (seperti yang dijelaskan dalam menyiapkan IIS, misalnya c: \ MyWebSerces).

Layanan Pertama.asmx

<%@ WebService language = "C" class = "FirstService" %>menggunakan Sistem; menggunakan System.Web.Services; menggunakan System.Xml.Serialization; FirstService kelas publik: WebService (public int Add (int a, int b) (return a + b;) public String SayHello () (kembalikan "Hello World";))

Untuk menguji layanan web, itu harus dipublikasikan. Layanan web dapat dipublikasikan baik di intranet atau di Internet. Kami akan mempublikasikan layanan web ini ke IIS yang berjalan di mesin lokal. Mari kita mulai dengan menyiapkan IIS.

  • Buka "Mulai" → "Pengaturan" → "Panel Kontrol" → "Alat Administratif" → "Manajer Layanan Internet".
  • Perluas dan klik kanan situs web default; pilih "Baru" → "Direktori Virtual". Wizard Direktori Virtual Baru akan terbuka. Klik Berikutnya.
  • Layar "Direktori Virtual" muncul. Masukkan nama direktori virtual. Misalnya, MyWebServices. dan klik Berikutnya.
  • Layar "Direktori Konten Situs Web" muncul.
  • Masukkan nama direktori untuk direktori virtual. Misalnya c:\MyWebServices Klik Next.
  • Layar "Otorisasi Akses" muncul. Ubah pengaturan sesuai kebutuhan Anda. Mari kita pertahankan pengaturan default untuk latihan ini.
  • Klik "Selanjutnya". Ini melengkapi konfigurasi IIS.
  • Klik Selesai untuk menyelesaikan penyiapan.

Untuk memeriksa apakah IIS dikonfigurasi dengan benar, salin file HTML (seperti x.html) ke direktori virtual (C: \ MyWebServices) yang dibuat di atas. Sekarang buka Internet Explorer dan masukkan http: //localhost/MyWebServices/x.html. Itu harus membuka file x.html.

Catatan... Jika tidak berhasil, coba ganti localhost dengan alamat IP perangkat Anda. Jika masih tidak berhasil, periksa apakah IIS sedang berjalan; Anda mungkin perlu mengkonfigurasi ulang IIS dan direktori virtual.

Untuk menguji layanan web ini, salin FirstService.asmx ke direktori virtual IIS yang dibuat di atas (C:\MyWebServices). Buka layanan web di Internet Explorer (http: //localhost/MyWebServices/FirstService.asmx). Itu harus membuka halaman layanan web. Halaman tersebut harus tertaut ke dua metode yang kami sediakan sebagai layanan web di aplikasi kami. Selamat! Anda telah menulis layanan web pertama Anda!

Menguji layanan web

Seperti yang baru saja kita lihat, mudah untuk menulis layanan web di .NET Framework. Menulis layanan web juga mudah di .NET; Namun, itu sedikit lebih aktif. Seperti yang dinyatakan sebelumnya, kami akan menulis dua jenis konsumen layanan: satu situs web dan pengguna lain berdasarkan aplikasi Windows. Mari kita tulis konsumen layanan web pertama kami.

Layanan web

Tulislah web konsumen seperti di bawah ini. Sebut saja WebApp.aspx. Harap dicatat bahwa ini adalah aplikasi ASP.NET. Simpan ini di direktori virtual layanan web (c: \ MyWebServices \ WebApp.axpx). Aplikasi ini memiliki dua kotak teks yang digunakan untuk mendapatkan nomor dari pengguna untuk ditambahkan. Ini memiliki tombol Jalankan tunggal yang, ketika diklik, mendapatkan layanan web Tambah dan SayHello.

WebApp.axpx

<%@ Page Language="C#" %>

Nomor Pertama untuk Ditambahkan: 4< /asp:TextBox>

Nomor Kedua Untuk Ditambahkan: 5

Hasil Layanan Web -

Halo dunia layanan : Label< /asp:Label>

Tambahkan Layanan : & Label

Setelah membuat konsumen, kita perlu membuat proxy untuk menggunakan layanan web. Pekerjaan ini dilakukan secara otomatis oleh Visual Studio .NET untuk kami saat mereferensikan layanan web yang ditambahkan. Berikut adalah langkah-langkah yang harus diikuti:

  • Buat proxy untuk menggunakan layanan web. Proxy dibuat menggunakan utilitas WSDL yang disediakan dengan .NET SDK. Utilitas ini mengekstrak informasi dari layanan web dan membuat server proxy. Proxy hanya berlaku untuk layanan web tertentu. Jika Anda perlu menggunakan layanan web lain, Anda juga perlu membuat proxy untuk layanan tersebut. Visual Studio .NET secara otomatis membuat proxy ketika referensi layanan web ditambahkan. Buat proxy untuk layanan web menggunakan utilitas WSDL yang disediakan dengan .NET SDK. Ini akan membuat file FirstSevice.cs di direktori saat ini. Kita perlu mengkompilasinya untuk membuat FirstService.dll (proxy) untuk layanan web.
  • c:> WSDL http: //localhost/MyWebServices/FirstService.asmx?
  • c:> csc / t: perpustakaan FirstService.cs
  • Tempatkan proxy yang dikompilasi di direktori bin dari direktori virtual layanan web (c: \ MyWebServices \ bin). Layanan Informasi Internet (IIS) mencari direktori ini untuk server proxy.
  • Buat konsumen jasa seperti kami. Perhatikan bahwa objek proxy layanan web dibuat pada konsumen. Server proxy ini menangani interaksi dengan layanan.
  • Masukkan URL konsumen di IE untuk mengujinya (misalnya, http: //localhost/MyWebServices/WebApp.aspx).

Konsumen Layanan Web Berbasis Aplikasi Windows

Menulis aplikasi layanan web berbasis aplikasi Windows sama seperti menulis aplikasi Windows lainnya. Anda hanya perlu membuat proxy (yang sudah kami lakukan) dan merujuk proxy ini saat mengkompilasi aplikasi Anda. Di bawah ini adalah aplikasi Windows kami yang menggunakan layanan web. Aplikasi ini membuat objek layanan web (proxy, tentu saja) dan memanggil metode SayHello dan Add di atasnya.

WinApp.cs

menggunakan Sistem; menggunakan System.IO; namespace SvcConsumer (kelas SvcEater (public static void Main (String args) (FirstService mySvc = new FirstService()); Console.WriteLine ("Memanggil Hello World Service:" + mySvc.SayHello ()); Console.WriteLine ("Memanggil Add ( 2, 3) Layanan: "+ mySvc.Add (2, 3) .ToString ());)))

Kompilasi dengan c: \> csc /r:FirstService.dll WinApp.cs. Ini akan membuat file WinApp.exe. Jalankan untuk menguji aplikasi dan layanan web Anda.

Sekarang pertanyaannya adalah, bagaimana Anda bisa yakin bahwa aplikasi ini benar-benar memanggil layanan web?

Sangat mudah untuk memeriksa. Hentikan server web Anda sehingga layanan web tidak dapat dihubungi. Sekarang jalankan aplikasi WinApp. Ini akan melempar pengecualian saat runtime. Sekarang mulai server web lagi. Ini harus bekerja.