Кіріспе

Веб-қызметтерді шақыру аясы (WSIF) кез келген Веб-қызметтерді сипаттау тілімен (WSDL) сипатталған қызметті шақыру үшін қарапайым және икемді Java API-ін қолдайды. WSIF арқылы WSDL әртүрлі протоколдарды қолданатын, әртүрлі платформаларда жұмыс істейтін бағдарламалық қамтамасыз етуге қол жеткізу үшін интеграциялық аяның орталық бөлігіне айналуы мүмкін. Бағдарламалық жасақтама WSDL арқылы сипатталуы керек және оның сипаттамасында клиенттің WSIF аясы үшін провайдері бар байланыс (binding) болуы тиіс. WSIF жергілікті Java, Enterprise JavaBeans (EJB), Java Message Service (JMS) және Java EE Connector Architecture (JCA) протоколдары үшін провайдерлермен бірге келеді, яғни клиент EJB немесе Java Message Service арқылы қолжетімді қызметті тікелей WSDL байланысы ретінде анықтап, WSIF арқылы оған ашық түрде қол жеткізе алады, бұл SOAP қызметі немесе жергілікті Java класы үшін қолданылатын API-мен бірдей болады.

Құрылымы

WSDL-де байлау абстрактілі PortType пен нақты қызмет форматы мен протоколы арасындағы байланысты қалай орнатуды анықтайды. Мысалы, SOAP байлау кодтау стилін, SOAPAction қаптамасын, қабылдау бөлігінің атау кеңістігін (мақсатURI) және басқа да параметрлерді анықтайды. WSDL веб-қызмет үшін бірнеше іске асыру нұсқаларын және бірдей PortType-ты бөлісетін бірнеше порттарды қолдауға мүмкіндік береді. Яғни, WSDL бір интерфейстің SOAP және IIOP сияқты қызметтерге байлануына мүмкіндік береді. WSIF бір клиенттік кодтың қолжетімді кез келген байлауға қол жеткізуіне мүмкіндік беретін API ұсынады. Клиенттік код PortType-қа жазылғандықтан, ол қандай портты және байлауды пайдаланатынын орналастыру, конфигурация параметрлері немесе код арқылы анықтауға болады. WSIF осы көптеген WSDL байлауларын қолдау үшін провайдерлерді пайдаланады. Провайдер – WSDL кеңейтімдерін қолдайтын және сол арқылы қызметке шақыру жасауға мүмкіндік беретін код бөлігі. WSIF провайдерлері J2SE JAR қызмет провайдерінің спецификациясын қолданады, бұл оларды орындалу кезінде анықтауға мүмкіндік береді. Клиенттер жаңа іске асыруларды пайдалана алады және портты таңдауды инфрақұрылым мен орындалу уақытына жүктей алады, бұл қызмет сапасының көрсеткіштері немесе бизнес саясаты негізінде іске асыруды таңдауға мүмкіндік береді.

ЕЖБ, БМС және БҚА-ға қатысты міндеттемелер

WSIF қосымша міндетті кеңейтулерді анықтайды, соның арқасында Enterprise JavaBean (EJB), жергілікті Java сыныптары, Java Message Service (JMS) API-ді қолдана отырып хабарлама кезектері арқылы қолжетімді бағдарламалық құралдар және Java Connector архитектурасын пайдаланып шақырылатын бағдарламалық құралдар да WSDL-де сипатталуы мүмкін. WSIF тиісті WSDL сипаттамасына сүйенген түсінікті шақыруды қамтамасыз ететін провайдерлермен бірге келеді.

Сипаттама

