خدمات وب XML مروری بر فناوری

عنوان موضوع واقعاً یک سؤال است، زیرا من خودم نمی دانم چیست و برای اولین بار سعی می کنم در چارچوب این مقاله با آن کار کنم. تنها چیزی که می‌توانم تضمین کنم که کد زیر کار می‌کند، اما عبارات من فقط فرضیات و حدس‌هایی درباره نحوه درک من از همه اینها خواهند بود. پس بزن بریم ...

معرفی

ما باید با اینکه مفهوم وب سرویس برای چه چیزی ایجاد شده است شروع کنیم. تا زمانی که این مفهوم ظاهر شد، فناوری‌هایی در دنیا وجود داشت که به برنامه‌ها اجازه می‌داد تا از راه دور تعامل داشته باشند، جایی که یک برنامه می‌توانست روشی را در برنامه دیگری فراخوانی کند، که می‌توان آن را بر روی رایانه‌ای واقع در شهر یا حتی یک کشور دیگر اجرا کرد. همه اینها به اختصار RPC (Remote Procedure Calling) نامیده می شود. به عنوان مثال می توان به فناوری های CORBA و برای جاوا - RMI (Remote Method Invoking) اشاره کرد. و به نظر می رسد همه چیز در آنها خوب است، به خصوص در CORBA، tk. شما می توانید با آن در هر زبان برنامه نویسی کار کنید، اما چیزی هنوز گم شده بود. من معتقدم که نقطه ضعف CORBA این است که از طریق برخی از پروتکل های شبکه خود به جای HTTP ساده کار می کند، که در هر فایروال می خزد. ایده پشت وب سرویس ایجاد یک RPC بود که در بسته های HTTP بچسبد. به این ترتیب توسعه استاندارد آغاز شد. مفاهیم اساسی این استاندارد چیست:
  1. صابون... قبل از فراخوانی یک روش راه دور، باید این تماس را در یک فایل SOAP XML توضیح دهید. SOAP به سادگی یکی از بسیاری از نشانه گذاری های XML است که در خدمات وب استفاده می شود. هر چیزی که می خواهیم از طریق HTTP به جایی ارسال کنیم، ابتدا به یک توضیحات XML SOAP تبدیل می شود، سپس در بسته HTTP قرار می گیرد و از طریق TCP / IP به رایانه دیگری در شبکه ارسال می شود.
  2. WSDL... یک وب سرویس وجود دارد یعنی برنامه ای که روش های آن را می توان از راه دور فراخوانی کرد. اما استاندارد ایجاب می کند که توضیحاتی به این برنامه ضمیمه شود که بگوید "بله، اشتباه نمی کنید - این واقعاً یک وب سرویس است و می توانید روش های فلان را از آن فراخوانی کنید." این توضیحات با یک فایل XML دیگر که فرمت متفاوتی دارد، یعنی WSDL نشان داده می شود. آن ها WSDL فقط یک فایل توضیحات XML برای یک وب سرویس است و نه چیز دیگری.
چرا اینقدر کوتاه می پرسی؟ نمی توانید جزئیات بیشتری کسب کنید؟ احتمالاً می توانید، اما برای این کار باید به کتاب هایی مانند Mashnin T. "Java Web Services" مراجعه کنید. در آنجا، برای 200 صفحه اول، شرح مفصلی از هر برچسب استانداردهای SOAP و WSDL وجود دارد. آیا باید آن را انجام دهم؟ به نظر من، نه، tk. همه اینها به طور خودکار در جاوا تولید می شوند و تنها کاری که باید انجام دهید این است که محتویات متدهایی را بنویسید که قرار است از راه دور فراخوانی شوند. بنابراین، در جاوا یک API مانند JAX-RPC وجود داشت. اگر کسی نمی داند، وقتی می گویند جاوا فلان API دارد، به این معنی است که یک بسته با مجموعه ای از کلاس ها وجود دارد که فناوری مورد نظر را در بر می گیرد. JAX-RPC برای مدت طولانی از نسخه ای به نسخه دیگر تکامل یافت و در نهایت به JAX-WS تبدیل شد. WS واضح است که مخفف WebService است و ممکن است فکر کنید که این تغییر نام ساده RPC به یک کلمه محبوب این روزها است. این مورد نیست، زیرا اکنون وب سرویس ها از ایده اصلی فاصله گرفته اند و به شما امکان می دهند نه تنها با روش های راه دور تماس بگیرید، بلکه به سادگی پیام های سند را در قالب SOAP ارسال کنید. چرا این مورد نیاز است، من هنوز نمی دانم، پاسخ بعید است "فقط در مورد، ناگهان مورد نیاز باشد." من خودم دوست دارم از رفقای با تجربه تر یاد بگیرم. و آخرین مورد، سپس JAX-RS برای خدمات وب به اصطلاح RESTful نیز وجود داشت، اما این موضوع برای یک مقاله جداگانه است. در این مرحله، مقدمه را می توان پایان داد، زیرا در ادامه کار با JAX-WS را یاد خواهیم گرفت.

رویکرد کلی

