Electronic Commerce System Sistema per il Commercio Elettronico tipologia B2B Montagna Roberto Sommario Il problema Use case L’architettura software Modello statico Modello dinamico Ristrutturazione modello dinamico Deployment Il Problema testo Commercio elettronico B2B Più customer e supplier legati da contratti Comunicazione tramite Internet sistema basato su: Agenti software Object broker (CORBA) Il Problema: Presenta un catalogo Accetta ordini Mantiene informazioni sui propri customer Supplier Il Problema: Customer Sfoglia cataloghi Effettua ordini Mantiene contratti con i propri supplier Ha uno o più conti in Banca Il Problema: Sfoglia catalogo Effettua ordine Valida ordine con contratto Creazione ordine di consegna Valida ordine con inventario Flusso 1/3 Il Problema: Invia la spedizione Flusso Creazione fattura Informa customer Spedizione fattura Arrivo spedizione Conferma Arrivo Update ordine 2/3 Il Problema: Conferma fattura Effettua pagamento Flusso 3/3 Use Case Diagram Browse Catalog Process Delivery Order Customer Supplier Confirm Shipment Place Requisition Send Invoice Confirm Delivery Bank Il Problema: Sfoglia catalogo Flusso Browse Catalog Effettua ordine Valida ordine con contratto Place Requisition Creazione ordine di consegna Valida ordine con inventario Process Delivery Order 1/3 Il Problema: Invia la spedizione Confirm Shipment Flusso Creazione fattura Informa customer Spedizione fattura Arrivo spedizione Conferma Arrivo Update ordine Confirm Delivery 2/3 Send Invoice Il Problema: Conferma fattura Effettua pagamento Flusso Send Invoice 3/3 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 Agenti l’architettura Requisition Agent Customer Agent Delivery Order Agent Requisition DB Contract DB Operation Funds DB Catalog DB Inventory DB Invoice Agent Delivery Order DB Supplier Agent Electronic Payment Invoice DB Account Payable DB 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) Static Modeling Send to 1 Is for <<entity>> Payment 1 1 Created for <<entity>> Invoice 1 1 1 Created by <<entity>> Customer 1 1 Maintained 1 by <<entity>> Contract 1..* 1 Uses Authorize <<entity>> Requisition 1 1 1 Commits 1 1..* 1 Has 1 1 <<entity>> SelectedItem <<entity>> OperationFunds Selected From 1..* Has Maintained by 1..* 1 <<entity>> BankAccount 1..* 1 0..1 1 <<entity>> Catalog Items Maintained in 1 Has <<entity>> DeliveryOrder <<entity>> Supplier Maintains 1 1..* 0..1 1 <<entity>> Inventory Collaboration Diagram Browse Catalog Place Requisition Process Delivery Order Confirm Shipment Confirm Delivery Send Invoice Consolidated Collaboration Diagram :Bank aCustomer <<extern system interface>> :BankServer Interface <<database wrapper>> :InvoiceServer <<database wrapper>> :InventoryServer <<database wrapper>> :AccountPayable Server <<business logic>> anInvoice Agent <<business logic>> aSupplier Agent <<database wrapper>> :ContractsServer <<database wrapper>> :Operations FundsServer <<business logic>> aDelivery OrderAgent <<database wrapper>> :Requisition Server <<business logic>> aRequisition Agent <<user interface>> :Customer Interface <<business logic>> aCustomer Agent <<database wrapper>> :CatalogServer <<user interface>> :Supplier Interface aSupplier <<database wrapper>> :OrdersServer Concurrent Collaboration Diagram Browse Catalog Place Requisition Process Delivery Order Confirm Shipment Confirm Delivery Send Invoice Subsystem Collaboration Diagram Bank Subsystem :Bank SubSystem Customer Organization Subsystem Supplier Organization Subsystem <<extern system interface>> :BankServer Interface <<database wrapper>> :InvoiceServer <<database wrapper>> :InventoryServer <<database wrapper>> :AccountPayable Server <<business logic>> anInvoice Agent <<business logic>> aSupplier Agent <<database wrapper>> :ContractsServer <<database wrapper>> :Operations FundsServer <<business logic>> aDelivery OrderAgent <<database wrapper>> :Requisition Server <<business logic>> aRequisition Agent <<user interface>> :Customer Interface <<business logic>> aCustomer Agent <<user interface>> :Supplier Interface <<database wrapper>> :OrdersServer <<database wrapper>> :CatalogServer Aggregazioni Subsystem Collaboration Diagram Bank Subsystem :Bank SubSystem Customer Organization Subsystem Supplier Organization Subsystem <<extern system interface>> :BankServer Interface <<database wrapper>> :InvoiceServer <<database wrapper>> :InventoryServer <<database wrapper>> :AccountPayable Server <<business logic>> anInvoice Agent <<business logic>> aSupplier Agent <<database wrapper>> :ContractsServer <<database wrapper>> :Operations FundsServer <<business logic>> aDelivery OrderAgent <<database wrapper>> :Requisition Server <<business logic>> aRequisition Agent <<user interface>> :Customer Interface <<business logic>> aCustomer Agent <<user interface>> :Supplier Interface <<database wrapper>> :OrdersServer <<database wrapper>> :CatalogServer Subsystem Collaboration Diagram 1 per Banca 1 per Customer Org. Customer Organization Subsystem Bank Subsystem Completo 1 per Supplier Org. :BankSubsystem Supplier Organization SubSystem <<aggregate subsystem>> :PaymentSubsystem <<server subsystem>> InventorySubsystem <<aggregate subsystem>> :ContractSubsystem <<coordinator subsystem>> SupplierAgentSub. <<coordinator subsystem>> :CustomerAgentSub. <<server subsystem>> OrderSubsystem <<user interface subsystem>> :CustomerInterfaceSub. <<server subsystem>> CatalogSubsystem <<user interface subsystem>> SupplierInterfaceSub. Subsystem Collaboration Diagram 1 per Banca 1 per Customer Org. Customer Organization Subsystem 1 * <<aggregate subsystem>> :PaymentSubsystem 1 1 <<aggregate subsystem>> :ContractSubsystem 1 * <<coordinator subsystem>> :CustomerAgentSub. 1 1 <<user interface subsystem>> :CustomerInterfaceSub. Cardinalità Bank Subsystem 1 per Supplier Org. :BankSubsystem Supplier Organization SubSystem * <<server subsystem>> InventorySubsystem * 1 * * <<coordinator subsystem>> SupplierAgentSub. * 1 * <<server subsystem>> OrderSubsystem * <<server subsystem>> CatalogSubsystem * * * <<user interface 1 subsystem>> 1 SupplierInterfaceSub. Ripetuto per ogni Customer Organization Customer Agent Node Payment Subsystem Node Deployment diagram Ripetuto per ogni Supplier Organization Supplier Agent Node Orders Node Catalog Node Inventory Node Bank Node <<Internet>> Customer Interface Node {1 per customer} Contract Subsystem Node Supplier Interface Node {1 per supplier} Ripetuto per ogni banca