Presentation is loading. Please wait.

Presentation is loading. Please wait.

Electronic Commerce System Sistema per il Commercio Elettronico tipologia B2B Montagna Roberto.

Similar presentations


Presentation on theme: "Electronic Commerce System Sistema per il Commercio Elettronico tipologia B2B Montagna Roberto."— Presentation transcript:

1 Electronic Commerce System Sistema per il Commercio Elettronico tipologia B2B Montagna Roberto

2 Sommario Il problema Use case L’architettura software Modello statico Modello dinamico Ristrutturazione modello dinamico Deployment

3 Il Problema Commercio elettronico B2B Più customer e supplier legati da contratti Comunicazione tramite Internet sistema basato su: Agenti software Object broker (CORBA) testo

4 Il Problema:Supplier Presenta un catalogo Accetta ordini Mantiene informazioni sui propri customer

5 Il Problema:Customer Sfoglia cataloghi Effettua ordini Mantiene contratti con i propri supplier Ha uno o più conti in Banca

6 Il Problema:Flusso 1/3 Sfoglia catalogo Effettua ordine Valida ordine con contratto Creazione ordine di consegna Valida ordine con inventario

7 Il Problema:Flusso 2/3 Invia la spedizione Informa customer Arrivo spedizione Conferma Arrivo Update ordine Creazione fattura Spedizione fattura

8 Il Problema:Flusso 3/3 Conferma fattura Effettua pagamento

9 Use Case Diagram Browse Catalog Customer Supplier Bank Place Requisition Confirm Delivery Process Delivery Order Confirm Shipment Send Invoice

10 Il Problema:Flusso 1/3 Sfoglia catalogo Effettua ordine Valida ordine con contratto Creazione ordine di consegna Valida ordine con inventario Browse Catalog Place Requisition Process Delivery Order

11 Il Problema:Flusso 2/3 Invia la spedizione Informa customer Arrivo spedizione Conferma Arrivo Update ordine Confirm Delivery Confirm Shipment Send Invoice Creazione fattura Spedizione fattura

12 Il Problema:Flusso 3/3 Send Invoice Conferma fattura Effettua pagamento

13 Agenti Software Incapsulano la logica dell’applicazione Business Rule CLIENT [CustomerAgent, SupplierAgent] Lavorano a nome dell’utente Assistono l’utente nel lavoro SERVER [RequisitionAgent, DeliveryAgent, InvoiceAgent] Soddisfano le richieste di altri agenti Per fare ciò: Interagiscono con altri agenti server Manipolano server object

14 Agentil’architettura Account Payable DB Invoice DB Electronic Payment Customer Agent Requisition Agent Delivery Order Agent Supplier Agent Invoice Agent Contract DB Operation Funds DB Requisition DB Catalog DB Inventory DB Delivery Order DB

15 Object Broker Motivazioni Molti DataBase Legacy Necessità di Low Coupling (clienti, agenti, oggetti server) Soluzione Object Broker (CORBA) Pregi Facilita la localizzazione del Software (schema)schema

16 Maintained by > Customer Static Modeling > DeliveryOrder > Invoice > Requisition > Payment Authorize 1 1 > SelectedItem > Inventory > Supplier Created for > BankAccount > Contract > OperationFunds Created by Is forSend to * > Catalog Uses Has Maintained by Has Maintains Items Maintained in Selected From Commits Has

17 Collaboration Diagram Browse Catalog Place Requisition Process Delivery Order Confirm Shipment Confirm Delivery Send Invoice

18 Consolidated Collaboration Diagram <> :InvoiceServer > anInvoice Agent <> :Operations FundsServer > aRequisition Agent > aCustomer Agent <> :CatalogServer <> :BankServer Interface <> :AccountPayable Server <> :ContractsServer <> :Requisition Server > :Customer Interface > :Supplier Interface <> :OrdersServer <> :InventoryServer > aSupplier Agent > aDelivery OrderAgent :Bank aCustomer aSupplier

19 Concurrent Collaboration Diagram Browse Catalog Place Requisition Process Delivery Order Confirm Shipment Confirm Delivery Send Invoice