وب سرویس ها همیشه یک کلاینت و یک سرور دارند. سرور سرویس وب ما است و گاهی اوقات به آن نقطه پایانی می گویند (مانند نقطه پایانی که پیام های SOAP از مشتری می رود). باید موارد زیر را انجام دهیم:
  1. رابط وب سرویس ما را شرح دهید
  2. این رابط را پیاده سازی کنید
  3. وب سرویس ما را راه اندازی کنید
  4. یک کلاینت بنویسید و با روش وب سرویس مورد نیاز از راه دور تماس بگیرید
یک وب سرویس را می توان به روش های مختلفی راه اندازی کرد: یا با توصیف یک کلاس با یک متد اصلی و راه اندازی وب سرویس به طور مستقیم، به عنوان یک سرور، یا استقرار آن در سروری مانند Tomcat یا هر سرور دیگری. در مورد دوم، ما خودمان سرور جدیدی راه‌اندازی نمی‌کنیم و پورت دیگری را روی رایانه باز نمی‌کنیم، بلکه به کانتینر سرولت تامکت می‌گوییم که «کلاس‌های خدمات وب را اینجا نوشتیم، لطفاً آنها را منتشر کنید تا همه کسانی که تماس می‌گیرند. شما می توانید از وب سرویس ما استفاده کنید. صرف نظر از روش راه اندازی وب سرویس، ما همان مشتری را خواهیم داشت.

سرور

بیایید IDEA را شروع کنیم و یک پروژه جدید ایجاد کنیم ایجاد پروژه جدید... بیایید یک نام وارد کنیم سلام وب سرویسو دکمه را فشار دهید بعد، سپس دکمه پایان... در پوشه srcیک بسته ایجاد کنید ru.javarush.ws... در این بسته، رابط HelloWebService را ایجاد خواهیم کرد: package ru. جاواروش ws; // اینها حاشیه نویسی هستند، یعنی. راهی برای علامت گذاری کلاس ها و روش های ما، // مربوط به فناوری وب سرویس استواردات جاواکس jws WebMethod; واردات جاواکس jws سرویس وب؛ واردات جاواکس jws صابون SOAPBinding; // ما می گوییم که رابط ما به عنوان یک وب سرویس کار خواهد کرد@سرویس وب // می گویند که وب سرویس برای فراخوانی متدها استفاده خواهد شد@SOAPBinding (سبک = SOAPBinding. Style. RPC) رابط عمومی HelloWebService ( // می گوییم که این روش را می توان از راه دور فراخوانی کرد@WebMethod رشته عمومی getHelloString (نام رشته)؛ ) در این کد کلاس های WebService و WebMethod اصطلاحاً annotation هستند و کاری جز علامت گذاری رابط ما و روش آن به عنوان وب سرویس انجام نمی دهند. همین امر برای کلاس SOAPBinding نیز صادق است. تنها تفاوت این است که SOAPBinding یک حاشیه نویسی پارامتر است. در این مورد، پارامتر style با مقداری استفاده می شود که می گوید وب سرویس نه از طریق پیام های سند، بلکه به عنوان یک RPC کلاسیک، یعنی. برای فراخوانی روش بیایید منطق رابط کاربری خود را پیاده سازی کنیم و یک کلاس HelloWebServiceImpl در بسته خود ایجاد کنیم. به هر حال، من توجه می کنم که پایان کلاس در Impl یک قرارداد در جاوا است که بر اساس آن پیاده سازی رابط ها به این شکل نشان داده می شود (Impl - از کلمه پیاده سازی، یعنی پیاده سازی). این یک الزام نیست و شما آزاد هستید که کلاس را هر چه می خواهید نام گذاری کنید، اما قوانین شکل خوب آن را ایجاب می کند: بسته ru. جاواروش ws; // همان حاشیه نویسی در هنگام توصیف رابط،واردات جاواکس jws سرویس وب؛ // اما در اینجا با پارامتر endpointInterface استفاده می شود، // تعیین نام کلاس کاملاً واجد شرایط رابط وب سرویس ما@WebService (endpointInterface = "ru.javarush.ws.HelloWebService") کلاس عمومی HelloWebServiceImpl HelloWebService را پیاده سازی می کند (@Override public string getHelloString (نام رشته) ( // فقط یک سلام برسانیدبازگشت "Hello," + name + "!" ; )) بیایید وب سرویس خود را به عنوان یک سرور مستقل راه اندازی کنیم، i.e. بدون دخالت هیچ تامکت و سرورهای کاربردی (این موضوع برای بحث جداگانه است). برای انجام این کار، در ساختار پروژه در پوشه srcبیایید یک بسته ru.javarush.endpoint ایجاد کنیم و در آن یک کلاس HelloWebServicePublisher با متد اصلی ایجاد کنیم: package ru. جاواروش نقطه پایانی؛ // کلاس برای راه اندازی یک وب سرور با خدمات وبواردات جاواکس xml ws نقطه پایانی؛ // کلاس خدمات وب ماواردات ru. جاواروش ws HelloWebServiceImpl; کلاس عمومی HelloWebServicePublisher (خلأ استاتیک عمومی اصلی (String... args) ( // سرور وب را در پورت 1986 راه اندازی کنید // و در آدرسی که در آرگومان اول مشخص شده است، // سرویس وب ارائه شده در آرگومان دوم را شروع کنیدنقطه پایانی. انتشار ( "http: // localhost: 1986 / wss / hello", جدید HelloWebServiceImpl ()); )) حالا بیایید این کلاس را با کلیک کردن اجرا کنیم Shift + F10... هیچ چیزی در کنسول ظاهر نمی شود، اما سرور در حال اجرا است. می توانید با تایپ کردن خط http: // localhost: 1986 / wss / hello در مرورگر، این موضوع را تأیید کنید Wsdl. صفحه ای که باز می شود، از یک طرف ثابت می کند که یک وب سرور (http: //) در رایانه ما (localhost) در پورت 1986 راه اندازی شده است، و از طرف دیگر، توضیحات WSDL سرویس وب ما را نشان می دهد. اگر برنامه را متوقف کنید، توضیحات و همچنین خود وب سرویس غیر قابل دسترس می شود، بنابراین ما این کار را انجام نمی دهیم، بلکه به نوشتن مشتری ادامه می دهیم.

