choreography of web-services

18
Хореография веб-сервисов

Upload: magento-dev

Post on 24-Apr-2015

367 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Choreography of web-services

Хореографиявеб-сервисов

Page 2: Choreography of web-services

В чем проблема?

SOAP

REST

POST

web

-ser

vice

s

web

-ser

vice

s

Page 3: Choreography of web-services

В чем проблема?

SOAP

REST

POST

11

22

web

-ser

vice

s

web

-ser

vice

s

Page 4: Choreography of web-services

Service-oriented architecture (SOA)

ProviderProviderConsumerConsumer

RegistryRegistry

findpublish

interact

Page 5: Choreography of web-services

Enterprise service bus (ESB)

SOAP

REST

POST

ESB

serv

ices

serv

ices

Page 6: Choreography of web-services

X.commerce Fabric

FabricXOCL

capa

bilit

ies

tenants

topic

schema server

capa

bilit

ies

Page 7: Choreography of web-services

Orchestration

Page 8: Choreography of web-services

Choreography

Page 9: Choreography of web-services

X.commerce Open Commerce Language

Page 10: Choreography of web-services

Контракт приложения

package com.x.cartwithmarketingprovider.v1 0.2 workingdraft{

packagetitle "Cart with Marketing Provider Bundles"

import com.x.inventorycontracts.v1.*import com.x.customercontract.v1.*import com.x.ordermanagementcontracts.v1.*

bundle CartWithMarketingProvider{description "A bundle including PIM, inventory, Customer, Order and Webstore metadata"bindings{

CustomerConsumer*InventoryConsumer*WebStoreOfferConsumer*OrderObserver*

}}

}

Page 11: Choreography of web-services

Контракт приложения

package com.x.ordermanagementcontracts.v1 0.3 workingdraft{

packagetitle "Order Management Contracts"

import com.x.ordermanagement.v3.*contract InternalOrderProcessor {

description "An OrderProcessor for internally created orders"roles {

ProcessNonSalesChannelOrder.OrderProcessorOrderCancelled.OrderProcessorOrderPartiallyReturned.OrderProcessorOrderPartiallyShipped.OrderProcessorObserveOrderShipped.OrderProcessorOrderCreated.OrderProcessorOrderReturned.OrderProcessorOrderAdjusted.OrderProcessor OrderSearch.OrderManager<NonSensitive>

} }

}

Page 12: Choreography of web-services

Что такое Workflow

WorkflowWorkflow

ALLALL

ANYANY

DODO

sub-workflowsub-workflow

IFIF

ELSEELSE

transactiontransaction

transactiontransaction

transactiontransaction

transactiontransaction

Workflow – дерево нод, в котором кажадая нода

может принимать разные состояния (active,

succeeded, failed и т.п) в зависимости от состояний

дочерних нод.

Workflow – дерево нод, в котором кажадая нода

может принимать разные состояния (active,

succeeded, failed и т.п) в зависимости от состояний

дочерних нод.

Транзакции являются листьями дерева и только через них осуществляется

отправка сообщений.

Транзакции являются листьями дерева и только через них осуществляется

отправка сообщений.

Типов нод достаточно для описанию логики

выполнения любого бизнеc процесса.

Типов нод достаточно для описанию логики

выполнения любого бизнеc процесса.

Page 13: Choreography of web-services

Типы нод

AnyAny

AllAll

DoDo

If ElseIf Else

NoopNoop

BooleanBoolean

TransactionTransaction

Sub-workflowSub-workflow

Page 14: Choreography of web-services

Workflow на XOCL

workflow {transaction ProcessOrder {

roles(SalesChannel, OrderProcessor)}any {

workflow CustomerUpsert {roles(OrderProcessor, null)

}}workflow OrderCreated {

roles(OrderProcessor, OrderObserver)}do (!order[Order.Complete]) {

any {workflow OrderReturned {

roles(OrderProcessor, OrderObserver)}workflow OrderPartiallyShipped {

roles(OrderProcessor, OrderObserver)}workflow OrderPartiallyCancelled {

roles(OrderProcessor, OrderObserver)}

transaction PaymentUpdate {roles(SalesChannel, OrderProcessor)

}transaction CompleteOrder {

roles(OrderProcessor, OrderObserver)}one {

do {transaction CancelOrder {

roles(SalesChannel, OrderProcessor)}workflow OrderCancelled {

roles(OrderProcessor, OrderObserver)}

}workflow OrderCancelled {

roles(OrderProcessor, OrderObserver)}

} } }}

page 1 page 2

Page 15: Choreography of web-services

Transactions

One way Inform NotifyTwo way Query Response

transaction ProcessOrder response {

sender {message ProcessOrder {

timeouts(response=30s)retries=3

}}

receiver {success ProcessOrderSucceededfailure ProcessOrderFailed

}}

Page 16: Choreography of web-services

Workflow Engine на PHP

workflowworkflow

ALLALL

ANYANY

DODO

sub-workflowsub-workflow

IFIF

ELSEELSE

Fabric

messagemessage

messagemessage

messagemessage

messagemessage

transactiontransaction

transactiontransaction

transactiontransaction

transactiontransaction

topics

Workflow EngineBu

sine

ss L

ogic

callback handlers

Page 17: Choreography of web-services

Ресурсы

x.com информационный портал по всем технологиям x.commercex.com/developers/x.commerce – больше про Fabric

github.com/xcommerce XOCL репозиторий с описанием всего что есть в языке

mageconf.com видео докладов на различные темы в разделе Материалы

Page 18: Choreography of web-services

Q&AСаша Кусакин [email protected]