20 Subsystem Collaboration Diagram <> :InvoiceServer > anInvoice Agent <> :Operations FundsServer > aRequisition Agent > aCustomer Agent <> :CatalogServer <> :BankServer Interface <> :AccountPayable Server <> :ContractsServer <> :Requisition Server > :Customer Interface > :Supplier Interface <> :OrdersServer <> :InventoryServer > aSupplier Agent > aDelivery OrderAgent Customer Organization Subsystem :Bank SubSystem Bank Subsystem Supplier Organization Subsystem

21 Aggregazioni Subsystem Collaboration Diagram <> :InvoiceServer > anInvoice Agent <> :Operations FundsServer > aRequisition Agent > aCustomer Agent <> :CatalogServer <> :BankServer Interface <> :AccountPayable Server <> :ContractsServer <> :Requisition Server > :Customer Interface > :Supplier Interface <> :OrdersServer <> :InventoryServer > aSupplier Agent > aDelivery OrderAgent Customer Organization Subsystem :Bank SubSystem Bank Subsystem Supplier Organization Subsystem

22 Subsystem Collaboration Diagram Completo <> :PaymentSubsystem <> :ContractSubsystem <> :CustomerAgentSub. <> :CustomerInterfaceSub. > InventorySubsystem <> SupplierAgentSub. > OrderSubsystem > CatalogSubsystem <> SupplierInterfaceSub. :BankSubsystem Customer Organization Subsystem Supplier Organization SubSystem 1 per Customer Org. 1 per Banca 1 per Supplier Org. Bank Subsystem

23 Subsystem Collaboration Diagram Cardinalità <> :PaymentSubsystem <> :ContractSubsystem <> :CustomerAgentSub. <> :CustomerInterfaceSub. > InventorySubsystem <> SupplierAgentSub. > OrderSubsystem > CatalogSubsystem <> SupplierInterfaceSub. :BankSubsystem Customer Organization Subsystem Supplier Organization SubSystem Bank Subsystem 1 per Customer Org. 1 per Banca 1 per Supplier Org. 1 * * * * * * * 1 1 * 1 * * * *

24 Deployment diagram Customer Agent Node Payment Subsystem Node Supplier Agent Node Orders Node Catalog Node Customer Interface Node {1 per customer} Contract Subsystem Node Supplier Interface Node {1 per supplier} Inventory Node Bank Node > Ripetuto per ogni Customer Organization Ripetuto per ogni Supplier Organization Ripetuto per ogni banca

25 Testo 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. 

26 Testo 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 customer’s 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. 

27 Testo 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. 

28 Testo 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. 

29 Testo del problema 5/5 The application uses several legacy databases, so an object broker tecnology, such as CORBA, is required. 

30 Browse Catalog [use case] Il customer può Sfogliare vari cataloghi Per ogni catalogo visionare più item 

31 Place Requisition [use case] Scelti gli item da ordinare il customer Esegue l’ordine Il sistema Valida l’ordine sul contratto Spedisce la richiesta d’acquisto al supplier 

32 Process Delivery Order [use case] Il sistema Riceve l’ordine d’acquisto Controlla la disponibilità in magazzino Visualizza l’ordine al supplier 

33 Confirm Shipment [use case] Il Supplier Prepara la spedizione Informa il Customer 

34 Confirm Delivery [use case] La merce arriva a destinazione Il Customer Conferma l’arrivo Il sistema Inizia la procedura di pagamento 

35 Send 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 

36 Customer Agent [client] Permette al customer di Visualizzare i cataloghi Visionare l’avanzamento della spedizione e Richiede l’autorizzazione al Requisition Agent Invia l’ordine al Delivery Order Agent Customer Agent Requisition Agent Delivery Order Agent Catalog DB 

37 Requisition Agent [server] Ricevuto l’ordine Controlla il contratto Controlla i fondi Registra la richiesta Autorizza il Customer Agent Customer Agent Requisition Agent Contract DB Operation Funds DB Requisition DB 

38 Delivery Order Agent [server] Ricevuto l’ordine Lo memorizza Informa Supplier Agent Invoice Agent Update info spedizione Customer Agent Delivery Order Agent Supplier Agent Invoice Agent Delivery Order DB 

39 Invoice Agent [server] Si occupa dei pagamenti Autorizzazione Memorizzazione Avvio transazione bancaria Account Payable DB Invoice DB Electronic Payment Delivery Order Agent Supplier Agent Invoice Agent Contract DB Operation Funds DB 