مشتری

در پوشه پروژه srcیک بسته ru.javarush.client و در آن کلاس HelloWebServiceClient با متد اصلی: package ru ایجاد کنید. جاواروش مشتری؛ // برای دریافت توضیحات wsdl و از طریق آن نیاز است // به خود وب سرویس برسدواردات جاوا خالص. URL; // چنین اجرایی هنگام کار با یک شی URL رخ می دهدواردات جاوا خالص. بدفرمURLException; // کلاس هایی برای تجزیه xml-ku با توضیحات wsdl // و به تگ سرویس در آن برسیدواردات جاواکس xml فضای نام QName; واردات جاواکس xml ws سرویس؛ // رابط وب سرویس ما (به موارد بیشتری نیاز داریم)واردات ru. جاواروش ws سلام وب سرویس؛ کلاس عمومی HelloWebServiceClient (خلأ استاتیک عمومی اصلی (String args) MalformedURLException را پرتاب می کند ( // یک پیوند به توضیحات wsdl ایجاد کنیدآدرس اینترنتی = آدرس جدید ( "http: // localhost: 1986 / wss / سلام؟ wsdl") ; // ما به پارامترهای سازنده بعدی در اولین تگ توضیحات WSDL نگاه می کنیم - تعاریف // آرگومان اول را در ویژگی targetNamespace ببینید // آرگومان دوم را در ویژگی name ببینید QName qname = QName جدید ("http: //ws.site/"، "HelloWebServiceImplService"); // اکنون می توانیم به تگ سرویس در توضیحات wsdl برسیم،سرویس خدمات = سرویس. ایجاد (url، qname)؛ // و سپس تا تگ پورت تودرتو، به طوری که // پیوندی به یک شیء وب سرویس از راه دور از ما دریافت کنید HelloWebService سلام = سرویس. getPort (کلاس HelloWebService). // هورا! اکنون می توانید با روش راه دور تماس بگیریدسیستم. بیرون println (سلام. getHelloString ("CodeGym")); )) من حداکثر نظرات را در مورد کد موجود در لیست ارائه کردم. من چیزی برای اضافه کردن ندارم، پس اجرا کنید (Shift + F10). باید این متن را در کنسول ببینیم: سلام، CodeGym! اگر آن را ندیده اید، احتمالاً فراموش کرده اید که وب سرویس را راه اندازی کنید.

نتیجه

در این مبحث گشت و گذار مختصری در وب سرویس ها ارائه شد. باز هم، بسیاری از چیزهایی که من نوشته‌ام حدس و گمان من در مورد نحوه کار است، و بنابراین نباید زیاد به آنها اعتماد کرد. اگر افراد آگاه مرا تصحیح کنند، سپاسگزار خواهم بود، زیرا در این صورت چیزی یاد خواهم گرفت. UPD

وب سرویس (سرویس) - برنامه ای است که تعامل بین سایت ها را سازماندهی می کند. اطلاعات یک پورتال به پورتال دیگر منتقل می شود.

مثلاً یک شرکت هواپیمایی وجود دارد. او پروازهای زیادی دارد، به ترتیب، تعداد زیادی بلیط. این اطلاعات را از طریق یک وب سرویس به یک سایت جمع آوری سفر منتقل می کند. کاربری که از جمع‌آوری‌کننده بازدید می‌کند، می‌تواند بلیط این ایرلاین را دقیقاً از آنجا خریداری کند.

نمونه دیگری از خدمات وب سایت ردیابی آب و هوا است که حاوی اطلاعاتی در مورد شرایط آب و هوایی در یک شهر یا کشور خاص به طور کلی است. این اطلاعات اغلب توسط اشخاص ثالث نیز استفاده می شود.

اطلاعات در اینترنت متنوع است. وب سایت ها توسط سیستم های مختلف مدیریت می شوند. پروتکل های مختلف انتقال و رمزگذاری استفاده می شود. وب سرویس ها تبادل اطلاعات بین سایت های مختلف را آسان می کنند.

معماری و پروتکل های خدمات وب

