Layanan web apa yang ada. Apa itu layanan web? Implementasi teknis layanan web

Layanan web (layanan) adalah 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 mentransmisikan informasi melalui layanan web ke situs agregator perjalanan wisata. Pengguna yang masuk ke agregator akan dapat membeli tiket maskapai ini di sana.

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

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

Arsitektur dan protokol layanan web

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

Mekanisme pertukaran data dibentuk dalam Web Services Description. Ini adalah spesifikasi yang mencakup format penerusan, tipe konten, protokol transport yang digunakan dalam pertukaran informasi antara pelanggan dan transporter layanan.

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

  1. TCP/IP merupakan protokol yang dipahami oleh hampir semua orang peralatan jaringan, dari mainframe ke perangkat portabel dan PDA.
  2. HTML adalah bahasa markup universal yang digunakan untuk menampilkan konten ke perangkat konsumen.
  3. XML adalah alat universal untuk menangani semua jenis data. Protokol pertukaran informasi lainnya juga dapat bekerja berdasarkan itu: SOAP dan WSDL.
  4. UDDI adalah sumber pengakuan, integrasi, dan deskripsi universal. Ini berfungsi, sebagai aturan, di jaringan pribadi dan belum menemukan distribusi yang memadai.

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

Keuntungan

  • Penciptaan kondisi yang diperlukan untuk interaksi komponen perangkat lunak, apa pun platformnya.
  • Layanan web didasarkan pada protokol standar terbuka. Melalui pengenalan XML, mudah untuk membuat dan mengkonfigurasi layanan web.
  • Penggunaan HTTP menjamin interaksi sistem melalui akses antar jaringan.

kerugian

  • Kinerja rendah dan lalu lintas dalam jumlah besar, 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 diperlukan protokol yang lebih andal, seperti Enkripsi XML, SAML, dll., Diputuskan selama pengembangan.

Tugas layanan web

Layanan web dapat digunakan di banyak area.

transaksi B2B

Integrasi proses berjalan sekaligus, tanpa partisipasi orang. Misalnya memperbarui katalog toko online dengan produk baru. Mereka dibawa ke gudang, dan penjaga toko menandai kedatangan di database. Informasi secara otomatis ditransfer ke toko online. Dan pembeli, alih-alih menandai "Stok Habis" pada kartu produk, melihat jumlahnya.

Integrasi layanan perusahaan

Jika perusahaan menggunakan program korporat, maka layanan web akan membantu mengatur kerja sama mereka.

Pembuatan sistem client-server

Layanan digunakan untuk menyesuaikan operasi klien dan server. Ini memberi Anda manfaat berikut:

  • tidak bisa berjualan sendiri perangkat lunak, tetapi buat akses berbayar ke layanan web;
  • lebih mudah untuk memecahkan masalah menggunakan perangkat lunak pihak ketiga;
  • lebih mudah mengatur akses ke konten dan materi server.

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

Mekanisme 1C:Enterprise Web Services didasarkan pada penggunaan objek metadata dengan nama yang sama, yaitu. objek konfigurasi dari cabang "Layanan web".

1. DEFINISI UMUM

Mari kita coba memberikan definisi umum dari istilah "Layanan Web".

web-melayani adalah teknologi jaringan yang menyediakan antarprogram interaksi(antara aplikasi yang berbeda) berdasarkan standar web. Layanan web memungkinkan untuk mengakses dari satu aplikasi ke aplikasi lainnya dan pada saat yang sama menjalankan fungsi tertentu.

Layanan web diidentifikasi oleh string URI (Uniform Resource Identifier) ​​- pengidentifikasi sumber daya seragam (ini adalah string karakter yang memungkinkan Anda mengidentifikasi sumber daya).

