150 likes | 263 Views
“ Розробка теоретичних основ та прикладних питань побудови сервіс- орієнтованих прикладних програмних систем у семантичному Веб - середовищі “. Наукова робота № III – 5-12 :. Науковий керівник : ак ад . Андон П. І. Очікувані результати :.
E N D
“Розробка теоретичних основ та прикладних питань побудови сервіс- орієнтованих прикладних програмних систем у семантичному Веб-середовищі “ Наукова робота № III – 5-12: Науковий керівник: акад. Андон П. І. Очікувані результати: Методологія (моделі, методи та засоби) (напів-)автоматичного та інтегрованого вирішення основних задач життєвого циклу розробки веб-сервісів
моделювання та специфікація веб-сервісів (WS) для WS-BPEL на функціональному та процесному рівнях; • анотація WS на функціональному та процесному рівні (апарат DL). Онтологія прикладної області - на базі DL; • верифікація WS та SWS (Model checking підхід); • виявлення, селекція WS (на функціональному та процесному рівнях); • композиція сервісів (підхід на основі АІ-планування); • моніторинг і аналіз виконання WS; • специфікація вимог до композиції (для control i data flow) мови CTL, EAGLE; • еволюція WS; • інтеграція виявлення, селекції, композиції та моніторингу і аналізу WS. Проблематика
A theoretical integration of Web service discovery and composition Semantic Web • Services Grounding. Digital research institute. Insbruck. Jaceck Kopecky, Dumitru Roman. • Automated composition of Semantic Web Services into executable processes. ITC IRST University of Trento. P Traverso and M. Pistore • Symbolic Techniques for planning with extended goals in non-deterministic domains. ITC IRST University of Trento. M. Pistore Renato Bettin and P Traverso • Planning as Model Checking for extended goals in non-deterministic domains. ITC IRST University of Trento. M. Pistore P Traverso • Planning with a language for extended goals. Ugo Dal Lago and M. Pistore and P Traverso • Semantic Matching of Web Services Capabilities. Carnegy Mellon UniversityMassimo Paulucci Takahiro Kawamura Terry M. Payne Katyra Sycara. • Specifying Data-Flow Requirements for the automated Composition of Web Services. ITC IRST University of Trento Annapaolo Marcony and M. Pistore and P Traverso • Automated Synthesis of Composite BPEL$WS Web Services. ITC IRST University of Trento Annapaolo Marcony and M. Pistore and P Traverso and P.Bertolly • Implicit vs. Explicit Data-Flow Requirements in Web Services composition Goals. ITC IRST University of Trento Annapaolo Marcony and M. Pistore and P Traverso ЛІТЕРАТУРА (базова)
A Minimalist Approach to Semantic annotations for Web Processes compositions. ITC IRST University of Trento. M. Pistore Luca Spalazzi and P Traverso • Web Service Discovery at Process-level Based on Semantic Annotation. ITC IRST University of Trento.Francesco Pagliarecci M. Pistore Luca Spalazzi and P Traverso • Semantic Web Services Selection at Process-level: the eBay/Amazon/Pay Pal Case Study. ITC IRST University of Trento. Annapaolo Marcony and M. Pistore; Universita Politechnica delle marche – Ancona, Italy Trento.Francesco Pagliarecci and Luca Spalazzi • An approach for the Automated Composition of BPEL Processes. ITC IRST University of Trento. M. Pistore and P Traverso and Annapaolo Marcony and P.Bertolly • Planning and monitoring Web Service Composition. ITC IRST University of Trento. M. Pistore and P Traverso and P.Bertolly F.Barbon and D. Shaparau • Дескрипционная логика. Википедия. • Model checking semantically annotated Services. Software engineering v.38 2012 D. Pietro F/ Pagliarecci and L Spalazzi • On the evolution of services. Software engineering v.38 2012 D. V. Andrikopoulos, S. Benbernou and M.P. Pagazogou ЛІТЕРАТУРА (продовження)
К О Р И С Т У В А Ч І 5 І Н Т Е Г Р А Ц І Я Рівень користувачів: - Portal, B2B, .Net Рівень бізнес-процесів: моделі workflow - BPEL Process Рівень визначення сервісів: - WSDL, XML, Schema, WS-Policy Компонентний рівень: - J2EE, .Net, SCA Рівень операційних систем: - OS, Middleware, Custom Apps, Platforms, Network Портали В2В .NET Користувачі сервісів 4 Потоки бізнес-процесів 3 Сервіси (атомарні, композитні) П О С Т А Ч А Л Ь Н И К И 2 Компоненти 1 SAP Застосування Операційні системи Застосування Пакети застосувань Застосування замовника Платформи Сполучне ПО OS/390 DB2 MQ Unix Архітектура програмних сервіс-орієнтованих застосувань
Композитний Веб-сервіс W W1 Купити & Привезти (P&S) (Purchase & Ship) request(Article) Виробник (Producer) info(Size) not_avail W3 offer(Cost,Delay) Користувач (User) request(Article,Loc) ack/nack offer(Cost,Delay) not_avail ack/nack Перевізник (Shipper) request(Size,Loc) offer(Cost,Delay) not_avail ack/nack W2
Взаємодія між Р&S і компонентними сервісами 1) Користувач запитує P&S про об’єкт і, який він хоче транспортувати в точку l;2) P&S запитує у Виробника деякі дані про товар, а саме його розмір, вартість і скільки часу потрібно для того, щоб виготовити його;3) P&S запитує Перевізника про ціну і час, необхідний для транспортування об'єкту такого розміру до l;4) P&S відправляє Користувачу пропозицію, яка враховує загальну вартість (плюс додаткові витрати для P&S ) і час, щоб виготовити і доставити об’єкт;5) Користувач посилає підтвердження замовлення, яке відправляється сервісом P&S до Перевізника і Виробника.
Модель поведінки систем Система переходів із стану в стан(State transition system – STS-система) Σ = S, S0, I, O, R, де:S – кінцевий набір станів;S0S – набір початкових станів;I – кінцевий набір вхідних дій;O – кінцевий набір вихідних дій;RS × (IUOU {τ}) × S– відношення переходу. Анотована система переходів із стану в стан – це кортеж Σ, Ω, Λ, де:Σ - система переходів із стану в стан; Ω - онтологія домену; Λ : S → 2Prop - функція анотації, де Prop- множина всіх тверджень на онтології Ω.
START request(a) gotReq no_avail START START s:=sizeof(a) Fail setSize a:=somearticle() l:=somelocation() request(s,l) setReq info(s) gotReq sentSize nack request(a,l) c:=costof(s,l) d:=transporttimeof(s,l) no_avail ack sentReq Fail gotAck Fail setOffer c:=costof(a) d:=prodtimeof(a) no_avail offer(c,d) offer(c,d) setOffer Fail gotOffer sentOffer sentOffer offer(c,d) nack ack ack nack ack Fail SUCC Fail SUCC Fail SUCC Протокол виробника Протоколи Протокол користувача Протокол перевізника nack
Анотований BPEL процес Shipper <process name=”Shipper”> <partnerLinks> <partnerLink name=”client” partnerLinkType=”Shipper_PLT” myRole=”Shipper_Server” partnerRole=”Shipper Client”/> </partnerLinks> <variables> <variable name=”req” messageType=”shippingRequest”/> <!-- ”req” has two parts: ”/req/size” and ”/req/location” --> <variable name=”offer” messageType=”shippingOffer”/> <!-- ”offer” has two parts: ”/offer/cost” and ”/offer/delay” --> </variables> <sequence name=”main”> <receive partnerLink=”client” portType=”Shipper_PT” operation=”request” variable=”req”/> <switch name=”checkAvailability”> <case name=”isNotAvailable”> <invoke partnerLink=”client” portType=”Producer_Callback_PT” operation=”not avail”/> <empty semeffect=”not shippingAgreement”> </case> <otherwise name=”isAvailable”> <assign name=”prepareOffer”> <copy><from opaque=”yes” semvalue=”costOf(/req/size,/req/location)”/> <to variable=”offer” part=”cost”/></copy> <copy><from opaque=”yes” semvalue=”delayOf(/req/size,/req/location)”/> <to variable=”offer” part=”delay”/></copy> </assign> <invoke partnerLink=”client” portType=”Shipper_Callback_PT” operation=”offer” inputVariable=”offer”/> <pick name=”waitAcknowledge”> <onMessage partnerLink=”client” portType=”Producer PT” operation=”ack”> <empty semeffect=”shippingAgreement”/> </onMessage> <onMessage partnerLink=”client” portType=”Producer_PT” operation=”nack”> <empty semeffect=”not shippingAgreement”/> </onMessage> </pick> </otherwise> </switch> </sequence> </process>
STS-система для процесу Перевізник (Shipper) INPUT request(Size, Location); ack(); nack(); OUTPUT offer(Delay, Cost); not avail(); TRANS pc = START -[TAU]-> pc = receive_request; pc = receive_request -[INPUTrequest(req_size,req_location)]-> pc = checkAvailablility; pc = checkAvailability -[TAU]-> pc = isNotAvailable; pc = checkAvailability -[TAU]-> pc = isAvailable; pc = isNotAvailable -[TAU]-> pc = invoke_not_available; pc = invoke_not_available -[OUTPUT not_avail]-> pc = empty_1; pc = empty_1 -[TAU]-> pc = END, shippingAgreement = FALSE; pc = isAvailable -[TAU]-> pc = prepareOffer; pc = prepareOffer -[TAU]-> pc = invoke_offer, offer_cost IN Cost, offer_delay IN Delay; pc = invoke_offer -[OUTPUT offer(offer_cost, offer_delay)]-> pc = waitAcknowledge; pc = waitAcknowledge -[INPUT ack]-> pc = empty_2; pc = waitAcknowledge -[INPUT nack]-> pc = empty_3; pc = empty_2 -[TAU]-> pc = END, shippingAgreement = TRUE; pc = empty_3 -[TAU]-> pc = END, shippingAgreement = FALSE; PROCESS Shipper; TYPE Size; Location; Cost; Delay; FUNCTION costOf(Size,Location): Cost; delayOf(Size,Location): Delay; STATE pc: {START, receive_request, checkAvailability, isNotAvailable, isAvailable, invoke_not_available, empty_1, prepareOffer, invoke_offer, waitAcknowledge, empty_2, empty_3, END }; req_size: Size U {UNDEF }; req_location: Location [ {UNDEF }; offer_delay: Delay [ {UNDEF }; offer_cost: Cost [ {UNDEF }; shippingAgreement: {TRUE, FALSE, UNDEF}; INIT pc = START; offer_delay = UNDEF; offer_cost = UNDEF; customer_req_size = UNDEF; customer_req_location = UNDEF; shippingAgreement = UNDEF;
Спрощена схема побудови плану та його реалізації Опис Σ Початковий стан Планувальник Цілі Плани Контролер Спостереження Дії СистемаΣ Події
Вимоги ρщодокомпозиції (ціль композиції) МоваEAGLE: ρ := p | ρAnd ρ | ρThen ρ | ρFail ρ | Repeat ρ | DoReach p | TryReach p | DoMaint p | TryMaint p p Prop - множина висловлювань, які характеризують стан STS-системи Приклад (для P&S композиції) ρ = TryReach p Fail DoReach q TryReach user.p&sAgreement Λproducer.productionAgreement Λshipper.shippingAgreement Λ user.offer_delay = producer.delayOf(user.req_item) + shipper.delayOf(producer.sizeOf(user.req_item), user.req_location) Λ user.offer_cost = producer.costOf(user.req_item) + shipper.costOf(producer.sizeOf(user.req_item), user.req_location) Fail DoReach ¬ user.p&sAgreement Λ¬ producer.productionAgreement Λ¬ shipper.shippingAgreement