شما می توانید 3 نمونه را تعریف کنید که با یکدیگر تعامل دارند: کاتالوگ، پیمانکار و مشتری. پس از ایجاد سرویس، پیمانکار آن را در کاتالوگ ثبت می کند و در آنجا مشتری سرویس را پیدا می کند.

مکانیسم تبادل داده در توضیحات توضیحات خدمات وب شکل گرفته است. این مشخصاتی است که فرمت های حمل و نقل، انواع محتوا، پروتکل های حمل و نقل را که در مبادله اطلاعات بین مشتری و حامل خدمات استفاده می شود را پوشش می دهد.

امروزه چندین فناوری بیشتر برای پیاده سازی وب سرویس های مختلف استفاده می شود:

  1. TCP/IP پروتکلی است که تقریباً برای هر تجهیزات شبکه، از پردازنده مرکزی گرفته تا دستگاه های قابل حمل و PDA، قابل درک است.
  2. HTML یک زبان نشانه گذاری همه منظوره است که برای نمایش محتوا در دستگاه های مصرف کننده استفاده می شود.
  3. XML یک ابزار جهانی برای پردازش انواع داده ها است. سایر پروتکل های تبادل اطلاعات می توانند بر اساس آن کار کنند: SOAP و WSDL.
  4. UDDI منبع جهانی تشخیص، ادغام و توصیف است. معمولاً در شبکه های خصوصی کار می کند و هنوز توزیع کافی پیدا نکرده است.

تطبیق پذیری فناوری های ارائه شده مبنایی برای درک خدمات وب است. آنها بر روی فناوری های استانداردی اجرا می شوند که مستقل از فروشندگان برنامه ها و سایر منابع شبکه هستند. قابل استفاده بر روی هر سیستم عامل، سرور برنامه، زبان برنامه نویسی و غیره.

مزایای

  • ایجاد شرایط لازم برای تعامل اجزای نرم افزار بدون توجه به پلتفرم.
  • وب سرویس ها بر اساس پروتکل های استاندارد باز هستند. با توجه به معرفی XML، سادگی شکل گیری و پیکربندی وب سرویس ها فراهم شده است.
  • استفاده از HTTP قابلیت همکاری بین سیستم ها را از طریق دسترسی به شبکه تضمین می کند.

ایرادات

  • عملکرد کم و حجم ترافیک بالا در مقایسه با سیستم های RMI، CORBA، DCOM به دلیل استفاده از پیام های XML در متن متن.
  • سطح امنیت همه سرویس های وب مدرن باید کدگذاری را پیاده سازی کنند و نیاز به مجوز کاربر دارند. اینکه آیا HTTPS در اینجا کافی است یا پروتکل های قابل اعتمادتری مانند رمزگذاری XML، SAML و غیره مورد نیاز است، موضوع توسعه است.

وظایف خدمات وب

خدمات وب در بسیاری از زمینه ها قابل استفاده است.

معاملات B2B

فرآیندها بلافاصله و بدون مشارکت مردم یکپارچه می شوند. به عنوان مثال، پر کردن کاتالوگ یک فروشگاه آنلاین با محصولات جدید. آنها به انبار آورده می شوند و انباردار ورود را در پایگاه داده ثبت می کند. اطلاعات به طور خودکار به فروشگاه آنلاین منتقل می شود. و خریدار به جای اینکه روی کارت محصول علامت «Out of stock» بگذارد، مقدار آن را می بیند.

یکپارچه سازی خدمات سازمانی

اگر شرکت از برنامه های شرکتی استفاده می کند، وب سرویس به تنظیم همکاری آنها کمک می کند.

ایجاد سیستم مشتری-سرور

از خدمات برای سفارشی کردن نحوه کار کلاینت و سرور استفاده می شود. این مزایای زیر را فراهم می کند:

  • شما می توانید نه خود نرم افزار را بفروشید، بلکه هزینه دسترسی به وب سرویس را بپردازید.
  • آسان تر برای حل مشکلات با استفاده از نرم افزار شخص ثالث؛
  • سازماندهی دسترسی به محتوا و مطالب روی سرور آسان تر است.

وب سرویس برنامه ای است که پیکربندی فنی تعاملات منابع را ساده می کند.

امروزه خدمات وب تقریباً در همه جا استفاده می شود - آنها اطلاعاتی در مورد پرواز هواپیماها و قطارها، نرخ ارز و آب و هوا در اختیار ما قرار می دهند. جای تعجب نیست که 1C همچنین توانایی ایجاد سرویس های وب خود را دارد که به آن امکان می دهد هم به عنوان تأمین کننده و هم به عنوان مصرف کننده عمل کند. این مکانیسم در پلتفرم 1C: Enterprise 8.3 تعبیه شده است و توسعه دهندگان حتی می توانند اشیاء خدمات وب خود را به پیکربندی استاندارد اضافه کنند. معماری آنها بر روی مجموعه ای از خدمات ساخته شده است که امکان تبادل اطلاعات با نرم افزارهای دیگر را فراهم می کند.

ایجاد یک وب سرویس 1C