Layanan web memiliki antarmuka pemrograman yang disajikan dalam format WSDL(Bahasa Deskripsi Layanan Web) - bahasa untuk mendeskripsikan layanan web dan mengaksesnya, berdasarkan bahasa XML (spesifikasi http://www.w3.org/TR/wsdl). Dirancang untuk tampilan terpadu antarmuka eksternal layanan web dan digunakan untuk memberi tahu program lain bahwa program ini memiliki "layanan" seperti itu (yaitu program pertama di situs web menjabarkan informasi tentang layanannya dalam format file WSDL).

Sistem lain berinteraksi dengan layanan web dengan bertukar pesan SOAP (Simple Object Access Protocol) - protokol untuk bertukar pesan terstruktur dalam lingkungan komputasi terdistribusi (http://www.w3.org/TR/soap spesifikasi). Seperti protokol berbasis teks lainnya, SOAP dapat digunakan dengan protokol lapisan aplikasi apa pun: SMTP, FTP, HTTPS, dan lainnya, tetapi paling sering SOAP digunakan melalui HTTP.

Gambar 1. Konsep layanan web.

SOAP digunakan untuk pengiriman pesan XML sewenang-wenang dan panggilan prosedur jarak jauh (RPC).

Dengan demikian, antara layanan web dan aplikasi, dokumen XML dipertukarkan dalam bentuk pesan. Standar layanan web menentukan:

Format pesan, antarmuka tempat pesan dikirim;

Aturan untuk mengikat konten pesan ke aplikasi yang mengimplementasikan layanan dan sebaliknya;

Mekanisme untuk menerbitkan dan mencari antarmuka.

Penggunaan web service yang paling sederhana dan jelas adalah untuk mendapatkan data referensi dari layanan publik yang tersedia di Internet. Misalnya, Aeroflot memberikan informasi tentang penerbangannya melalui layanan Web, Bank Rusia - informasi tentang nilai tukar, sekuritas, organisasi kredit - ada banyak pilihan.

2. WEB-LAYANAN DALAM SISTEM "1C: ENTERPRISE"

Solusi aplikasi 1C:Enterprise 8 dapat berupa:

Penyedia Layanan Web;

Dalam sistem 1C:Enterprise 8, layanan Web adalah salah satu mekanisme platform yang digunakan untuk integrasi dengan sistem informasi lain dan aplikasi 1C:Enterprise 8 di antara mereka sendiri.

Dengan kata lain, 1C:Enterprise dapat mengekspor fungsinya melalui layanan Web. Definisi mereka diatur dalam pohon konfigurasi dan tersedia untuk sewenang-wenang sistem Informasi dengan menerbitkannya di server web.

Mekanisme layanan Web di 1C: Perusahaan adalah sarana pendukung Arsitektur Berorientasi Layanan (SOA), yang berarti bahwa program menggunakan "layanan" untuk bertukar data satu sama lain.

Agar fungsionalitas 1C: Perusahaan tersedia untuk konsumen eksternal layanan Web, Anda perlu melakukan hal berikut:

Buat jumlah layanan Web yang diperlukan dalam konfigurasi;

Membuat layanan Web adalah:

Selain pohon metadata dari objek konfigurasi layanan Web;

Deskripsi operasi yang dapat dilakukan layanan Web ini;

Deskripsi parameter operasi.

Objek konfigurasi layanan Web berisi modul yang membuat prosedur dalam bahasa bawaan yang dijalankan saat operasi layanan Web tertentu dipanggil. Tipe parameter operasi layanan web dijelaskan menggunakan tipe XDTO dan dapat berupa nilai XDTO atau objek XDTO.

Panggilan ke layanan Web berlangsung seperti ini:

Koneksi yang sesuai ke basis info dipilih dari kumpulan koneksi; dengan tidak adanya koneksi yang diperlukan, koneksi dibuat;

Sesi baru dibuat;

Metode layanan Web yang diminta dipanggil.

Mekanisme layanan Web yang diimplementasikan dalam 1C:Enterprise mendukung standar berikut:

Profil Dasar WS-I 1.1;

SSL 3.0/TLS 1.0.

3. MEMPELAJARIWEB-LAYANAN DALAM SISTEM "1C: ENTERPRISE"

Layanan web adalah program yang dapat diakses oleh program lain melalui Internet (http). Misalnya, Anda memiliki fungsi yang menyediakan teks HTML. Tujuan dari aplikasi ini adalah browser web yang menampilkan hasil dan seseorang dapat dengan mudah membaca teks ini di halaman.

Di sisi lain, target audiens dari layanan web adalah program lain atau layanan web lain yang menggunakan data yang disajikan oleh layanan web tersebut. Biasanya, hasilnya dalam bahasa standar yang dapat dipahami oleh program lain. Ambil contoh di atas, jika layanan web mengeluarkan teks dalam format XML, maka layanan web lain yang dapat membaca atau memahami XML dapat menggunakan keluaran tersebut.

Manfaat utama dari web service adalah aplikasi dapat ditulis dalam bahasa apapun, tetapi mereka dapat berkomunikasi dan berkomunikasi satu sama lain melalui web service. Aplikasi perangkat lunak yang ditulis dalam bahasa pemrograman yang berbeda dan berjalan pada platform yang berbeda dapat menggunakan layanan web untuk pertukaran data melalui Internet (HTTP). Interaksi ini (misalnya, antara Java dan Python, atau aplikasi Windows dan Linux) dikaitkan dengan penggunaan standar terbuka (XML, SOAP, HTTP).

  • SOAP (Protokol Akses Objek Sederhana)
  • UDDI (Deskripsi, Penemuan, dan Integrasi Universal)
  • WSDL (Bahasa Deskripsi Layanan Web)

Berapa banyak jenis layanan web yang ada?

Pada dasarnya, ada dua jenis layanan web, Simple Object Access Protocol (SOAP) dan Representational State Transfer (REST).

  • Layanan web SOAP menerima permintaan XML dan menghasilkan output XML.
  • Layanan web REST lebih umum dan dapat menerima XML serta JSON sebagai permintaan dan menghasilkan keluaran dalam XML serta JSON atau bahkan HTML

Masalah ini dapat dipelajari lebih detail tentang masalah kami.

Kami telah meninjau konsep umum mekanisme « web-jasa". Mari menyegarkan beberapa pengetahuan.

Layanan web digunakan untuk bertukar data antara server dan klien; format XML digunakan untuk "mengemas" data untuk saling pengertian antara kedua peserta dalam komunikasi.

BABSaya

CONTOH IMPLEMENTASIWEB-LAYANAN DALAM SISTEM "1C: ENTERPRISE"

SEBUAH TUGAS: Perlu untuk membuat layanan web, merujuk pada klien mana yang dapat menentukan semua informasi yang diperlukan untuk aplikasi mereka.

Tugas tersebut adalah demonstrasi dan hanya berfungsi sebagai contoh untuk memahami dan mempelajari mekanismenyaweb-jasa.

KEPUTUSAN:

Langkah 1. Mari kita buat yang baru basis informasi tanpa konfigurasi untuk mengembangkan konfigurasi baru.

Langkah 2 Mari tambahkan beberapa objek baru ke konfigurasi

Direktori "Klien";

Dokumen "Aplikasi";

Pencacahan "Status Aplikasi".

Langkah 3 Mari buat paket XDTO baru.

Mengapa dan mengapa kami membuat paket XDTO? Anda dapat membaca lebih lanjut tentang penggunaan mekanisme XDTO di "Bab 16. Panduan Pengembang" dan.

Mari kita perhatikan secara singkat hanya bahwa mekanisme XDTO cara universal representasi data untuk interaksi dengan berbagai sumber data eksternal dan sistem perangkat lunak.

Dalam kasus kami, paket XDTO dibuat untuk menjelaskan nilai kembalian dari layanan web.

Luaskan cabang "Umum" → "Paket XDTO" → Tambah…

Tentukan nama paket XDTO " DocumentsData' dan namespace-nya http://localhost/request atau http://192.168.1.76/request (untuk kemudahan pemahaman dan pembelajaran, kami tentukan alamat IP lokal komputer tempat server web diinstal (server web yang didukung: IIS atau Apache)). Setiap layanan Web dapat diidentifikasi secara unik dengan namanya dan URI dari namespace tempatnya berada.

Paket kami berisi dua jenis objek XDTO:

1) Pelanggan- untuk mentransfer data elemen direktori "Klien".

- Nama ;

2) dokumen- untuk mentransfer data dokumen "Aplikasi"