WSIF әзірлеушілерге әдеттегі бағдарламалау моделі болып табылатын Simple Object Access Protocol (SOAP) API-мен тікелей жұмыс істеудің орнына, олардың WSDL сипаттамалары арқылы веб-қызметтердің абстрактілік бейнелерімен өзара әрекеттесуге мүмкіндік береді. WSIF көмегімен әзірлеушілер веб-қызметтің қалай іске асырылғанына және қолжетімділігіне қарамастан, бірдей бағдарламалау моделімен жұмыс істей алады. WSIF веб-қызметті орындалу кезінде қызмет туралы метадеректерді зерттеуге негізделген, толық немесе толық динамикалық шақыруға мүмкіндік береді. Ол сондай-ақ, байланыстырудың жаңартылған нұсқасын WSIF-ке орындалу кезінде қосуға мүмкіндік береді, бұл шақыру қызметіне байланыстыруды орындалу уақытына дейін таңдауға мүмкіндік береді. WSIF WSDL-ге негізделген, бұл тілмен сипатталатын кез-келген қызметті шақыруға мүмкіндік береді. Егер күрделі корпоративтік бағдарламалық қамтамасыз ету жүйесі бірнеше онжылдықтар бойы дамыған әртүрлі бағдарламалық жасақтамалардан құралған болса – EJB, Java-ның коннектор архитектурасын пайдаланатын мұралық қолданбалар, сыртқы серверлерде орналастырылған SOAP қызметтері, хабарлама орталық бағдарламалық жасақтама арқылы қолжетімді ескі код – осы бөлшектердің барлығын пайдалы нәрселерді жасау үшін қолданатын бағдарламалық жасақтамаларды жазу қажет, онда протоколдардағы айырмашылықтар мен бағдарламалық жасақтаманың жылжымалылығы бір-бірімен қайшылыққа түседі. Егер бағдарлама басқа серверге көшірілсе, код бұзылады. Қолданылатын SOAP кітапханалары өзгереді, мысалы, Apache SOAP-тен Apache Axis-ке ауысқанда, өйткені ол қазір ескірген SOAP API-ді қолданады. Бұрын EJB ретінде қолжетімді болған нәрсе енді JMS арқылы хабарлама орталық бағдарламалық жасақтама арқылы қолжетімді болады – тағы да, бағдарламалық жасақтаманы пайдаланатын кодты түзетуге болады немесе егер сізде EJB болса, ол SOAP қызметі ретінде сыртқы клиенттерге ұсынылады. SOAP пайдалану арқылы EJB-ге тікелей қатынауға қарағанда өнімділік төмендейді. WSIF осы мәселелерді WSDL-ге әртүрлі бағдарламалық жасақтаманың біркелкі сипаттамасы ретінде қызмет етуге мүмкіндік беру арқылы және пайдаланушыларға белгілі бір протоколға немесе орналасуға тәуелді болмай, осы бағдарламалық жасақтамаға қол жеткізуге мүмкіндік беру арқылы шешеді. API-нің нақты хаттамадан бөлінуі сонымен қатар протоколдар, орналасу және т.б. өзгертілгенде клиенттік кодты қайта құрастыру қажеттігін жояды. Егер сыртқы қолжетімді SOAP қызметі EJB ретінде қолжетімді болса, пайдаланушылар RMI/IIOP-ті қызмет сипаттамасын (WSDL) өзгертіп, қызметті пайдаланатын қосымшаларда ешқандай өзгеріссіз пайдалана алады. WSDL-дің кеңейту қабілеті, бір қызмет үшін бірнеше байланыстарды ұсыну мүмкіндігі, орындалу кезінде байланыс туралы шешім қабылдау және т.б. пайдалануға болады.

WSIF мен Axis арасындағы айырмашылықтар

Axis – SOAP-тың іске асырылуы. Ол веб-қызметтерді іске асыруды орнату және клиенттер мен осы іске асырулар арасында SOAP хабарламаларын бағыттау үшін серверлік инфрақұрылымды қамтиды. Сонымен қатар, ол SOAP қызметтерін шақыру үшін JAX RPC спецификациясын іске асырады. WSIF, Axis-тің клиенттік бөлігіне ұқсас, себебі ол да қызметтерді шақыру үшін қолданылады. Дегенмен, WSIF API WSDL-ге негізделген және протоколдан тәуелсіз; ол протоколға қатысты нақты кодты ("провайдерлерді") қосуға мүмкіндік береді. SOAP қызметтерін шақыру үшін WSIF, шақыруды жүзеге асыру үшін Axis API-ін (яғни JAX RPC) пайдаланатын Axis провайдерімен бірге келеді. Осылайша, WSIF, Axis-ке қарағанда жоғарырақ абстракция деңгейінде жұмыс істейді.

WSIF және JAX-RPC арасындағы айырмашылықтар

JAX RPC – XML негізіндегі RPC қызметтерін шақыруға арналған API. Қазіргі көлемі SOAP қызметтерін шақырумен шектеледі. WSIF – WSDL сипатталған қызметтерді шақыруға арналған API, олар SOAP қызметтері болса да, болмаса да (мысалы, WSIF WSDL байланыстарын анықтайды, сондықтан EJB-лер, JMS немесе Java Connector архитектурасын пайдалана отырып қолжетімді корпоративтік бағдарламалық құралдар, сондай-ақ жергілікті Java сыныптарын бірінші деңгейдегі WSDL қызметтері ретінде сипаттауға болады, содан кейін оларды бірдей, протоколға тәуелсіз WSIF API арқылы шақыруға болады).