یکی از مزایای اصلی خدمات 1C WEB عدم نیاز به دسترسی مستقیم به داده های امنیت اطلاعات است. یک سرویس وب 1C که به درستی پیکربندی شده است به سایر برنامه ها اجازه می دهد تا از عملکردهای بیرونی استفاده کنند. در چنین مواردی، خود تابع باید حق استفاده از داده ها را با توجه به پارامترهای مشخص شده طبق قوانین تعیین شده توسط توسعه دهنده تعیین کند.

چگونه یک وب سرویس در 1C ایجاد کنیم؟

برای اینکه عملکرد خاصی از سیستم 1C در دسترس نرم افزار خارجی قرار گیرد، باید دنباله ای از اقدامات زیر انجام شود:

  1. به پیکربندی بروید و یک شی WEB-service را در شاخه خاصی از درخت اضافه کنید.
  2. تمام عملیاتی که عملکرد ما می تواند انجام دهد را شرح دهید. شرح توابع در ماژول به زبان ساخته شده در 1C ساخته شده است.
  3. شرحی از پارامترهای توابع وب سرویس اضافه کنید. لطفاً توجه داشته باشید که انواع داده‌ها با در نظر گرفتن انواع موجود مکانیسم XDTO که در نسخه 8.1 پلتفرم ظاهر می‌شوند، توصیف می‌شوند.
  4. سرویس وب ایجاد شده را روی سرور منتشر کنید. مکانیزم تعبیه شده در پلت فرم 1C از استانداردهای زیر پشتیبانی می کند:
  • SSL / TLS
  • WS-I BP

نمونه ای از ایجاد یک سرویس وب ساده

برای اینکه به وضوح عملکرد مکانیسم خدمات وب را نشان دهیم، بیایید یک مثال ایجاد کنیم - تابعی که طول رشته وارد شده را تعیین می کند. نرم افزار رشته ای را به عنوان پارامتر پرس و جو ارسال می کند و تابع توضیح داده شده در 1C تعداد کاراکترها را برمی گرداند. هنگام ایجاد، باید به خاطر داشته باشید که انتشار این مکانیسم امکان دسترسی نرم افزارهای مختلف را به آن فراهم می کند. از آنجایی که هر نرم افزاری قادر به درک الفبای سیریلیک نیست، ما اشیاء پیکربندی را با استفاده از حروف لاتین نام گذاری می کنیم.

پیکربندی را باز کنید، شاخه "WEB-services" را در درخت پیدا کنید و یک سرویس جدید "wa_LengthString" اضافه کنید. همچنین لازم است یک عملیات جدید در تب Operations اضافه شود. بیایید آن را "CalcLengthString" بنامیم، در خواص، نوع مقدار بازگشتی - int یا integer را مشخص کنید و پارامتر "InputString" را در داخل آن ایجاد کنید. نوع مقدار را به عنوان رشته رها می کنیم.


اکنون باید عملکرد تابع CalcLengthString را در ماژول سرویس WEB ثبت کنید. برای انجام این کار، ویژگی های تابع ایجاد شده را باز کنید و روی دکمه ذره بین در سمت راست در کنار فیلد ورودی «نام رویه» کلیک کنید. 1C به طور خودکار یک تابع در ماژول سرویس WEB ما ایجاد می کند و آن را باز می کند تا بتوانیم عمل CalcLengthString را توصیف کنیم. بیایید از این مزیت استفاده کنیم و عمل تابع را بنویسیم - تعیین طول رشته ورودی.


در واقع، این ایجاد ساده ترین سرویس وب را تکمیل می کند. اکنون باید این سرویس را در دامنه عمومی "قرار دهید" تا نرم افزار شخص ثالث یا سایر سیستم های 1C بتوانند از این قابلیت استفاده کنند.

برای اینکه بتوانیم وب سرویس ایجاد شده را با عملکرد آن منتشر کنیم، باید به سایت دسترسی داشته باشیم. قبل از شروع انتشار سرویس، باید نام فایل را در ویژگی های ماژول جدید wa_LengthString بررسی کنیم. باید واضح، ساده و دارای پسوند "1cws" باشد.


اکنون زمان انتشار سرویس WEB که ایجاد کرده ایم بر روی سرور است. این ویژگی در نسخه 8.3 این پلتفرم ظاهر شد و بسیاری از شرکت ها قبلاً مزایای کامل این قابلیت را درک کرده اند. برای شروع انتشار، باید فرم "Administration / Publishing on the web server ..." را در پیکربندی باز کنید.


در پنجره ای که باز می شود، باید سرویس های وب 1C را پیکربندی کنیم و فیلدهای خاصی را پر کنیم:

  • نام. پوشه ای را در سرور وب نشان می دهد که شرحی از وب سرویس ما را ذخیره می کند. مراقب حروف بزرگ و حروف بزرگ باشید، زیرا گاهی اوقات سرورها بین حروف بزرگ و کوچک تمایز قائل می شوند.
  • وب سرور. شما باید سروری را از بین سرورهای نصب شده روی رایانه انتخاب کنید.
  • کاتالوگ. شما باید مسیر پوشه ای را انتخاب کنید که داده های وب سرور برای تنظیم اتصال در آن ذخیره می شود. فقط از حروف لاتین استفاده می شود.
  • دو علامت از نوع "بولی". اگر نیاز به پیکربندی دسترسی از طریق سرویس گیرنده وب به پیکربندی داشته باشیم، مورد اول برای ما مفید است. برای انتشار سرویس 1C، باید علامت دوم را قرار دهید.