40 Supplier Agent [client] Permette al supplier di Completare l’ordine Aggiorna l’inventario Invia la fattura all’Invoice Agent Delivery Order Agent Supplier Agent Invoice Agent Inventory DB 

41 Object Broker [funzionamento] :Broker aDeliveryOrderAgent aCustomerAgent 1: customerAgent Broker Request 2: service Handle 3: customerAgent Service Request 4: deliveryOrder AgentResponse 

42 Classe BankAccount bankID: Integer locationOffBank: String bankAccountNumber: String accountType: String > BankAccount 

43 Classe Catalog itemID: Integer itemDescription: String unitCost: Real > Catalog 

44 Classe Contract contractID: Integer maxPurchase: Real > Contract 

45 Classe Customer CustomerID: Integer Address: String telephoneNumber: String faxNumber: String > Customer 

46 Classe DeliveryOrder orderID: Integer plannedShipDate: Date actualShipDate: Date creationDate: Date orderStatus: OrderStatusType amountDue: Real receivedDate: Date > DeliveryOrder 

47 Classe Invetory itemID: Integer itemDescription: String Quantity: Integer Price: Real recordTime: Date > Inventory 

48 Classe Invoice invoiceID: Integer amountDue: Real InvoiceDate: Date > Invoice 

49 Classe OperationFunds operationFundsD: Integer totalFunds: Real committedFunds: Real reservedFunds: Real > OperationFunds 

50 Classe Payment paymentID: Integer amount: Real date: Date Status: PaymentStatusType > Payment 

51 Classe Requisition requisitionID: Integer amount: Real Status: RequisitionStatusType > Requisition 

52 Classe SelectedItem itemID: Integer unitCost: Real quantity: Integer > SelectedItem 

53 Classe Supplier supplierID: Integer address: String telephoneNumber: String faxNumber: String > Supplier 

54 Browse Catolog [coll. diag.] > :CustomerInterface > aCustomerAgent > :CatalogServer A1: Customer Input A6: Catalog Output A2: Customer Request A5: Catalog Info A3: Catalog Request A4: Catalog Info aCustomer 

55 Browse 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 all’interfaccia A6: La CustomerInterface visualizza il catalogo all’utente 

56 Place Requisition [coll. diag.] > :Contracts Server aCustomer > :CustomerInterface > :aRequisition Agent > :aCustomer Agent > :Requisitory Server > :aDelivery OrderAgent > :Operation FundsServer > :Order Server B1 Customer Input B13: Requisition Output B2:Customer Request B12:Requisition Status B8:Store B3: Requisition Request B9:Requisition Status B7:Funds Reserved B6:Reserve Funds B10:Puchase Request B11: Store B5:Available Contracts B4: Contract Query 

57 Place 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 l’ordine B4: Il RequisitionAgent richiede il contratto B5: Il ContractServer restituisce il contratto B6: Il RequisitionAgent cerca di bloccare i fondi necessari 

58 Place Requisition [coll. diag.] B7: L’OperationFundsServer conferma il blocco dei fondi B8: Il RequisitionAgent approva l’ordine e lo memorizza nel RequisitionServer B9: Il RequisitionAgent informa il CustomerAgent B10: Il CustomerAgent istanzia il DeliveryOrderAgent con l’ordine di acquisto B11: Il DeliveryOrderAgent memorizza le informazioni nell’OrdersServer B12: Il CustomerAgent inoltra lo stato dell’ordine all’interfaccia B13: La CustomerInterface visualizza lo stato 

59 Process Delivery Order [coll. diag.] > :OrdersServer > :aSupplier Agent > :aDelivery OrderAgent > :Supplier Interface > :Inventory Server C7:Supplier Check C8: Confirm C6:Delivery Order C3:Order Request C4:Select C5:Selected Order C2:Supplier Request C2:Order Status C1:Supplier Input C10:Order Output aSupplier 

60 Process 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 l’ordine di consegna interrogando l’OrdersServer 

61 Process Delivery Order [coll. diag.] C6: Il DeliveryOrderAgent spedisce l’ordine al SupplierAgent C7,C8: Il SupplierAgent controlla che gli item siano presenti in magazzino C9: Il SupplierAgent invia lo stato dell’ordine alla SupplierInterface C10: L’interfaccia visualizza all’utente le informazioni sull’ordine e sul magazzino 

