Title: Electronic Commerce System
1Electronic Commerce System
- Sistema per il Commercio Elettronico tipologia B2B
Montagna Roberto
2Sommario
- Il problema
- Use case
- Larchitettura software
- Modello statico
- Modello dinamico
- Ristrutturazione modello dinamico
- Deployment
3Il Problema
testo
- Commercio elettronico B2B
- Più customer e supplier legati da contratti
- Comunicazione tramite Internet
- sistema basato su
- Agenti software
- Object broker (CORBA)
4Il Problema Supplier
- Presenta un catalogo
- Accetta ordini
- Mantiene informazioni sui propri customer
5Il Problema Customer
- Sfoglia cataloghi
- Effettua ordini
- Mantiene contratti con i propri supplier
- Ha uno o più conti in Banca
6Il Problema Flusso 1/3
Sfoglia catalogo
Effettua ordine
Valida ordine con contratto
Creazione ordine di consegna
Valida ordine con inventario
7Il Problema Flusso 2/3
Invia la spedizione
Creazione fattura
Informa customer
Spedizione fattura
Arrivo spedizione
Conferma Arrivo
Update ordine
8Il Problema Flusso 3/3
Conferma fattura
Effettua pagamento
9Use Case Diagram
Browse Catalog
Process Delivery Order
Confirm Shipment
Place Requisition
Send Invoice
Confirm Delivery
10Il Problema Flusso 1/3
Sfoglia catalogo
Browse Catalog
Effettua ordine
Valida ordine con contratto
Place Requisition
Creazione ordine di consegna
Valida ordine con inventario
Process Delivery Order
11Il Problema Flusso 2/3
Invia la spedizione
Creazione fattura
Confirm Shipment
Send Invoice
Informa customer
Spedizione fattura
Arrivo spedizione
Conferma Arrivo
Update ordine
Confirm Delivery
12Il Problema Flusso 3/3
Conferma fattura
Send Invoice
Effettua pagamento
13Agenti Software
- Incapsulano la logica dellapplicazione Business
Rule - CLIENT CustomerAgent, SupplierAgent
- Lavorano a nome dellutente
- Assistono lutente nel lavoro
- SERVER RequisitionAgent, DeliveryAgent ,
InvoiceAgent - Soddisfano le richieste di altri agenti
- Per fare ciò
- Interagiscono con altri agenti server
- Manipolano server object
14Agenti larchitettura
Contract DB
Customer Agent
Requisition Agent
Operation Funds DB
Delivery Order Agent
Requisition DB
Catalog DB
Invoice Agent
Inventory DB
Delivery Order DB
Electronic Payment
Account Payable DB
Invoice DB
Supplier Agent
15Object Broker
- Motivazioni
- Molti DataBase Legacy
- Necessità di Low Coupling
- (clienti, agenti, oggetti server)
- Soluzione
- Object Broker (CORBA)
- Pregi
- Facilita la localizzazione del Software (schema)
16Static Modeling
1
1
1
1
1
1
1..
1
1
1
1
1
1
Maintained by
1..
1
1
1
ltltentitygtgt SelectedItem
1
1
0..1
1..
1
ltltentitygtgt Catalog
0..1
1..
1
1
ltltentitygtgt Inventory
ltltentitygtgt Supplier
1
1..
1
1
1..
17Collaboration Diagram
- Browse Catalog
- Place Requisition
- Process Delivery Order
- Confirm Shipment
- Confirm Delivery
- Send Invoice
18Consolidated Collaboration Diagram
ltltextern system interfacegtgt BankServer Interface
ltltdatabase wrappergtgt InventoryServer
ltltdatabase wrappergtgt InvoiceServer
ltltuser interfacegtgt Supplier Interface
Bank
ltltdatabase wrappergtgt AccountPayable Server
ltltbusiness logicgtgt aSupplier Agent
ltltbusiness logicgtgt anInvoice Agent
aSupplier
ltltdatabase wrappergtgt Operations FundsServer
ltltdatabase wrappergtgt ContractsServer
ltltdatabase wrappergtgt OrdersServer
ltltbusiness logicgtgt aDelivery OrderAgent
ltltdatabase wrappergtgt Requisition Server
ltltbusiness logicgtgt aRequisition Agent
ltltuser interfacegtgt Customer Interface
ltltbusiness logicgtgt aCustomer Agent
ltltdatabase wrappergtgt CatalogServer
aCustomer
19Concurrent Collaboration Diagram
- Browse Catalog
- Place Requisition
- Process Delivery Order
- Confirm Shipment
- Confirm Delivery
- Send Invoice
20Subsystem Collaboration Diagram
Bank Subsystem
Bank SubSystem
Customer Organization Subsystem
Supplier Organization Subsystem
ltltextern system interfacegtgt BankServer Interface
ltltdatabase wrappergtgt InventoryServer
ltltdatabase wrappergtgt InvoiceServer
ltltuser interfacegtgt Supplier Interface
ltltdatabase wrappergtgt AccountPayable Server
ltltbusiness logicgtgt aSupplier Agent
ltltbusiness logicgtgt anInvoice Agent
ltltdatabase wrappergtgt Operations FundsServer
ltltdatabase wrappergtgt ContractsServer
ltltdatabase wrappergtgt OrdersServer
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aRequisition Agent
ltltdatabase wrappergtgt Requisition Server
ltltuser interfacegtgt Customer Interface
ltltbusiness logicgtgt aCustomer Agent
ltltdatabase wrappergtgt CatalogServer
21Aggregazioni Subsystem Collaboration Diagram
Bank Subsystem
Bank SubSystem
Customer Organization Subsystem
Supplier Organization Subsystem
ltltextern system interfacegtgt BankServer Interface
ltltdatabase wrappergtgt InventoryServer
ltltdatabase wrappergtgt InvoiceServer
ltltuser interfacegtgt Supplier Interface
ltltdatabase wrappergtgt AccountPayable Server
ltltbusiness logicgtgt aSupplier Agent
ltltbusiness logicgtgt anInvoice Agent
ltltdatabase wrappergtgt Operations FundsServer
ltltdatabase wrappergtgt ContractsServer
ltltdatabase wrappergtgt OrdersServer
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aRequisition Agent
ltltdatabase wrappergtgt Requisition Server
ltltuser interfacegtgt Customer Interface
ltltbusiness logicgtgt aCustomer Agent
ltltdatabase wrappergtgt CatalogServer
22Subsystem Collaboration DiagramCompleto
Bank Subsystem
1 per Banca
1 per Customer Org.
1 per Supplier Org.
BankSubsystem
Customer Organization Subsystem
Supplier Organization SubSystem
ltltaggregate subsystemgtgt PaymentSubsystem
ltltserver subsystemgtgt InventorySubsystem
ltltaggregate subsystemgtgt ContractSubsystem
ltltcoordinator subsystemgtgt SupplierAgentSub.
ltltuser interface subsystemgtgt SupplierInterfaceSub.
ltltcoordinator subsystemgtgt CustomerAgentSub.
ltltserver subsystemgtgt OrderSubsystem
ltltuser interface subsystemgtgt CustomerInterfaceSub
.
ltltserver subsystemgtgt CatalogSubsystem
23Subsystem Collaboration DiagramCardinalità
Bank Subsystem
1 per Banca
1 per Customer Org.
1 per Supplier Org.
BankSubsystem
1
Customer Organization Subsystem
Supplier Organization SubSystem
ltltaggregate subsystemgtgt PaymentSubsystem
ltltserver subsystemgtgt InventorySubsystem
1
1
1
ltltaggregate subsystemgtgt ContractSubsystem
ltltcoordinator subsystemgtgt SupplierAgentSub.
ltltuser interface subsystemgtgt SupplierInterfaceSub.
1
1
1
1
ltltcoordinator subsystemgtgt CustomerAgentSub.
ltltserver subsystemgtgt OrderSubsystem
1
1
ltltuser interface subsystemgtgt CustomerInterfaceSub
.
ltltserver subsystemgtgt CatalogSubsystem
24Deployment diagram
Ripetuto per ogni Customer Organization
Ripetuto per ogni Supplier Organization
Customer Agent Node
Payment Subsystem Node
Supplier Agent Node
Orders Node
Catalog Node
ltltInternetgtgt
Customer Interface Node 1 per customer
Contract Subsystem Node
Supplier Interface Node 1 per supplier
Inventory Node
Bank Node
Ripetuto per ogni banca
25Testo del problema 1/5
?
- In the electronic commerce problem there are
customers and suppliers. Each customer has a
contract with a supplier for purchases from that
suppliers, as well as one or more bank accounts
through which payments to suppliers can be made. - Each supplier proviedes a catalog of items,
accepts customers orders, and maintains accounts
with each customers for receiving payment.
26Testo del problema 2/5
?
- A customer is able to browse through several
World Wide Web-based catalogs provided by the
suppliers and make selections of items that need
to be purchased. - The customers order needs to be checked aganist
the avaiable contracts to determine if there is a
valid customer contract with the suppliers, which
will be used for charging the purchase.
27Testo del problema 3/5
?
- Each contract has operations funds committed to
it. It is necessary to determine that sufficient
funds are avaiable for the customer order. - Assuming that the contract and funds are in
place, a delivery order is created and sent to
the catalog supplier. The supplier confirms the
orde and enters a planned shipping date. As time
passes, the shipping order is monitored and both
supplier and customer are notified if there is a
shipping delay.
28Testo del problema 4/5
?
- When the order is shipped, the customer is
notified. The customer acknowledges when the the
shipment is received, and the delivery order is
updated. After receipt of shipment, authorization
for payment of the invoice is made. The invoice
is checked against the contract, avaiable funds,
and delivery order status, after which the
invoice is sent to electronic funds transfer from
the customer bank to the supplier bank.
29Testo del problema 5/5
?
- The application uses several legacy databases, so
an object broker tecnology, such as CORBA, is
required.
30Browse Catalog use case
?
- Il customer può
- Sfogliare vari cataloghi
- Per ogni catalogo visionare più item
31Place Requisition use case
?
- Scelti gli item da ordinare il customer
- Esegue lordine
- Il sistema
- Valida lordine sul contratto
- Spedisce la richiesta dacquisto al supplier
32Process Delivery Order use case
?
- Il sistema
- Riceve lordine dacquisto
- Controlla la disponibilità in magazzino
- Visualizza lordine al supplier
33Confirm Shipment use case
?
- Il Supplier
- Prepara la spedizione
- Informa il Customer
34Confirm Delivery use case
?
- La merce arriva a destinazione
- Il Customer
- Conferma larrivo
- Il sistema
- Inizia la procedura di pagamento
35Send Invoice use case
?
- Il supplier
- Crea la fattura
- Spedisce la fattura al client
- Una volta ricevuta la merce
- Il customer
- Controlla la fattura
- Avvia il trasferimento dei fondi
36Customer Agent client
Customer Agent
Requisition Agent
?
Delivery Order Agent
Catalog DB
- Permette al customer di
- Visualizzare i cataloghi
- Visionare lavanzamento della spedizione
- e
- Richiede lautorizzazione al Requisition Agent
- Invia lordine al Delivery Order Agent
37Requisition Agent server
?
Contract DB
Customer Agent
Requisition Agent
Operation Funds DB
Requisition DB
- Ricevuto lordine
- Controlla il contratto
- Controlla i fondi
- Registra la richiesta
- Autorizza il Customer Agent
38Delivery Order Agent server
Customer Agent
?
- Ricevuto lordine
- Lo memorizza
- Informa
- Supplier Agent
- Invoice Agent
- Update info spedizione
Delivery Order Agent
Invoice Agent
Delivery Order DB
Supplier Agent
39Invoice Agent server
?
Contract DB
- Si occupa dei pagamenti
- Autorizzazione
- Memorizzazione
- Avvio transazione bancaria
Operation Funds DB
Delivery Order Agent
Invoice Agent
Electronic Payment
Account Payable DB
Invoice DB
Supplier Agent
40Supplier Agent client
?
- Permette al supplier di
- Completare lordine
- Aggiorna linventario
- Invia la fattura allInvoice Agent
Delivery Order Agent
Invoice Agent
Inventory DB
Supplier Agent
41Object Broker funzionamento
?
1 customerAgent Broker Request
2 service Handle
3 customerAgent Service Request
4 deliveryOrder AgentResponse
42Classe BankAccount
?
43Classe Catalog
?
44Classe Contract
?
45Classe Customer
?
46Classe DeliveryOrder
?
47Classe Invetory
?
48Classe Invoice
?
49Classe OperationFunds
?
50Classe Payment
?
51Classe Requisition
?
52Classe SelectedItem
?
53Classe Supplier
?
54Browse Catolog coll. diag.
?
A1 Customer Input
A2 Customer Request
ltltuser interfacegtgt CustomerInterface
ltltbusiness logicgtgt aCustomerAgent
A6 Catalog Output
A5 Catalog Info
aCustomer
A3 Catalog Request
A4 Catalog Info
ltltdatabase wrappergtgt CatalogServer
55Browse Catolog coll. diag.
?
- A1 il customer richiede un catalogo attraverso
la customer interface - A2 Il CustomerAgent è istanziato. Seleziona uno
o più cataloghi - A3 Il CustomerAgent richiede informazioni al
CatalogServer - A4 Il CatalogServer restituisce le informazioni
- A5 Il CustomerAgent inoltra le informazioni
allinterfaccia - A6 La CustomerInterface visualizza il catalogo
allutente
56Place Requisition coll. diag.
?
B6Reserve Funds
B8Store
ltltdatabase wrappergtgt Requisitory Server
ltltdatabase wrappergtgt Operation FundsServer
ltltbusiness logicgtgt aRequisition Agent
B7Funds Reserved
B3 Requisition Request
B9Requisition Status
B5Available Contracts
B10Puchase Request
B4 Contract Query
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aCustomer Agent
ltltbusiness logicgtgt Contracts Server
B11 Store
B2Customer Request
B12Requisition Status
B1 Customer Input
ltltuser interfacegtgt Order Server
ltltuser interfacegtgt CustomerInterface
B13 Requisition Output
aCustomer
57Place Requisition coll. diag.
?
- B1 Il Customer seleziona item dal catalogo e li
ordina - B2 La CustomerInterface inoltra la richiesta al
CustomerAgent - B3 Il CustomerAgent istanzia il RequisitionAgent
con lordine - B4 Il RequisitionAgent richiede il contratto
- B5 Il ContractServer restituisce il contratto
- B6 Il RequisitionAgent cerca di bloccare i fondi
necessari
58Place Requisition coll. diag.
?
- B7 LOperationFundsServer conferma il blocco dei
fondi - B8 Il RequisitionAgent approva lordine e lo
memorizza nel RequisitionServer - B9 Il RequisitionAgent informa il CustomerAgent
- B10 Il CustomerAgent istanzia il
DeliveryOrderAgent con lordine di acquisto - B11 Il DeliveryOrderAgent memorizza le
informazioni nellOrdersServer - B12 Il CustomerAgent inoltra lo stato
dellordine allinterfaccia - B13 La CustomerInterface visualizza lo stato
59Process Delivery Order coll. diag.
?
ltltdatabase wrappergtgt Inventory Server
C7Supplier Check
C8 Confirm
C2Supplier Request
C1Supplier Input
ltltuser interfacegtgt Supplier Interface
ltltbusiness logicgtgt aSupplier Agent
C2Order Status
C10Order Output
aSupplier
C3Order Request
C6Delivery Order
C4Select
ltltdatabase wrappergtgt OrdersServer
ltltbusiness logicgtgt aDelivery OrderAgent
C5Selected Order
60Process Delivery Order coll. diag.
?
- C1 Il Supplier richiede un nuovo ordine di
consegna - C2 La SupplierInterface inoltra la richiesta al
SupplierAgent - C3 Il SupplierAgent invia la richiesta al
DeliveryOrderAgent - C4,C5 Il DeliveryOrderAgent seleziona lordine
di consegna interrogando lOrdersServer
61Process Delivery Order coll. diag.
?
- C6 Il DeliveryOrderAgent spedisce lordine al
SupplierAgent - C7,C8 Il SupplierAgent controlla che gli item
siano presenti in magazzino - C9 Il SupplierAgent invia lo stato dellordine
alla SupplierInterface - C10 Linterfaccia visualizza allutente le
informazioni sullordine e sul magazzino
62Confirm Shipment coll. diag.
?
S6Order Status
S5Update
ltltbusiness logicgtgt aCustomer Agent
ltltbusiness logicgtgt aDelivery OrderAgent
ltltdatabase wrappergtgt OrdersServer
S4Order Status
S7Order Status
ltltuser interfacegtgt Supplier Interface
ltltuser interfacegtgt CustomerInterface
ltltbusiness logicgtgt aSupplier Agent
S2Supplier Request
S8Order Output
S1Supplier Input
S3Update
ltltdatabase wrappergtgt Inventory Server
aSupplier
aCustomer
63Confirm Delivery coll. diag.
?
R7Commit Funds
ltltdatabase wrappergtgt Requisition Server
ltltbusiness logicgtgt aRequisition Agent
ltltdatabase wrappergtgt Operation FundsServer
R8Funds Commitment
R6Update
R5Shipment Received
R3Shipment Received
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aCustomer Agent
R2Customer Confirmation
R4Update
R1Customer Input
ltltuser interfacegtgt CustomerInterface
ltltdatabase wrappergtgt OrdersServer
aCustomer
64Send Invoice coll. diag.
?
D11 Electronic Funds
D16 Invoice Output
Bank
aSupplier
ltltexternal system interfacegtgt Bank
ltltdatabase wrappergtgt InvoiceServer
ltltuser interfacegtgt SupplierInterface
D11 Electronic Payment
D10 Store
D8 Invoice
D1Invoice
ltltbusiness logicgtgt aSupplierAgent
ltltdatabase wrappergtgt AccountsPayable Server
ltltbusiness logicgtgt anInvoiceAgent
D9 Payment Status
D13Invoice Status
D4 Contract Query
D2Order Notification
D6Funds Query
D7Funds Response
ltltdatabase wrappergtgt Operation FundsServer
ltltdatabase wrappergtgt ContractServer
ltltbusiness logicgtgt aDelivery OrderAgent
D5 Contract Response
D2Order SubScription
65Browse Catolog conc. coll. diag.
?
A1 Customer Input
A2 Customer Request
ltltuser interfacegtgt CustomerInterface
ltltbusiness logicgtgt aCustomerAgent
A6 Catalog Output
A5 Catalog Info
aCustomer
A3 Catalog Request
A4 Catalog Info
ltltdatabase wrappergtgt CatalogServer
Collaboration diagram for Browse Catalog use case
66Place Requisition conc. coll. diag.
?
B6Reserve Funds
B8Store
ltltdatabase wrappergtgt Requisitory Server
ltltdatabase wrappergtgt Operation FundsServer
ltltbusiness logicgtgt aRequisition Agent
B7Funds Reserved
B3 Requisition Request
B9Requisition Status
B5Available Contracts
B10Puchase Request
B4 Contract Query
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aCustomer Agent
ltltbusiness logicgtgt Contracts Server
B11 Store
B2Customer Request
B12Requisition Status
B1 Customer Input
ltltuser interfacegtgt Order Server
ltltuser interfacegtgt CustomerInterface
B13 Requisition Output
aCustomer
67Process Delivery Order conc. coll. diag.
?
ltltdatabase wrappergtgt Inventory Server
C7Supplier Check
C8 Confirm
C2Supplier Request
C1Supplier Input
ltltuser interfacegtgt Supplier Interface
ltltbusiness logicgtgt aSupplier Agent
C2Order Status
C10Order Output
aSupplier
C3Order Request
C6Delivery Order
C4Select
ltltdatabase wrappergtgt OrdersServer
ltltbusiness logicgtgt aDelivery OrderAgent
C5Selected Order
68Confirm Shipment conc. coll. diag.
?
S6Order Status
S5Update
ltltbusiness logicgtgt aCustomer Agent
ltltbusiness logicgtgt aDelivery OrderAgent
ltltdatabase wrappergtgt OrdersServer
S4Order Status
S7Order Status
ltltuser interfacegtgt Supplier Interface
ltltuser interfacegtgt CustomerInterface
ltltbusiness logicgtgt aSupplier Agent
S2Supplier Request
S8Order Output
S1Supplier Input
S3Update
ltltdatabase wrappergtgt Inventory Server
aSupplier
aCustomer
69Confirm Delivery conc. coll. diag.
?
R7Commit Funds
ltltdatabase wrappergtgt Requisition Server
ltltbusiness logicgtgt aRequisition Agent
ltltdatabase wrappergtgt Operation FundsServer
R8Funds Commitment
R6Update
R5Shipment Received
R3Shipment Received
ltltbusiness logicgtgt aDelivery OrderAgent
ltltbusiness logicgtgt aCustomer Agent
R2Customer Confirmation
R4Update
R1Customer Input
ltltuser interfacegtgt CustomerInterface
ltltdatabase wrappergtgt OrdersServer
aCustomer
70Send Invoice conc. coll. diag.
?
D11 Electronic Funds
D16 Invoice Output
Bank
aSupplier
ltltexternal system interfacegtgt Bank
ltltdatabase wrappergtgt InvoiceServer
ltltuser interfacegtgt SupplierInterface
D11 Electronic Payment
D10 Store
D15 Invoice Status
D8 Invoice
D1Invoice
ltltbusiness logicgtgt aSupplierAgent
ltltdatabase wrappergtgt AccountsPayable Server
ltltbusiness logicgtgt anInvoiceAgent
D9 Payment Status
D13Invoice Status
D4 Contract Query
D2Order Notification
D6Funds Query
D7Funds Response
ltltdatabase wrappergtgt Operation FundsServer
ltltdatabase wrappergtgt ContractServer
ltltbusiness logicgtgt aDelivery OrderAgent
D5 Contract Response
D2Order SubScription