فقط باید بررسی کنید که سرویس وب مورد نیاز دارای یک چک باکس در ستون اول باشد و روی "انتشار" کلیک کنید.


از آنجایی که این مکانیسم هنوز کاملاً جدید است، ممکن است با خطای شکل "یک خطا در حین انجام عملیات فایل ... رخ داده است" مواجه شوید. در این مورد، فقط باید دکمه "انتشار" را تکرار کنید. در بیشتر موارد، این کمک می کند و پیامی مبنی بر انتشار وب سرویس به شما نمایش داده می شود.

Ru // ws / .1cws؟ Wsdl

در پاسخ به چنین درخواستی برای آدرس، مرورگر باید ساختار فایل XML را نمایش دهد. اگر صفحه خالی، خطا یا کاراکترهای نامفهوم (مشکلات رمزگذاری) را مشاهده کردید، باید همه اقدامات را دوباره بررسی کنید. همچنین اطمینان از اینکه سرور به درستی پیکربندی شده است و شما به آن دسترسی دارید، اضافی نخواهد بود. پس از انتشار موفقیت آمیز، سرویس WEB 1C می تواند از برنامه های شخص ثالث استفاده کند.

WEB-service - (از انگلیسی web-service مترادف - سرویس آنلاین). خدمات وب به خدماتی گفته می شود که با استفاده از برنامه های خاص در اینترنت ارائه می شوند. به عنوان مثال خدماتی مانند: میزبانی، پست الکترونیکی، ذخیره سازی اطلاعات مختلف (فایل ها، بوکمارک ها) در اینترنت، تقویم و ... رایج است. یکی از ویژگی های مهم یک وب سرویس این است که به ارائه دهنده، رایانه یا مرورگر شما بستگی ندارد - شما می توانید با داده های خود در هر نقطه از جهان که به آن دسترسی دارید کار کنید.

کنیازف A.A. فرهنگ دایره المعارف رسانه ها. - بیشکک: انتشارات KRSU... A. A. Knyazev. 2002.

ببینید "WEB-service" در فرهنگ لغت های دیگر چیست:

    سرویس وب

    سرویس وب- سرویس وب. وب سرویس، وب سرویس یک سیستم نرم افزاری است که با یک رشته مشخص می شود؛ رابط ها در XML تعریف شده و با استفاده از پروتکل های اینترنت منتقل می شوند. وب سرویس واحدی از ماژولار بودن در هنگام استفاده ... ... ویکی پدیا است

    پروتکل ارتباطی وب کش- (WCCP) پروتکل تغییر مسیر محتوای سیسکو. مکانیزمی را برای تغییر مسیر جریان های ترافیک در زمان واقعی ارائه می دهد. دارای مقیاس داخلی، متعادل کننده بار، تحمل خطا. سیسکو IOS ... ... ویکی پدیا

    خدمات نقشه وب- (WMS rus. Web map service) یک پروتکل استاندارد برای سرویس دهی به تصاویر جغرافیایی مرجع از طریق اینترنت که توسط یک سرور نقشه برداری بر اساس داده های پایگاه داده GIS تولید می شود. این استاندارد توسعه یافت و برای اولین بار ... ... ویکی پدیا

    وب هتل سالوادور- (سالوادور، برزیل) رده هتل: هتل 2 ستاره آدرس: Rua das Alfazemas… فهرست هتل

    وب هتل آپارسیدا- (Aparecida, برزیل) رده هتل: هتل 3 ستاره آدرس: Av. آیزاک فری… فهرست هتل

    معماری سرویس گرا- فرآیندهای تجاری سازمان بر اساس خدمات ارائه شده توسط برنامه های کاربردی موجود مشتری اجرا می شود. اگر برنامه‌ها از قابلیت ارائه خدمات (Web Services) پشتیبانی نمی‌کنند، هنگام استقرار محصول ... ... راهنمای مترجم فنی

    وب 2

    وب 2.0- مفاهیم کلیدی مرتبط با وب 2.0 وب 2.0 (همانطور که توسط تیم اوریلی تعریف شده است) روشی برای طراحی سیستم هایی است که با در نظر گرفتن تعاملات شبکه، هرچه افراد بیشتری از آنها استفاده کنند بهتر می شوند. ویژگی وب 2.0. اصل ... ... ویکی پدیا است

    سایت اینترنتی- درخواست "سایت" به اینجا هدایت می شود. سانتی متر. همچنین معانی دیگر وب سایت (از انگلیسی Website: web web and site "place") در یک شبکه کامپیوتری متحد شده تحت یک نام دامنه یا آدرس IP) مجموعه ای از اسناد یک شخص خصوصی یا ... ... ویکی پدیا است.