Jenis objek XDTO ini akan berisi properti berikut:

- Pelanggan- Jenis pelanggan dari ruang nama http://192.168.1.76/request; adalah referensi ke objek XDTO yang kami definisikan di atas;

- Status- tipe string dari namespace http://www.w3.org/2001/XMLSchema;

- Nomor- ketik string dari namespace http://www.w3.org/2001/XMLSchema.

Langkah 4 Tambahkan layanan Web baru ke konfigurasi

Perluas cabang "Umum" → "Layanan web" → Tambah ...

Untuk layanan Web, tentukan nilai properti berikut:

Nama - DocumentsData

Ruang Nama URI - http://192.168.1.76/permintaan

Paket XDTO - DocumentsDataatauhttp://192.168.1.76/permintaan

Nama File Publikasi - request.1cws

Langkah 5 Untuk layanan Web yang dibuat, kami mendefinisikan operasi " getdata»

Nilai properti operasi:

Jenis pengembalian - Dokumen (http://192.168.1.76/request)

Nilai yang mungkin kosong - BENAR

Nama prosedur - getdata.

Langkah 6 Operasi getdata tentukan parameter Pelanggan dengan nilai properti berikut:

Jenis nilai - jenis rangkaian dari ruang nama http://www.w3.org/2001/XMLSchema;

Arah perpindahan - memasukkan.

Langkah 7 Mari buka modul layanan Web yang dibuat dan tempatkan fungsi Get() di dalamnya, yang akan dijalankan saat layanan Web ini dipanggil.

Fungsi GetData(Pelanggan) // Dapatkan tipe objek XDTO ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Document"); // Dapatkan klien ClientReference = Directories.Clients.FindByName(Customer); Jika Tidak ValueFilled(ClientReference) Kemudian Return Undefined; Berakhir jika; Permintaan = Permintaan Baru; Request.Text = "SELECT FIRST 1 | Ticket.Reference, | REPRESENTATION(Ticket.Status) Status AS, | Ticket.Number |FROM | Document.Ticket AS Ticket |WHERE | Ticket.Client = &Klien"; Request.SetParameter("Klien", Referensi Klien); QueryResult = Query.Jalankan(); Jika QueryResult.Empty() Lalu Kembalikan Tidak Terdefinisi; Berakhir jika; Seleksi = QueryResult.Select(); Seleksi.Berikutnya(); Dokumen = Seleksi.Referensi.GetObject(); // Buat objek tiket XDTO Ticket = FactoryXDTO.Create(TicketType); Application.Numder = Contoh.Number; Klien = FactoryXDTO.Create(ClientType); Client.Name = ClientReference.Name; Aplikasi.Pelanggan = Klien; Aplikasi.Status = Pilihan.Status; // Permintaan pengembalian Permintaan pengembalian; Fungsi Akhir

Langkah 8 Mari terbitkan layanan Web yang dibuat di server web.

Item menu Configurator: "Administrasi" → "Menerbitkan di server Web".

Pada tab "Layanan web", atur bendera "Publikasikan Layanan Web" dan centang juga kotak di sebelah layanan Web baru kami.

BABII

CONTOH REFERENSI UNTUKWEB- 1C: LAYANAN PERUSAHAAN DARI APLIKASI PIHAK KETIGA

Tujuan utama mekanisme layanan Web di 1C:Enterprise adalah untuk mentransfer data yang diperlukan ke aplikasi pihak ketiga.

Mari pertimbangkan contoh pengembangan aplikasi di Delphi yang memanggil layanan web kami dari bagian pertama artikel ini.

Langkah 1. Mari buat proyek baru dan tempatkan beberapa kontrol pada formulir

Bidang teks - digunakan untuk menampilkan informasi yang diterima dari layanan web;

Dua tombol - membersihkan bidang teks dan mengakses layanan web;

Kolom input adalah parameter yang diteruskan ke layanan web.

Langkah 2 Mengimpor file WSDL

Hasilnya, kami mendapatkan modul baru meminta(kami mendefinisikan nama seperti itu secara langsung di 1C). Modul ini berisi semua informasi yang diperlukan pada layanan web.

Langkah 3 Tulis penangan panggilan layanan web

Variabel DocumentDataPortType sudah ditentukan dalam modul meminta

Langkah 4 Luncurkan aplikasi dan periksa.

BABAKU AKU AKU

CONTOH REFERENSI UNTUKWEB-LAYANAN DALAM SISTEM "1C: ENTERPRISE"

Langkah 1. Mari buat pemrosesan eksternal baru bernama "WEB_Service"

Langkah 2 Untuk pemrosesan, kami mendefinisikan bentuk baru

Langkah 3 Tentukan beberapa detail untuk formulir

Klien - ketik "String"

ClientReturn - ketik "String"

NumberReturn - ketik "String"

StatusReturn - tipe "String".

Kami akan menampilkan rincian pada formulir.

Langkah 4 Mari tambahkan perintah formulir " Untuk mendapatkan data»

Tentukan penangan perintah

&Prosedur OnClient GetData(Perintah) GetDataOnServer(Klien); Akhir Prosedur Prosedur GetDataOnServer(Klien) // Buat proxy WS berdasarkan tautan dan jalankan operasi Get() Definition = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = New WSProxy(Definisi, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData(Klien); Jika OrderData = Undefined Then ClientReturn = "Undefined"; StatusReturn = "Belum ditentukan"; ReturnNumber = "Tidak terdefinisi"; Kembali; Berakhir jika; CustomerReturn = RequestData.Customer.Name; StatusReturn = RequestData.Status; ReturnNumber = RequestData.Numder; Prosedur Akhir

1C: Perusahaan dapat menggunakan layanan web yang disediakan oleh penyedia lain dengan dua cara:

Dengan menggunakan statis tautan yang dibuat di pohon konfigurasi;

"sebuah tambahan": kecepatan kerja yang tinggi;

"minus": mengimpor ulang deskripsi WSDL menggunakan konfigurator dan menyimpan konfigurasi yang diubah.

Dengan menggunakan dinamis tautan yang dibuat melalui bahasa bawaan

(masing-masing, "kontra" statis untuk yang dinamis adalah "plus")

BABIV

DEBUGING LAYANAN WEB DI 1C: SISTEM PERUSAHAAN

Untuk layanan web lokal, Anda memerlukan:

Langkah 1. Masukan ke klien di mana sistem 1C diluncurkan file webservicecfg.xml dengan konten berikut

Langkah 2 Untuk mengajukan bawaan. vrd publikasikan config add baris

Langkah 3 Di konfigurator, pilih item menu

"Debug" → "Koneksi" → "Koneksi otomatis" → "Layanan web di server"

Langkah 4 Klik tombol "OK".

Untuk versi server, Anda juga perlu menjalankan server 1c dalam mode debug dengan kuncinya / debug