62 Confirm Shipment [coll. diag.] > :aCustomer Agent aSupplier aCustomer > :CustomerInterface > :aDelivery OrderAgent > :aSupplier Agent > :Inventory Server > :Supplier Interface > :OrdersServer S8:Order Output S7:Order Status S6:Order Status S4:Order Status S5:Update S3:Update S2:Supplier Request S1:Supplier Input 

63 Confirm Delivery [coll. diag.] > :Requisition Server aCustomer > :OrdersServer > :aRequisition Agent > :aCustomer Agent > :CustomerInterface > :aDelivery OrderAgent > :Operation FundsServer R5:Shipment Received R2:Customer Confirmation R1:Customer Input R3:Shipment Received R4:Update R6:Update R7:Commit Funds R8:Funds Commitment 

64 Send Invoice [coll. diag.]  <> :Bank <> :AccountsPayable Server <> :InvoiceServer > anInvoiceAgent <> :Operation FundsServer > aSupplierAgent > : SupplierInterface D6:Funds Query D1:Invoice <> :ContractServer > aDelivery OrderAgent D13:Invoice Status D8: Invoice D9: Payment Status D11: Electronic Payment D10: Store D4: Contract Query D5: Contract Response D7:Funds Response D2:Order SubScription D2:Order Notification :Bank aSupplier D11: Electronic Funds D16: Invoice Output

65 Browse Catolog [conc. coll. diag.] > :CustomerInterface > aCustomerAgent > :CatalogServer A1: Customer Input A6: Catalog Output A2: Customer Request A5: Catalog Info A3: Catalog Request A4: Catalog Info aCustomer Collaboration diagram for Browse Catalog use case 

66 Place Requisition [conc. coll. diag.] > :Contracts Server aCustomer > :CustomerInterface > :aRequisition Agent > :aCustomer Agent > :Requisitory Server > :aDelivery OrderAgent > :Operation FundsServer > :Order Server B1 Customer Input B13: Requisition Output B2:Customer Request B12:Requisition Status B8:Store B3: Requisition Request B9:Requisition Status B7:Funds Reserved B6:Reserve Funds B10:Puchase Request B11: Store B5:Available Contracts B4: Contract Query 

67 Process Delivery Order [conc. coll. diag.] > :OrdersServer > :aSupplier Agent > :aDelivery OrderAgent > :Supplier Interface > :Inventory Server C7:Supplier Check C8: Confirm C6:Delivery Order C3:Order Request C4:Select C5:Selected Order C2:Supplier Request C2:Order Status C1:Supplier Input C10:Order Output aSupplier 

68 Confirm Shipment [conc. coll. diag.] > :aCustomer Agent aSupplier aCustomer > :CustomerInterface > :aDelivery OrderAgent > :aSupplier Agent > :Inventory Server > :Supplier Interface > :OrdersServer S8:Order Output S7:Order Status S6:Order Status S4:Order Status S5:Update S3:Update S2:Supplier Request S1:Supplier Input 

69 Confirm Delivery [conc. coll. diag.] > :Requisition Server aCustomer > :OrdersServer > :aRequisition Agent > :aCustomer Agent > :CustomerInterface > :aDelivery OrderAgent > :Operation FundsServer R5:Shipment Received R2:Customer Confirmation R1:Customer Input R3:Shipment Received R4:Update R6:Update R7:Commit Funds R8:Funds Commitment 

70 Send Invoice [conc. coll. diag.] <> :Bank <> :AccountsPayable Server <> :InvoiceServer > anInvoiceAgent <> :Operation FundsServer > aSupplierAgent > : SupplierInterface D6:Funds Query D1:Invoice <> :ContractServer > aDelivery OrderAgent D13:Invoice Status D8: Invoice D9: Payment Status D11: Electronic Payment D10: Store D15: Invoice Status D4: Contract Query D5: Contract Response D7:Funds Response D2:Order SubScription D2:Order Notification :Bank aSupplier D11: Electronic Funds D16: Invoice Output 


Download ppt "Electronic Commerce System Sistema per il Commercio Elettronico tipologia B2B Montagna Roberto."

Similar presentations


Ads by Google