کتاب ها

  • فناوری اطلاعات در صنعت گردشگری، V. N. Shitov. این کتابچه راهنمای کاربر به تفصیل درباره فناوری های کامپیوتری همه منظوره با استفاده از بسته های محبوب Microsoft Office 2010 و مجتمع های جایگزین، استفاده از ... خرید با قیمت 546 روبل
  • 75 راه حل آماده برای وب سایت شما به زبان PHP, Steinmetz U., Ward B .. هرکسی که وب سایت خود را می سازد یا می خواهد بسازد ناگزیر با تعدادی کار و مشکلات روبرو می شود: نحوه ایجاد وبلاگ در سایت .. .... رای را "خراب کن"، قطعی را ببند...

بر اساس معماری وب سرویس، ما دو جزء زیر را به عنوان بخشی از اجرای وب سرویس ایجاد می کنیم:

ارائه دهنده خدمات یا ناشر

این یک ارائه دهنده خدمات وب است. یک ارائه دهنده خدمات این سرویس را پیاده سازی می کند و آن را در اینترنت یا اینترانت در دسترس قرار می دهد. ما یک وب سرویس ساده را با استفاده از NET SDK می نویسیم و منتشر می کنیم.

ارائه دهنده یا مصرف کننده خدمات

هر مصرف کننده یک وب سرویس. درخواست کننده با باز کردن اتصال شبکه و ارسال یک درخواست XML از یک سرویس وب موجود استفاده می کند. ما همچنین دو درخواست برای خدمات وب خواهیم نوشت: یکی مصرف کننده وب (برنامه ASP.NET) و دیگری مصرف کننده بر اساس برنامه های کاربردی ویندوز.

