Upload
agcristi
View
314
Download
0
Embed Size (px)
Citation preview
Department of InnovationIT University of Copenhagen
March 2004
Kernel Design I:Design of a
configurator productHenrik Reif Andersen
Goal: To design a software product for developing configurators to be used in various areas of applications
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
Overall goal & plan for lecture
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
Examples:
* 8 queens ( http://localhost/configit/Queen/queen.asp )
* bikes (http://localhost/configit/Bike/bike.asp )
* others
Det interaktive konfigurationsproblem
Alle mulige konfigurationer
Alle gyldige konfigurationer
En (interaktiv) konfigurator skal:1. Sikre man ender med en gyldig konfiguration2. Guide brugeren frem mod målet
Interaktive konfiguratorer baseret på produktmodeller
Produktmodel: x1 , ... , xn parametre / variable
D1 , ... , Dn værdier / domæner r1 , ... , rm regler / formler
Svarer til een stor formelφ( x1 , ... , xn )
som angiver de gyldige konfigurationer
En bruger vælger en parameter og en (gyldig) værdi x = vKonfiguratoren svarer med de gyldige værdier V1 , ... , Vn for
alle parametrene
Eksempel: Mærkelige t-shirts...
color: [ black | white | red | blue ];
size: [ S | M | L | XL ];
print: [ MiB | StW ];
if print = MiB then color = black;
if print = StW then size = L or size = XL;
[] black [] S [] MiB
[] white [] M [] StW
[] red [] L
[] blue [] XL
color: [ black | white | red | blue ];
size: [ S | M | L | XL ];
print: [ MiB | StW ];
if print = MiB then color = black;
if print = StW then size = L or size = XL;
[] black [] S [] MiB
[] white [] M [] StW
[] red [] L
[] blue [] XL
Bruger vælger: color = white
Eksempel: Mærkelige t-shirts...
√
color: [ black | white | red | blue ];
size: [ S | M | L | XL ];
print: [ MiB | StW ];
if print = MiB then color = black;
if print = StW then size = L or size = XL;
[] black [] S [] MiB
[] white [] M [] StW
[] red [] L
[] blue [] XL
Bruger vælger: color = white, konfiguratoren konkluderer...
Eksempel: Mærkelige t-shirts...
√ √
color: [ black | white | red | blue ];
size: [ S | M | L | XL ];
print: [ MiB | StW ];
if print = MiB then color = black;
if print = StW then size = L or size = XL;
[] black [] S [] MiB
[] white [] M [] StW
[] red [] L
[] blue [] XL
Bruger vælger: size = S, konfiguratoren konkluderer...
Eksempel: Mærkelige t-shirts...
√
color: [ black | white | red | blue ];
size: [ S | M | L | XL ];
print: [ MiB | StW ];
if print = MiB then color = black;
if print = StW then size = L or size = XL;
[] black [] S [] MiB
[] white [] M [] StW
[] red [] L
[] blue [] XL
Bruger vælger: size = S, konfiguratoren konkluderer...
Eksempel: Mærkelige t-shirts...
√ √√
Hvor svært er det?
Lad os antage værdierne kun er boolske {0,1} og regler kun kan angives ud fra variable, not, og and
(SAT) Spørgsmålet findes x1 , ... , xn så φ( x1 , ... , xn ) er sand er NP-fuldstændigt (Cook 1972).
Essensen er:• Det er nemt at checke en løsning• Det er svært at finde en løsning
Interaktiv konfiguration: Rigtig mange SAT-problemer!
Når en bruger har valgt x1,...,xk skal man beregne de gyldige værdier for xk+1, ... , xn. Det svarer til et SAT-problem for hver mulig værdi xi = v.
Nogle konfiguratorer undgår at løse SAT-problemer, ved1. Kun at tillade valg i fast rækkefølge2. At begrænse regler så de kun taler om værdier der er kendte3. Kun at beregne gyldige værdier for xk+1
Det giver dog problemer med anvendeligheden:1. Dead-ends kan ikke undgås2. Svært at lave og vedligeholde produktmodellen3. Fasttrådet rækkefølge giver dårlig brugergrænseflade
Interaktiv konfiguration: Der skal løses rigtig mange SAT-problemer!
Der findes ingen algoritme som altid løser SAT effektivt!
Alle algoritmerne kan tage eksponentiel tid. Det er ubehageligt! (2n vokser hurtigt, n=10 2n=1024, n=40 2n=1 billion, n=600
2n=antal elementarpartikler i universet)
Man må anvende algoritmer som "oftest" virker godt.
Eksempler:Constraint propagation Virtual Tabulation
rules complexsearch software
rulesVT
generation VT lookup
offline online
configurator
configurator
cons
tr ain
t pr
o pa g
a tio
nvi
rt ua l
tabu
lat io
nInteractive Configuration: Virtual Tabulation
NP-fuld.
NP-fuld. P
Gyldige domænerProduktmodel:
x1 , ... , xn parametre / variable D1 , ... , Dn værdier / domæner r1 , ... , rm regler / formler
Kerne-operation:givet værditildeling
l = [xi1 = vi1, xi2 = vi2, ... , xik = vik]
beregn
(V1, ..., Vn) = valid_domains(l)
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
Summary:Build configurator tool based on Virtual Tabulation (VT) with the two key-ingredients:- a VT generator- a VT runtime (with valid_domains(l) )
Questions:1. Overall structure?2. Interfaces?3. Components?
Kernel architecture (I)
Kernel, two parts:
1) VT generator
VTgen: XML (product model) -> XML (VT)
2) VT runtime
load: XML (VT) -> ()valid_domains:
XML (l, choices) -> XML (V1,...,Vn)
Kernel architecture (I)
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
Platforms for:
* Development environment?(Notepad, eller anden teksteditor, alt...)
* VT generator?(Windows, command line (.exe))
* VT runtime?(Java, .NET – kerne måske i C)
* Web-server functionality?(ASP.NET, Servlets ok, php: måske?)
Platforms & implementation technologies
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
What of the licensing models from the book can be used and how?1: Hosting-model, VT-generator og VT-runtime hostes undtaget evt selve ASP-siden
2: Salgs-model med to elementer VT-generator, VT-runtime
3: Pay-per VT-generation, baseret på størrelse
1. pay-per VT-generation, gratis runtime + engangsfee2. perpetual på VT-runtime3. rental4. transaktionspris pr valid-domains ved hosting5. størrelse af modellerne
Licensing
Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions
Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration
Extensions1. Multi-language (http://localhost/configit/Tshirt/tshirt.asp ) 2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration
Extensions1. Multi-language2. Force-functionality (revisit 8 queens, bike) 3. Computations (e.g. prices)4. Embedded configurator5. Database Integration
Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices) (Psion) 4. Embedded configurator5. Database Integration
Sales Configurator Case: Psion Teklogix is a global provider of
customizable solutions for mobile computing and wireless data collection
Use Configit as its configuration-based sales support solution in N. American and EU operations, ensuring sales staff are working with complete, accurate product configurations in a standard web browser
Benefits: offline and online configuration customer needs are addressed faster greater accuracy in orders and quotes increased customer satisfaction substantial improvement in efficiency
and productivity for sales operations Configit provides a unique extraction
tool for Baan ERP systems, and is fully integrated with Psion’s CRM system
Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration