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
Scarica

montagna