در زیر اولین نمونه ما از یک وب سرویس است که به عنوان ارائه دهنده خدمات عمل می کند و دو روش (افزودن و SayHello) را به عنوان خدمات وب برای استفاده توسط برنامه ها ارائه می دهد. این الگوی استاندارد برای یک وب سرویس است. پسوند .asmx در سرویس های NET استفاده می شود. توجه داشته باشید که روشی که به عنوان یک وب سرویس در معرض دید قرار می گیرد دارای ویژگی WebMethod است. این فایل را به عنوان FirstService.asmx در دایرکتوری مجازی IIS ذخیره کنید (همانطور که در راه اندازی IIS توضیح داده شد، برای مثال c: \ MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>با استفاده از سیستم؛ با استفاده از System.Web.Services؛ با استفاده از System.Xml.Serialization. کلاس عمومی FirstService: WebService (int عمومی افزودن (int a, int b) (بازگشت a + b;) public String SayHello () (بازگشت "Hello World"؛))

برای تست یک وب سرویس باید منتشر شود. وب سرویس را می توان در اینترانت یا اینترنت منتشر کرد. ما این وب سرویس را برای IIS در حال اجرا بر روی یک ماشین محلی منتشر خواهیم کرد. بیایید با راه اندازی IIS شروع کنیم.

  • "Start" → "Settings" → "Control Panel" → "Administrative Tools" → "Internet Service Manager" را باز کنید.
  • وب سایت پیش فرض را باز کرده و راست کلیک کنید. "جدید" → "دایرکتوری مجازی" را انتخاب کنید. New Virtual Directory Wizard باز خواهد شد. روی Next کلیک کنید.
  • صفحه "دایرکتوری مجازی" ظاهر می شود. نام دایرکتوری مجازی را وارد کنید. به عنوان مثال، MyWebServices. و Next را بزنید.
  • صفحه "دایرکتوری محتوای وب سایت" ظاهر می شود.
  • نام دایرکتوری دایرکتوری مجازی را وارد کنید. برای مثال، c: \ MyWebServices روی Next کلیک کنید.
  • صفحه "Access Authorization" ظاهر می شود. تنظیمات را بر اساس نیاز خود تغییر دهید. بیایید تنظیمات پیش فرض را برای این تمرین حفظ کنیم.
  • روی "بعدی" کلیک کنید. پیکربندی IIS را تکمیل می کند.
  • برای تکمیل تنظیمات روی Finish کلیک کنید.

برای بررسی اینکه آیا IIS به درستی پیکربندی شده است، فایل HTML (مانند x.html) را در دایرکتوری مجازی (C: \ MyWebServices) ایجاد شده در بالا کپی کنید. اکنون Internet Explorer را باز کرده و http://localhost/MyWebServices/x.html را وارد کنید. باید فایل x.html را باز کند.

توجه داشته باشید... اگر جواب نداد، لوکال هاست را با آدرس IP دستگاه خود جایگزین کنید. اگر هنوز کار نمی کند، بررسی کنید که آیا IIS در حال اجرا است یا خیر. ممکن است نیاز به پیکربندی مجدد IIS و دایرکتوری مجازی داشته باشید.

برای آزمایش این وب سرویس، FirstService.asmx را در فهرست مجازی IIS ایجاد شده در بالا (C: \ MyWebServices) کپی کنید. وب سرویس را در اینترنت اکسپلورر باز کنید (http: //localhost/MyWebServices/FirstService.asmx). باید صفحه وب سرویس را باز کند. صفحه باید به دو روشی که ما به عنوان خدمات وب در برنامه خود ارائه می دهیم پیوند داشته باشد. تبریک می گویم!شما اولین وب سرویس خود را نوشته اید!

تست وب سرویس

همانطور که دیدیم، نوشتن خدمات وب در .NET Framework آسان است. نوشتن خدمات وب نیز در دات نت آسان است. با این حال، کمی فعال تر است. همانطور که قبلاً گفته شد، ما دو نوع مصرف کننده خدمات را می نویسیم: یک وب سایت و کاربر دیگر بر اساس برنامه های کاربردی ویندوز. بیایید اولین مصرف کننده خدمات وب خود را بنویسیم.

خدمات وب

یک مصرف کننده وب مانند زیر بنویسید. اسمش را WebApp.aspx بگذارید. لطفا توجه داشته باشید که این یک برنامه ASP.NET است. این را در دایرکتوری مجازی وب سرویس (c: \ MyWebServices \ WebApp.axpx) ذخیره کنید. این برنامه دارای دو جعبه متن است که برای دریافت اعداد از کاربر برای اضافه کردن استفاده می شود. این یک دکمه Run دارد که با کلیک بر روی آن، سرویس های وب Add و SayHello دریافت می شود.

WebApp.axpx

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

اولین شماره برای افزودن: 4< /asp:TextBox>

شماره دوم برای اضافه کردن: 5

نتیجه وب سرویس -

سلام خدمت جهانی : برچسب< /asp:Label>

افزودن سرویس : & برچسب

پس از ایجاد مصرف کننده، باید یک پروکسی برای مصرف وب سرویس ایجاد کنیم. این کار به صورت خودکار توسط Visual Studio .NET برای ما هنگام ارجاع به وب سرویس اضافه شده انجام می شود. در اینجا مراحلی وجود دارد که باید دنبال کنید:

  • یک پروکسی برای استفاده از وب سرویس ایجاد کنید. پروکسی با استفاده از ابزار WSDL ارائه شده با .NET SDK ایجاد می شود. این ابزار اطلاعات را از یک وب سرویس استخراج می کند و یک سرور پروکسی ایجاد می کند. پروکسی فقط برای یک وب سرویس خاص معتبر است. اگر نیاز به استفاده از سرویس های وب دیگر دارید، باید یک پروکسی برای آن سرویس نیز ایجاد کنید. ویژوال استودیو دات نت به طور خودکار یک پروکسی ایجاد می کند که یک مرجع وب سرویس اضافه شود. با استفاده از ابزار WSDL ارائه شده به همراه NET SDK، یک پروکسی برای وب سرویس ایجاد کنید. یک فایل FirstSevice.cs در دایرکتوری فعلی ایجاد می کند. برای ایجاد FirstService.dll (پراکسی) برای وب سرویس باید آن را کامپایل کنیم.
  • c:> WSDL http: //localhost/MyWebServices/FirstService.asmx؟ WSDL
  • c:> csc / t: کتابخانه FirstService.cs
  • پروکسی کامپایل شده را در فهرست bin دایرکتوری مجازی وب سرویس (c: \ MyWebServices \ bin) قرار دهید. Internet Information Services (IIS) این فهرست را برای یک سرور پراکسی جستجو می کند.
  • یک مصرف کننده خدمات درست مثل ما ایجاد کنید. توجه داشته باشید که شیء پروکسی وب سرویس بر روی مصرف کننده ایجاد می شود. این سرور پروکسی از تعامل با سرویس مراقبت می کند.
  • URL مصرف کننده را در IE وارد کنید تا آن را آزمایش کنید (به عنوان مثال، http: //localhost/MyWebServices/WebApp.aspx).

مصرف کننده خدمات وب مبتنی بر برنامه ویندوز

نوشتن یک برنامه وب سرویس بر اساس برنامه های کاربردی ویندوز مانند نوشتن هر برنامه ویندوز دیگری است. شما فقط باید یک پروکسی ایجاد کنید (که قبلاً انجام دادیم) و هنگام کامپایل برنامه خود به این پروکسی ارجاع دهید. در زیر برنامه ویندوز ما است که از وب سرویس استفاده می کند. این اپلیکیشن یک شیء وب سرویس (البته پروکسی) ایجاد می کند و متدهای SayHello و Add را روی آن فراخوانی می کند.

WinApp.cs

با استفاده از سیستم؛ با استفاده از System.IO؛ فضای نام SvcConsumer (کلاس SvcEater (خلأ استاتیک عمومی Main (Args رشته) (FirstService mySvc = FirstService جدید ()؛ Console.WriteLine ("Calling Hello World Service:" + mySvc.SayHello ())؛ Console.WriteLine ("Calling 2، 3) سرویس: "+ mySvc.Add (2، 3) .ToString ());)))

آن را با c: \> csc /r:FirstService.dll WinApp.cs کامپایل کنید. یک فایل WinApp.exe ایجاد می کند. آن را اجرا کنید تا برنامه و وب سرویس خود را آزمایش کنید.

حال سوال این است که چگونه می توان مطمئن شد که این برنامه واقعاً سرویس وب را فراخوانی می کند؟

بررسی آن آسان است. وب سرور خود را متوقف کنید تا امکان تماس با وب سرویس وجود نداشته باشد. اکنون برنامه WinApp را راه اندازی کنید. در زمان اجرا یک استثنا ایجاد می کند. اکنون وب سرور را دوباره راه اندازی کنید. باید کار کند.