Deliverable (public)
Transcription
Deliverable (public)
Project Number IST-1999-10375 Project Title INTELLECT Document Type Deliverable Document Title Best Practice Report Document Number D18 Due Date 18/02/02 Delivery Date 08/03/02 Document Status Final Workpackage(s) WP6 Security Internal File Name INT-D18FINAL.doc Short Description This document describes best practices from the INTELLECT project. Keywords Best Practice Partners owning BIBA Partners contributed All Partners Made available to Jorge Gasós (CEC) INTELLECT IST-1999-10375 Content 1 Starting point..................................................................................................................................... 4 1.1 INTELLECT Rationale ............................................................................................................... 4 1.2 INTELLECT Project Objectives ................................................................................................. 4 1.2.1 Technical Overview............................................................................................................ 4 1.3 INTELLECT Partnership............................................................................................................ 6 1.4 INTELLECT Approach............................................................................................................... 7 1.5 Innovation .................................................................................................................................. 7 2 INTELLECT Network Concept.......................................................................................................... 9 3 Experiencing the Pilots ................................................................................................................... 13 3.1 Effectiveness ........................................................................................................................... 13 3.1.1 Prototype platform ............................................................................................................ 13 3.1.2 Prototype architectural components ................................................................................ 16 3.2 Efficiency ................................................................................................................................. 18 3.2.1 3.2.1.1 Serving pre-generated HTML pages ........................................................................ 19 3.2.1.2 Serving HTML pages dynamically generated by Cocoon......................................... 19 3.2.1.3 Compiling, executing and serving XSP pages.......................................................... 20 3.2.1.4 Executing and serving pre-compiled XSP pages ..................................................... 20 3.2.1.5 Comparison between URLs from the three INTELLECT pilots ................................ 21 3.2.1.6 Comparison of different servlet engines ................................................................... 23 3.2.2 Configurator performance ................................................................................................ 24 3.2.2.1 Pure Java Implementation ........................................................................................ 25 3.2.2.2 SQL Implementation ................................................................................................. 27 3.2.2.3 SQL vs Java.............................................................................................................. 30 3.2.2.4 Conclusion ................................................................................................................ 31 3.2.3 4 eShop performance.......................................................................................................... 18 OrderProcessing performance ......................................................................................... 31 3.2.3.1 Database transactions .............................................................................................. 31 3.2.3.2 XML parsing.............................................................................................................. 31 3.2.3.3 XSL transformations ................................................................................................. 31 3.2.3.4 XPATH addressing ................................................................................................... 31 3.2.3.5 XML transformations................................................................................................. 31 3.2.3.6 Backoffice functionality ............................................................................................. 32 3.2.3.7 Results ...................................................................................................................... 32 3.2.4 Helpdesk performance ..................................................................................................... 32 3.2.5 VR Applet performance.................................................................................................... 32 INTELLECT Lean Configuration: Interactive Product Configuration for the Internet ..................... 34 4.1 Configuration concepts............................................................................................................ 35 4.1.1 INT-D18FINAL Rules-based configuration ............................................................................................... 35 © The INTELLECT consortium – 2001 Page 2 of 58 INTELLECT IST-1999-10375 4.1.2 Case-based configuration ................................................................................................ 35 4.1.3 Object oriented configuration ........................................................................................... 35 5 4.2 Requirements for on-line Configuration .................................................................................. 37 4.3 Lean Configuration .................................................................................................................. 37 4.4 INTELLECT Product Data Model ............................................................................................ 38 4.5 Implementation ........................................................................................................................ 41 4.6 Conclusion............................................................................................................................... 42 Secure Communication in Electronic Shop Systems ..................................................................... 43 5.1 Encryption................................................................................................................................ 43 5.1.1 Secret Key Encryption...................................................................................................... 43 5.1.2 Public Key Encryption ...................................................................................................... 44 5.2 Authentication and Digital Signature ....................................................................................... 44 5.2.1 Certificate and Certificate Authority (CA) ......................................................................... 45 5.2.2 Secure Socket Layer (SSL).............................................................................................. 45 5.2.2.1 5.2.3 5.3 6 7 8 9 SSL Protocol Stack: .................................................................................................. 46 HTTPS.............................................................................................................................. 47 Conclusion............................................................................................................................... 47 Help-desk System in E-Shop Systems........................................................................................... 48 6.1 IP communication .................................................................................................................... 48 6.2 Quality-of-Service .................................................................................................................... 49 6.3 Page Mirroring ......................................................................................................................... 50 Virtual Reality in variant Configuration ........................................................................................... 51 7.1 Functionality and implementation............................................................................................ 51 7.2 Creation of 3D-Data ................................................................................................................ 52 7.3 Conclusion:.............................................................................................................................. 54 Distributed Ordering system for the Extended Enterprise.............................................................. 55 8.1 Workflow system for incoming orders ..................................................................................... 55 8.2 Back-office system integration ................................................................................................ 55 8.3 Distributed Infrastructure ......................................................................................................... 55 8.4 XML parser issues................................................................................................................... 56 8.5 Conclusion............................................................................................................................... 56 Acknowledgements ........................................................................................................................ 57 References............................................................................................................................................. 58 INT-D18FINAL © The INTELLECT consortium – 2001 Page 3 of 58 INTELLECT IST-1999-10375 1 Starting point 1.1 INTELLECT Rationale Even though the spreading of electronic shop systems grows continuously the presentation of the products is mostly restricted to static pictures, in rare cases to stored videos. The opportunities to present the potential customers with the products including their variants and configurations using modern multi media techniques are not fully exploited in internet shops. An important reason for this situation is the poor support or even the lack of support by electronic shop systems for the product variant's handling. This includes all possible variants and also automatically exclusion of impossible variants. 1.2 INTELLECT Project Objectives To improve this situation the goal of the proposed project is the creation of an online configuration tool for products. Customers of electronic shop systems should combine and select offered products via Internet by the use of advanced multi media techniques and information. Target group of companies are manufacturers, merchants, consultants, etc. who advise on or sell e. g. bicycles, computer networks, computers, furniture, clothes, automobiles, travels. The customer continues visiting the electronic shop as usual via the Internet. The following cases should be taken into account: • If the information presented does not fit the customer's needs, he will be able to configure the selected product in all possible manners. Possible configurations are changing colours, composition or ingredients, equipment or décor, etc. Techniques to be used should be 3D views, virtual reality, video and sound, textual support and more. • In case of questions the customer can contact the company's hotline or call centre via the Internet. Internet phone, online chat system or video conferencing tools should be used to enter the support process. • In addition the status of the current production or delivery process will be made visible to the customer with a monitoring tool attached to the order processing module. • Payment and/or clearing processes will be designed so that the various electronic means of payment are encapsulated in a system that will support as much as possible electronic currencies by hiding their complexity to the users. From the customer's point of view the system must be usable as easy as possible and should reflect the proceedings of a 'real' shopping event one to one. The goal is to open the world of electronic purchase to the average consumer without any (computer related) specialised knowledge. On-line configuration using 3D interfaces integrated into electronic shop systems with the use of a new secure electronic financial transaction standard will lead to a new type of trade in the business sector of trading and shopping. 1.2.1 Technical Overview The system to be developed by the proposed INTELLECT project is composed of several modules which are shown in the following figure. The main Intranet modules consist of the existing database (management system) for the order processing module and electronic shopping. This database contains all product and order related information. It will be populated and updated using information already available in the supplier systems. This information will be updated on-line using standards for the exchange of product data (e.g. STEP). In addition a second database is filled with multi media representations (volumes models, sounds, videos, textures, etc.) as well as all rules of their interdependencies concerning the technical construction and representation of the company's product line. A configuration module supports creation and population of this second database. An additional module, also based on the enhanced database information, is intended to generate print catalogues or CD-ROM information. Further – next to the electronic shop module – the presentation module is intended as the main module for online interaction with the customer. This module offers INT-D18FINAL © The INTELLECT consortium – 2001 Page 4 of 58 INTELLECT IST-1999-10375 • individual configuration of the viewed objects, • textual and audio visual explanations, • tips for the customer concerning his selections, things that fit well together in terms of technical properties, style and design, • strength and weakness of the product when fitted with optional features and more. oder receipt customer order customer selection Internet individual configuration All presentation on the screen of the customer's computer will be realised with newest multi media technologies. Virtual reality (VRML) will be used to demonstrate e. g. the fit of the accessories selected to the virtual image of the main product. user interface interaction / presentation order processing advanced shop user interface security module catalogue preparation (CD-ROM, printed) configuration module multimedia information, rules products, order transactions In case of unanswered questions the customer has the possibility to call the company's hot line or call centre with the application via the Internet. Technologies to be used are internet telephony with screen sharing and / or video conferencing. The electronic shop module takes the order of the customer over a secure connection via the Internet. At this time a human employee could carry out a spot check of the order to attest the customer the correctness of the order. An acknowledgement with complete details of the order will be returned automatically to the customer. In addition a receipt with detailed information about the possibility to trace the status of the production or the delivery will be provided. Intranet Special attention will be directed to secure transactions over the Internet. The proposed project will evaluate new emerging standards like the Internet Online Trading Protocol. IOPT is now being developed under the governance of the Trade Working Group of the Internet Engineering Task Force IETF. The IOTP consortium has stated that they plan a pilot to support the German 'GeldKarte' card and SET during 1999. The main focus of IOTP products is to establish interoperability, to enhance the negotiation process of trading parameters, which subsume payment parameters, and to encapsulate two or more of the available e-commerce payment schemes. These could be any combination of SET, Mondex, CyberCash, VisaCash, Proton, GeldKarte, eCash, Millicent, E-Check, CyberCoin and edd (electronic direct debit) to name just a few. INT-D18FINAL © The INTELLECT consortium – 2001 Page 5 of 58 INTELLECT IST-1999-10375 1.3 INTELLECT Partnership OptiNet GmbH the project co-ordinator is a German network services company. Their main areas are developing and/or supporting their customers in the sectors of Internet, Intranet, Extranet, passive and active network components, and electronic commerce. Tasks of OptiNet are among other things conception and set-up of advanced network solutions, security and firewall solutions, Internet access solutions, and training and coaching. Partner OptiNet GmbH BIBA Anecon Atlantide S.A. Blauwerk HiTEC Interset CC Main responsibility D Network service provide; project co-ordinator, developer and provider of the advanced internet service, and co-ordinator of the pilot system integration. D Research Institute; developer of the variants' handling configuration module and visualisation of the product information; evaluation and dissemination activities. A Bank software developer; implementation of system for secure electronic financial transactions supporting international standards. F Software house and consulting; developer of the "Advanced Virtual Reality Internet Shop", support of end users during the pilot phase. A Small sized pushtype scooter producer; integration of system pilot, pilot site, end user. F World class high-tech, high-performance, high-end bikes EL Large computer hardware wholesaler OptiNet hosts several electronic commerce solutions for customers. Main responsibility of OptiNet in the project is to provide the shop, internet services, and networks. Based on this experience and the restrictions of today's electronic shop systems OptiNet decided to merge BIBA's experience in industrial variant handling procedures and applications, and OptiNet's experience in electronic commerce solutions. Looking how to develop a software demonstration pilot for their ideas they remembered the French software house Atlantide. Atlantide was known as reliable partner and Atlantide's strategic development lines are in accordance with the planned development. Therefore Atlantide will be leader of the "Software Concept" and Software Implementation" workpackages due to their experience. Their own developments will be in the area of user interfaces to ensure a high grade of user friendliness, and in integration of the other partners developments. In electronic commerce the questions about security and payment is evident. A software company, Anecon from Austria, committed themselves to complement the consortium in this area. They took over the lead in the workpackages for conception and implementation of the security module for financial transactions. As a developer of bank and insurance software they are highly qualified for this task, bringing in evident experience by former developments and by participation in appropriate bodies by themselves and closely related companies. BIBA will contribute the concept and prototype of the variant configuration module and on visualisation of the product information. Finally, BIBA will disseminate the results of the INTELLECT project throughout Europe by giving presentations on conferences, workshops and fairs. BIBA proposed as highly qualified the bicycle manufacturing industry to join the consortium as and users. Blauwerk is a manufacturer of pushtype scooters for adults. Blauwerk participates as end user who aims to increase the customisability of its products via the Internet. Blauwerk has its own WWW site but this shows only static product descriptions. Thus, they need tools and approaches for creating configurable product models and the corresponding multimedia information. HiTEC’s unique selling point and competitive edge as a bicycle manufacturer is the configurability of their high performance products compared to those of the competitors. The customers can involve themselves in the design of a product and thus get the feeling of obtaining additional (even exclusive) information. This is made possible by extensive configuration possibilities allowing the end-user to produce new variants on the product and to individualise them according to his taste, physical size etc. Interset is a typical computer hardware wholesaler, offering its products to distributors and directly to the customer. Due to the European spread of their production sites and market, Interset expects a major benefit from the new INTELLECT tools for the availability of their product information both for the customers and the company itself. INT-D18FINAL © The INTELLECT consortium – 2001 Page 6 of 58 INTELLECT IST-1999-10375 1.4 INTELLECT Approach Today's online shops offer different goods to Internet users. The shops are mostly realised to be used with a World Wide Web browser, if necessary with additional plug-ins. The presentation of goods is restricted to pictures, photos, textual descriptions or specifications, short video sequences and sound. Interactive configuration or composition, 3-dimensional movable objects, variant's selection, and more is not possible with the current systems. The field of bandwidth and transmission speed is not brought into the focus of this proposal. The consortium is sure about the increase of performance in the Internet in the very near future. Nearly all shop systems use database management systems to store and access all relevant information concerning products, orders, and buyers and a lot of them even have interfaces to current inhouse order processing systems. This is the point of departure to enhance the existing solutions with new connectors based on standardised interfaces, protocols and languages (e.g. CORBA, ODBC, JDBC). On the other hand, most of the systems lack a connection to product data, i. e. CAD, EDM or PDM systems that would allow direct access to product configuration information. Concerning paying methods from the customer's point of view various solutions are used to transfer the money from credit card burden to electronic cash/money. The buyer as well as the vendor has to own/support several means of payment to do business together. A third party concerned is the bank which has to be integrated in all money processing tasks. To guarantee security for financial transactions also several solutions are implemented and have to be taken into account. From the technological point of view form paying mechanisms an international standardised procedure is missing to encapsulate existing transaction protocols. For this reason special attention must be drawn to secure financial transactions. INTELLECT will strictly focus on standardised protocols (see 'IOTP' paragraph in the workplan description) Several software systems are available on the market to handle product variants. Most of them are intended for complex products like assembly lines. Only very few applications are also suitable for simpler and smaller articles like bicycles. The most important aspects to be covered by these systems are the handling of the different product variants that have been actually generated. Additionally, it has to be ensured, that only valid variants can be assembled. This is normally achieved by assigning rules to all components, specifying the usage constraints. 1.5 Innovation The INTELLECT project will use "intelligent" rules to define the degree of interaction the company wants to deliver to customers on its product for individual configuration. Thus, these rules will be read by the configuration module and processed to adapt customers individual configuration product tools on its user interface, according to a limited set of behaviours. The main advantage consists in the opportunity for the company to personalise and make more attractive the services it offers to customers. Normally the rules are defined using formal languages that are difficult to understand for the typical customer or part supplier. It is therefore required to allow some kind of "nearly natural language" to generate rules for new parts added to the database. The "intelligent" rules will be defined by the company itself. So, one of the main constraints will consist in giving the company the opportunity to easily incorporate these rules in the second database and link them to the VRML and Java3D object parameters and behaviours. For the envisaged goals, it is necessary to have an external interface that allows to import and export the variant data in a neutral format and convert it into the 3D data needed for the visualisation. Through this user interface, customers will be able to interact with the product they are interested in, by modifying product parts parameter's, such as colour, size, shape, texture, etc., in the limits of the interdependencies rules which will be preliminary fixed by the company and stored in the second database. To offer customers such services, the user interaction module will be based on latest VRML and Java3D developments. Thus, a multimedia presentation of the product could be these delivered by VRML or Java3D objects, so that the configuration of the viewed product on the user interface could be reduced to interaction on the associated physicals VRML or Java3D object parameters. Such interactions will be defined by the rules of interdependencies: Product parts are associated with a set of physical parameters which are associated with a set of values defined by the company that sells the product. INT-D18FINAL © The INTELLECT consortium – 2001 Page 7 of 58 INTELLECT IST-1999-10375 The advancements to be achieved in the proposed project are composed of task for the electronic shop system vendor, the shop owner/operator, and third the shop user. The vendor will be able to sell a product that is featured with features for graphical representation not available in today's shops and enhancement of the good's palette to succeed in higher market penetration. In addition clearing mechanisms in the scope of business to business, business to customer and to banking institutions will be simplified by the use of a standardised protocol for financial transactions. The shop owner will also be able to update the product portfolio by simply adding new components to the database. The customers will then be able to define new variants of the product without any changes to catalogues etc. The shop owner/operator can increase buyers' rush by simple usage and better (more realistic) presentation. The configuration module of the proposed system allows the operator to handle the complete product's multimedia information. For that purpose he has tools at his' disposal for using existing and creating new graphical representations including logical interdependencies of all product's variants. For the installation and management of the shop system the operator will have support by a holistic tool kit to include product relevant information usually not stored in the order processing system of the company. With the proposed solution the shop owner will achieve a closer customer relationship by hotline via advanced communication methods like Internet telephony, online chat system or video conferencing tools up to better after-sales services. In addition parallel preparation of other product catalogues (CDROM, printed) based on the existing database managed information is available. Again, the system will support all usual paying methods by implementing an open and standardised protocol for secured financial transactions. The prospective buyer is usually technical inexperienced. For this reason the proposed advanced electronic shop will simplify the selection process of even complex products or product structures reflecting the 'real world'. The system will adapt the handling procedures of the shop to the needs of an average customer by the use of simple and effective multimedia techniques. In addition the paying process will be completely transparent to the user without any dependence on specific means of payment. Summarised the following advancements will be achieved: • For the shop system vendor: • Higher chances of market penetration, • better standardised clearing mechanisms. • For the shop owner/operator: • Increased buyers' rush by simple usage and better (more realistic) presentation, • easy to handle configuration module for the complete product's multimedia information; tools for using existing and creating new graphical representations including logical interdependencies of all product's variants, • installation and management of the shop with support by a holistic tool kit including product relevant information usually not stored in the order processing system of the company, • closer customer relationship by hotline via advanced communication methods like Internet telephony, online chat system or video conferencing tools up to better after-sales services, • parallel preparation of other product catalogues (CD-ROM, printed) based on the existing database managed information, • support of all usual paying methods by using e.g. OTP. • For the user: • User friendliness: simplified selection even by complex products or product structures, by better understanding of the handling procedures of the shop system for average customers, technical inexperienced people, • suitable and realistic display of the goods prevents a prospective buyer from ordering the wrong things and guides him to the desired product; the return of purchase will be minimised, • paying process completely transparent to the user. INT-D18FINAL © The INTELLECT consortium – 2001 Page 8 of 58 INTELLECT IST-1999-10375 2 INTELLECT Network Concept The INTELLECT product is based on a three tier (layer) design. The next figure provides an overview of the software products and tools, which were necessary for the development of the prototype of INTELLECT. On the one hand, the prototype uses open source products as it's underlying backbone. On the other hand, third party products are used for direct real-time communication via NetMeeting or security connectivity via SSL. In addition, commercial products regarding databases are used. Therefore the architecture can be devided into three tiers on the server site: 1. JBoss (Tier 1): The JBoss/server is an open source, standards-compliant, Enterprise Java Beans (EJB) application server implemented in 100% pure Java code. The JBoss community of over 500 developers world-wide is working to deliver the full range of J2EEtools as the premier enterprise Java application server for the Java 2 enterprise edition platform. The JBoss/server and complement of products are delivered under a public license. With 1500 downloads per day on average, JBoss/server is the fastest growing J2EE based server worldwide. 2. Tomcat (Tier 2): Tomcat is the reference implementation for the Java Servlet 2.2 and Java Server Pages (JSP) 1.1 technologies. It includes the web server technology and offer this functionality base for the prototype. 3. Cocoon (Tier 2): Cocoon is a 100% pure Java publishing framework that relies on new W3C technologies (such as DOM, XML, and XSL) to provide web content. The Cocoon project aims to change the way web information is created, rendered and served. The new Cocoon paradigm is based on the fact that document content, style and logic are often created by different individuals or working groups. Cocoon aims for a complete separation of the three layers, allowing the three layers to be independently designed, created and managed, reducing management overhead, increasing work reuse and reducing time to market. 4. Oracle (Tier 3): The database Oracle8i standard edition enables business to cost-effectively develop and deploy Internet-based solutions. Oracle8i includes native support for technologies like SQL, XML, and Java that have become the standards on which today's e-businesses are built. For the independence of the end-user presentation and functionality, the project decided to use Java Server Pages (JSP) technology which allows web developers and designers to rAPIdly develop and easily maintain, information-rich, dynamic web pages that leverage existing business systems. As part of the Java family, JSP technology enables rAPId development of web-based applications that are platform independent. JSP technology separates the user interface from content generation enabling designers to change the overall page layout without altering the underlying dynamic content. JSP technology uses XML-like tags and scriptlets written in the Java programming language to encapsulate the logic that generates the content for the page. Additionally, the application logic can reside in server-based resources (such as Java Beans component architecture) that the page accesses with these tags and scriptlets. Any and all formatting (HTML or XML) tags are passed directly back to the response page. By separating the page logic from its design and display and supporting a reusable component-based design, JSP technology makes it faster and easier than ever to build webbased applications. INT-D18FINAL © The INTELLECT consortium – 2001 Page 9 of 58 INTELLECT IST-1999-10375 Servlet engine Client’s browser EJB engine database Xsp Cocoon Admini strative tools EJBs Servlets & JSP Tomcat JBoss Oracle Application server Server side network Figure 1 – System architecture of INTELLECT JSP technology is an extension of the Java Servlet technology. Servlets are platform-independent, 100% pure Java server-side modules that fit seamlessly into a web server framework and can be used to extend the capabilities of a web server with minimal overhead, maintenance, and support. Unlike other scripting languages, servlets involve no platform-specific consideration or modifications; they are Java application components that are downloaded, on demand, to the part of the system that needs them. Together, JSP technology and servlets provide an attractive alternative to other types of dynamic web scripting/programming that offers platform independence, enhanced performance, separation of logic from display, ease of administration, extensibility into the enterprise and most importantly, ease of use. Java Beans component architecture is the platform-neutral architecture for the Java application environment. It can develop or assemble network-aware solutions for heterogeneous hardware and operating system environments, within the enterprise or across the Internet. Java Beans component architecture extends "Write Once, Run Anywhere" capability to reusable component development. In fact, the Java Beans architecture takes interoperability a major step forward - every code runs on every operating system and also within any application environment. A beans developer secures a future in the emerging network software market without losing customers that use proprietary platforms, because Java Beans components interoperate with ActiveX. Java Beans architecture connects via bridges into other component models such as ActiveX. Software components that use Java Beans APIs are thus portable to containers including Internet Explorer, Visual Basic, Microsoft Word, Lotus Notes, and others. The JavaBeans specification, which was completed ahead of schedule, defines a set of standard component software APIs for the Java platform. The specification was developed by Sun with a number of leading industry partners and was then refined based on broad general input from developers, customers, and end-users during a public review period. The Java Servlet technology provides web developers with a simple, consistent mechanism for extending the functionality of a web server and for accessing existing business systems. A servlet can almost be thought of as an applet that runs on the server side - without a face. Java servlets have made many web applications possible. Servlets are the Java platform technology of choice for extending and enhancing web servers. They provide a component-based, platform-independent method for INT-D18FINAL © The INTELLECT consortium – 2001 Page 10 of 58 INTELLECT IST-1999-10375 building web-based applications, without the performance limitations of CGI programs. And unlike proprietary server extension mechanisms (such as the Netscape Server API or Apache modules), servlets are server- and platform-independent. This leaves you free to select a "best of breed" strategy for servers, platforms, and tools. Servlets have access to the entire family of Java APIs, including the JDBC API to access enterprise databases. Servlets can also access a library of HTTP-specific calls and receive all the benefits of the mature Java language, including portability, performance, reusability, and crash protection. Today, servlets are a popular choice for building interactive web applications. Third-party servlet containers are available for Apache Web Server, iPlanet Web Server, Microsoft IIS, and others. Servlet containers can also be integrated with web-enabled application servers, such as BEA WebLogic Application Server, IBM WebSphere, iPlanet Application Server, and others. JSP technology is an extension of the servlet technology created to support authoring of HTML and XML pages. It makes it easier to combine fixed or static template data with dynamic content. INTELLECT aims to provide an enhanced solution including all practicable electronic commerce features, and offering a qualitative representation of the product. The INTELLECT system is composed of five modules: • The e-shop as the e-shop as the main interface visible to the customer supplies the general infrastructure of an e-commerce system (basket, catalogue, secure communications, localisation, multimedia presentations, etc.). • The Virtual Reality module provides a 3D visualisation of the product, and enables the customer to configure its own product by choosing each of its components. • The Configurator supports the generation of product variants as well as implements a front end to the database thereby offering infrastructure for the administration of products and components. • The help-desk provides on-line help to the customer using features like page mirroring, voice over IP, and video conferencing. • The order-processing module as a front end to the back-office system manages the orders, and offers an interface between the INTELLECT application, and the back office systems. Client Client Distributor Internet Support Backoffice Helpdesk Helpdesk INTELLECT Configurator VR VR Producer Client DB E-Shop DB Ordering Client Supplier DB Client Figure 2 - INTELLECT Module architecture The core modules use a common product database for all product and customer data. The database contains all product and order related information partitioned into separate areas one for each module. It is populated and updated by using information already available in the supplier systems. This information is updated on-line using standards for the exchange of product data (XML, SOAP). In addition, a database of multimedia data (volumes models, sounds, videos, textures, etc.) exists on the HTTP INT-D18FINAL © The INTELLECT consortium – 2001 Page 11 of 58 INTELLECT IST-1999-10375 Server serving the shop pages and is used for product demonstrations within the product catalogue of the eShop. Furthermore the Helpdesk and VR modules offer extended functionality that is implemented with software running on the customers computer. This software consists mainly of the browser and a Java Virtual Machine (JVM). In order to make use of the Videoconferencing and CM/CW features of Intellect a H.323 compatible client (i.e. Microsoft Netmeeting) is required. The VR modules being the main front-end to the Configurator offers: 1. Full VR navigation functionality based on VRML scene description data and Java3D 3D graphics technology 2. Individual configuration of the viewed objects 3. Textual and audio visual explanations 4. The possibility of defining preferences that influence configuration If the customer requires further assistance or simply wishes to speak to a salesperson a video or audio conference session with the company's hot line or call centre can be initiated via the Help-desk module. The Help-Desk provides a direct link between the browser of the customer and the browser of the salesperson thereby making it possible for the salesperson to view the same configuration the customer is working on. The Salesperson also has the possibility to take part in the configuration process and actively change the product variant in order to help the customer. The electronic shop module finally takes the order of the customer over a secure connection via the Internet. At this time, a human employee could carry out a spot check of the order to confirm the correctness of the order. An acknowledgement with complete details of the order is then returned automatically to the customer. Customer BROWSER Web page Cocoon Servlets/ JSP‘s EJB‘s 3D Applet HD Applet DB Netmeeting H.323 Helpdesk BROWSER Web page 3D Applet HD Applet Netmeeting H.323 Figure 3 - INTELLECT Module Architecture All INTELLECT Server modules are implemented as Java Enterprise Java Beans (EJB) that are installed on one or more EJB compliant application servers. It is important to note, that the various beans can function separately from one another. This allows for a distributed setup with some beans being installed on the server of an ISP and some being only partially online on the producers or distributors site. A further possibility is the use of more than one bean of a certain type (i.e. ordering) in order to facilitate the integration of distributed back-office infrastructures. All communication between the beans and the customers browser is filtered through appropriate Java Servlets that serialize Java objects and tunnel them through a standard communications port (TCP Port 80) used for HTTP transactions. This allows the use of INTELLECT through any standard type of firewall or packet-filter employed by the customer. INT-D18FINAL © The INTELLECT consortium – 2001 Page 12 of 58 INTELLECT IST-1999-10375 3 Experiencing the Pilots This chapter presents the findings of the evaluation activities conducted in preparation, during and after the INTELLECT pilots according to standardised usability testing criteria. The first section “effectives” directly addresses “The accuracy and completeness with which specified users can achieve specified goals in particular environments.“ [2] For this we present the functionality offered by INTELLECT in relation to the tasks set for each pilot followed by concrete technical data on benchmarks demonstrating the efficiency of the INTELLECT solution. The second section “efficiency” addresses “The resources expended in relation to the accuracy and completeness of goals achieved.” [2] For this we match goals identified during the user requirements phase of the project against the functionality listed in the previous section as it was tested in the pilots in order to demonstrate “the accuracy and completeness of goals achieved”. The last section contains findings in the area of satisfaction and describes experiences of the end-users during the INTELLECT pilot phase. 3.1 Effectiveness This criterion represents the functionality offered by the INTELLECT pilot within the three pilot scenarios formulated after the requirements of the three end-users. The first criterion to be considered is the amount and type of functions offered by the software followed by detailed performance data on all relevant parts of the INTELLECT prototype. Benchmark results presented here are not related to a specific pilot instead they apply to all scenarios. The subject of this section is to summarise the prototype-related aspects of the pilot scenario. The INTELLECT prototype aims to provide an enhanced solution including all practicable electronic commerce features, and offering a qualitative representation of the product based on available VRML material. The following paragraphs present a rough overview of the components comprising the INTELLECT prototype. We then proceed to present the architecture of the prototype scenario of the INTELLECT pilot network. 3.1.1 Prototype platform The INTELLECT prototype is based around the INTELLECT Application Server the software responsible for hosting the shops for the three INTELLECT pilots (see Figure 4). This server consists of a group of Open Source Java based products that manage all INTELLECT Enterprise Java Beans and Servlets as well as handle the XML files of the various Shops, generate HTML pages and serve them to the client. The exact components of the Application Server and their specific function are described in the following paragraphs. The INTELLECT Application Server used during the Pilots was installed on a machine with permanent Internet access at BIBA. This gave the developers and the end-users the possibility of updating and working with the system on a 24/7 basis. All three INTELLECT pilots were installed on the same prototype server and were realised using the same database and application Server. Producer Internet Helpdesk Helpdesk Client INTELLECT Application Server VR VR Client Client DB Figure 4 – INTELLECT Pilot Topology INT-D18FINAL © The INTELLECT consortium – 2001 Page 13 of 58 INTELLECT IST-1999-10375 The actual components of the prototype were the following: • Debian GNU/Linux Version 2.2 (potato) The operating system employed as the main development and testing platform was Debian GNU/Linux. The System was chosen for its performance and flexibility as well as popularity in ASP/ISP circles targeted by the INTELLECT exploitation strategy. Regular tests on Microsoft Windows NT4 and Windows 2000 have revealed no interoperability issues. • Oracle Enterprise Edition Version 8.1.7. Oracle Enterprise Edition for Linux (http://www.oracle.com) is a best of class RDBMS providing efficient, reliable, secure data management for high-end applications such as high volume on-line transaction processing (OLTP) environments, query-intensive data warehouses, and demanding Internet applications. It should be emphasized, that INTELLECT uses none of the proprietary Oracle extensions and can be ported to a different relational database (i.e. PostgreSQL) with a minimum of effort. DB2 DB Oracle DB Postgres DB Database EJB Application Server jBoss IPlanet Apache/Tomcat Jetty Internet Web/Servlet/JSP Server WWW Figure 5 – INTELLECT Application Server • Apache Software Foundation Jakarta Tomcat Version 3.2.1. Tomcat (The Apache Jakarta Project http://jakarta.apache.org/) is a servlet container and JavaServer Pages(tm) implementation. It may be used stand alone, or in conjunction with several popular web servers (Apache HTTPd, Microsoft Internet Information Server, Microsoft Personal Web Server, Netscape Enterprise Server, etc.) • Apache Software Foundation Cocoon Version 1.8.2 Cocoon (The Apache XML Project http://XML.apache.org/) is a 100% pure Java publishing framework that relies on new W3C technologies (such as XML and XSL) to provide web content. Apache Cocoon is an XML publishing framework that raises the usage of XML and XSLT technologies for server applications to a new level. Cocoon interacts with most data sources, including: filesystems, RDBMS, LDAP, native XML databases, and network-based data sources. It adapts content delivery to the capabilities of different devices like HTML, WML, PDF, SVG, RTF just to name a few. Cocoon is integrated currently as a Servlet. Specific features of interest are: INT-D18FINAL o Database connection pooling o Servlet 2.0 spec compatibility o Good performance for heavy load conditions o High speed for XSP pages which include complex nodes o IBM Jikes Java compiler support for faster XSP page compilation © The INTELLECT consortium – 2001 Page 14 of 58 INTELLECT • IST-1999-10375 jBoss Version 2.0 JBoss (The jBoss Project http://www.jboss.org) is an Open Source, standards-compliant, J2EE application server implemented in 100% Pure Java. jBoss 2.0 is licensed under the LGPL license. In our case jBoss 2.0 is working as an EJB-server. According to the INTELLECT requirements analysis the requirements for the client should as low as possible. Any current browser supporting Java either natively or with the Sun Java pluggin can display the INTELLECT Shop-pages and make use of all the 3D presentation and configuration functions. All testing during development was conducted with Microsoft Internet Explorer 5.5 and Netscape 6.0. Testing during the pilot phase was based mainly on Internet Explorer. The facilities for running the prototype INTELLECT marketplace during the three INTELLECT pilots were provided by BIBA. The task of BIBA under the guidance of Anecon (being responsible for the demonstration platform) as marketplace operator was to document and to solve problems that may arise if the server is 24 hours per day in operation and has to answer the concurrent requests of buyers and sellers accessing the server. The experiences gained by running the marketplace will be used as input for further refinement and debugging of the overall system. The users of the INTELLECT marketplace mainly comprise the end users of the INTELLECT consortium as well as users that accessed the INTELLECT prototype via the link provided by the INTELLECT Internet Web-Site. All users interested in configuring and buying products through INTELLECT needed to access the marketplace by using a common browser (e.g. MS Internet Explorer or Netscape Communicator) including the Java 3D Java extension Library. Customers were provided with appropriate installation instructions through the INTELLECT Web-Site. Companies aiming to products through INTELLECT have to make use of the administrative tools developed by the INTELECT developer partners in order to enter new product data into the INTELLECT database. This process was heavily supported by the INTELLECT developers as it was seen as too complex for end-users with scarce technical experience to handle. The main task performed by the INTELLECT Marketplace is to transform the entered product information into a browsable product catalogue containing configurable products. Such products can be ordered thereby generating orders in a format compatible to the back-office and workflow system of the end-user (producer/distributor) systems. Support is provided through am online help-desk system that offers video-conferencing and CMCW functionality. INT-D18FINAL © The INTELLECT consortium – 2001 Page 15 of 58 INTELLECT IST-1999-10375 3.1.2 Prototype architectural components The INTELLECT prototype is composed of five modules: • The e-shop as the e-shop as the main interface visible to the customer supplies the general infrastructure of an e-commerce system (basket, catalogue, secure communications, localisation, multimedia presentations, etc.). • The Virtual Reality module provides a 3D visualisation of the product, and enables the customer to configure its own product by choosing each of its components. • The Configurator supports the generation of product variants as well as implements a front end to the database thereby offering infrastructure for the administration of products and components. • The help-desk provides on-line help to the customer using features like page mirroring, voice over IP, and video conferencing. • The order-processing module as a front end to the back-office system manages the orders, and offers an interface between the INTELLECT application, and the back office systems. Client Client Distributor Internet Support Helpdesk Helpdesk Backoffice INTELLECT Configurator VR VR Producer Client DB E-Shop DB Ordering Client Supplier DB Client Figure 6 - INTELLECT Module architecture The core modules use a common product database for all product and customer data. The database contains all product and order related information partitioned into separate areas one for each module. It is populated and updated by using information already available in the supplier systems. This information is updated on-line using standards for the exchange of product data (XML, SOAP). In addition, a database of multimedia data (volumes models, sounds, videos, textures, etc.) exists on the HTTP Server serving the shop pages and is used for product demonstrations within the product catalogue of the eShop. Furthermore the Helpdesk and VR modules offer extended functionality that is implemented with software running on the customers computer. This software consists mainly of the browser and a Java Virtual Machine (JVM). In order to make use of the Videoconferencing and CM/CW features of INTELLECT a H.323 compatible client (i.e. Microsoft Netmeeting) is required. The VR modules being the main front-end to the Configurator offers: • Full VR navigation functionality based on VRML scene description data and Java3D 3D graphics technology • Individual configuration of the viewed objects • Textual and audio visual explanations • The possibility of defining preferences that influence configuration INT-D18FINAL © The INTELLECT consortium – 2001 Page 16 of 58 INTELLECT IST-1999-10375 If the customer requires further assistance or simply wishes to speak to a salesperson a video or audio conference session with the company's hot line or call centre can be initiated via the Help-desk module. The Help-Desk provides a direct link between the browser of the customer and the browser of the salesperson thereby making it possible for the salesperson to view the same configuration the customer is working on. The salesperson also has the possibility to take part in the configuration process and actively change the product variant in order to help the customer. The electronic shop module finally takes the order of the customer over a secure connection via the Internet. At this time, a human employee could carry out a spot check of the order to confirm the correctness of the order. An acknowledgement with complete details of the order is then returned automatically to the customer. Customer BROWSER Web page Cocoon Servlets/ JSP‘s EJB‘s 3D Applet HD Applet DB Netmeeting H.323 Helpdesk BROWSER Web page 3D Applet HD Applet Netmeeting H.323 Figure 7 - INTELLECT EJB/Servlet Architecture All INTELLECT Server modules are implemented as Java Enterprise Java Beans (EJB) that are installed on one or more EJB compliant application servers. It is important to note, that the various beans can function separately from one another. This allows for a distributed setup with some beans being installed on the server of an ISP and some being only partially online on the producers or distributors site. A further possibility is the use of more than one bean of a certain type (i.e. ordering) in order to facilitate the integration of distributed back-office infrastructures. All communication between the beans and the customers browser is filtered through appropriate Java Servlets that serialize Java objects and tunnel them through a standard communications port (TCP Port 80) used for HTTP transactions. This allows the use of INTELLECT through any standard type of firewall or packet-filter employed by the customer. A more detailed view of the INTELLECT Modules is presented in “D13: Pilot Integration Documentation and Handbook”. INT-D18FINAL © The INTELLECT consortium – 2001 Page 17 of 58 INTELLECT IST-1999-10375 3.2 Efficiency The resources expended in relation to the accuracy and completeness of goals achieved.” - This criterion tries to define the necessary amount of resources for the fulfilment of the specified goals. 3.2.1 eShop performance The INTELLECT eShop benchmarks focused in the measurement of the performance related to the generation of dynamic web-pages based on an XML infrastructure this being the technically most challenging task as well as the most interesting feature in terms of innovation for the end-users. The two Servers involved in this process are Cocoon and Tomcat. The role of Tomcat is to initialise the Cocoon Servlet, and to receive the HTTP Request and pass it on to the Cocoon Servlet. On reception of a HTTP Request, Tomcat calls the Cocoon Servlet.service(HttpRequest, HttpResponse) method. When the Cocoon Servlet gets a HTTP Request from the servlet engine, it sets up an Environment (a HttpEnvironment in this case) and passes that to Cocoon. The Environment consists of a Request, Response, and some servlet info (such as requested URI and the servlet's path). This Cocoon object lets the Environment decide which sitemap to use, and passes the sitemap filename along with the Environment to a Manager. This one puts a Handler to work: it checks whether there already exists a Handler with a compiled version of the sitemap. If not, it creates one. In order to test this functionality meaningfully four scenarios were identified: • Serving pre-generated HTML pages o • Serving HTML pages dynamically generated by Cocoon o • XML pages without logic i.e. no XSP pages, this is a pure conversion of XML and XSL to HTML Compiling, executing and serving XSP pages o • Plain HTML pages i.e. www.ist-intellect.com Tomcat executes the Cocoon Servlet, Cocoon compiles the eShop servlet Executing and serving pre-compiled XSP pages o Tomcat as a Servlet engine executing the Cocoon servlet In a realistic scenario the application server will generally generate all required pages in a relatively short time depending on the traffic the site is subjected to. Effectively all pages both HTML pages and Servlets will be pre-generated resp. pre-compiled. Therefore it is safe to assume that compilation or generation time will normally not influence the performance of the site. In the following paragraphs will we nevertheless present data on both serving pre-generated material and on serving material that is being generated on-line. In order to evaluate the INTELLECT eShop prototype a traffic simulation tool called “Web Stress” was used (http://www.paessler.com/WebStress/webstress.htm). This tool is an HTTP client that offers the possibility of starting multiple requests at the same time in order to simulate a situation of heavy traffic. The tool also allows for extensive configuration of the behaviour of the simulated client and compile and generate statistics describing the response of the server. Each test is configured to run for one minute generating requests through 5 parallel clients. All benchmarks were carried out on the INTELLECT on-line prototype server. This machine is a dual Pentium II, 400MHz with 256 MB RAM and SCSI disk subsystem. The operating system was Debian GNU/Linux 2.2 (potato) with Linux Kernel 2.2.18. All clients were connected via LAN to the server. INT-D18FINAL © The INTELLECT consortium – 2001 Page 18 of 58 INTELLECT IST-1999-10375 3.2.1.1 Serving pre-generated HTML pages In this benchmark the client is accessing plain HTML files and Tomcat is working as a plain Webserver not doing any processing of the files served. Each test is configured to run for one minute generating requests through 5 parallel clients. The request times ranging from 100ms to 250ms with an average request time of roughly 150ms are somewhat high for a plain HTTP-Server, but nevertheless acceptable. Tomcat answered successfully all requests with no errors. The occasional spikes in the performance of the server can only be explained by internal Java Virtual Machine (JVM) fluctuations that are not visible to the Java programme or the operating system. Figure 8 –Request times for a single plain HTML URL Figure 9 –User wait time and users per second Figure 9 is a different view on the same test and demonstrates the effectiveness of Tomcat in terms of the total number of users that can be served at the same time before the server starts losing requests (ranging from 500 to 800 users per second). 3.2.1.2 Serving HTML pages dynamically generated by Cocoon In this scenario XML pages without logic i.e. no XSP pages are served to the client. This is a pure conversion of XML and XSL to HTML in order to provide the browser with a medium that it can understand. The same way a different format i.e. PDF could be produced for a different application, context or output device or client. INT-D18FINAL © The INTELLECT consortium – 2001 Page 19 of 58 INTELLECT IST-1999-10375 This functionality is present but has not been used in a realistic scenario as all INTELLECT pilot pages contain dynamic data and have to therefore be generated dynamically (see 3.2.1.4 Executing and serving pre-compiled XSP pages). 3.2.1.3 Compiling, executing and serving XSP pages When accessing the XML–pages via Cocoon the servlet executed by Tomcat has to be compiled first. This servlet is generated from the XML- and XSL- pages in the first 9 seconds of the test and is then used without modification thereby accelerating the process to roughly 1 to 2 seconds per request. The compilation of the Servlet only happens once after the startup of the application server or modification of the page. Figure 10 – Request time including compilation for a single client Figure 11 – Request time including compilation for multiple clients 3.2.1.4 Executing and serving pre-compiled XSP pages In this scenario the page is generated by the shop servlet with is pre-generated by Cocoon and simply executed by Tomcat. This benchmark represents a “normal” usage scenario, were access to the INTELLECT pages is frequent and thus does not require permanent compilation of the Servlet. INT-D18FINAL © The INTELLECT consortium – 2001 Page 20 of 58 INTELLECT IST-1999-10375 Figure 12 – Request times without compilation Figure 13 - Average user wait time without compilation 3.2.1.5 Comparison between URLs from the three INTELLECT pilots In the following scenario “Web Stress” targeted three different URLs for each of the 5 simulated users one for each of the three different INTELLECT shop-pilots. The red line shows the request time for a page without any graphics. The green line represents a page from the Blauwerk pilot containing a lot of graphics. This page has to be compiled first and creates therefore the typical initial overhead. INT-D18FINAL © The INTELLECT consortium – 2001 Page 21 of 58 INTELLECT IST-1999-10375 Figure 14 –Request time for multiple URLs Figure 15 –Request duration without compilation Figure 16 clearly demonstrates that the stress test caused the server to operate at maximum capacity for a large part of the benchmark duration. This indicates that performance issues related to the eShop servlets are at least to some degree related to performance issues with the server hardware. INT-D18FINAL © The INTELLECT consortium – 2001 Page 22 of 58 INTELLECT IST-1999-10375 Figure 16 – Response time and CPU usage table 3.2.1.6 Comparison of different servlet engines Previous benchmarks have shown that servlets generated and compiled an average request time of about 1000 – 1200ms require. Such high response times are caused by the Servlet engine in Tomcat. Tomcat while being an internationally acclaimed Servlet/JSP Server and the J2EE platform Reference Implementation for Servlet/JSP technology is also known for its relatively bad performance. Jakarta Tomcat Version 3.2 is a software mainly aimed at developers seeking a 100% standards compliant implementation that offer many development related features and is not meant to be used as a deployment platform for commercial rollout. Jakarta Tomcat 4 is meant to address this problem and is expected to offer much higher performance. Nevertheless the extremely short-term availability of the new Tomcat version did not allow for further benchmarks with the new application server. The following benchmark presents the performance of Tomcat 3.2 compared to that of two other popular products, Orion (http://www.orionserver.com/), Resin (http://www.caucho.com/). Figure 17 – Performance comparison between Tomcat 3.2, Resin and Orion INT-D18FINAL © The INTELLECT consortium – 2001 Page 23 of 58 INTELLECT IST-1999-10375 3.2.2 Configurator performance The performance of the Configurator is heavily influenced by the underlying Product Data Model. This insight had a major impact on the design of the Configurator as well as the underlying Product data model for all the INTELLECT modules. The INTELLECT Product Data Model is designed to reduce overhead caused by complex operations during product data processing [20]. Furthermore the INTELLECT product data model is constructed in a way that allows the mapping of configuration functions to SQL sequences that can be executed by an RDBMS much faster and more efficiently than executing the processing in the Configurator itself. This strategy further eliminates the need for extensive data transfer between the database and the Configurator during configuration, thereby further reducing the amount of resources (i.e. bandwidth) and reaction times required. Following sections will focus on the main configuration function of the Configurator Bean, namely getPossibleComponents(). This function delivers all compatible components for a specific product while at the same time taking into account all soft and hard criteria specified by the user. This function directly or indirectly uses all other Configurator functionality and is the one most frequently called by the other modules. It is also the one with the highest resource consumption. Moreover we will be presenting benchmarks for two implementations of the Configurator, one consisting of a pure Java algorithm that simply uses the database as a data-repository and one that maps configuration requests to SQL as described in the previous passages. The direct comparison between the results from both versions makes the advantage of “Lean Configuration” the Configuration concept developed by the INTELLECT project evident. All benchmarks were carried out on the INTELLECT on-line prototype server. This machine is a dual Pentium II, 400MHz with 256 MB RAM and SCSI disk subsystem. The operating system was Debian GNU/Linux 2.2 (potato) with Linux Kernel 2.2.18. All clients were connected via LAN to the server. The product database contained the following data: • 5 Products • 5 Component lists • 74 Components • 44 Component types • 67 Component categories INT-D18FINAL © The INTELLECT consortium – 2001 Page 24 of 58 INTELLECT IST-1999-10375 3.2.2.1 Pure Java Implementation The version of the Configurator tested here consists of a pure Java algorithm that simply uses the database as a data-repository. 1st Scenario In this benchmark five groups of clients with one up to five clients per group from five different client machines are performing requests for getPossibleComponets in parallel for a product with a continuously increasing amount of components. The first call targets a product with one component, the second a product with two components, etc. The following graph demonstrates the average time required for each client group to receive the configuration information for products with a specific amount of components. 12000 10000 8000 1client 2 client s 6000 3 cleint s 4 client s 5 client s 4000 2000 0 1component 2 components 3 components 4 component s 5 component s 6 component s 7 components 8 components 9 component s 10 components Figure 18 - Average request time for a specific amount of components (Java) Figure 18 clearly demonstrates the following: • Response time is roughly 4 Seconds per request. • Response times are not dependent on the complexity of the product. Or in other words complex products are handled just as well as simple products. • The overall performance of the system depends on the number of concurrent requests. The performance difference on the testbed hardware was roughly 1 sec per further client. This is to be attributed to the performance of the server as every concurrent connection requires a further Java thread to be started. CPU usage on the server in all tests reached or exceeded 80-90% with three or more concurrent connections. INT-D18FINAL © The INTELLECT consortium – 2001 Page 25 of 58 INTELLECT IST-1999-10375 2nd Scenario In this benchmark five groups of clients with one up to five clients per group from five different client machines are performing requests for getPossibleComponets in parallel for a product with a single component. The following graph demonstrates the average time required for each client group to receive the configuration information. 14000 12000 time (ms) 10000 8000 1 client 2 clients 3 clients 6000 4 clients 5 clients 4000 2000 0 1 2 3 4 5 6 7 8 9 10 Figure 19 - Average request time for a single component (Java) Figure 19 clearly demonstrates the following: • Response times are not related to the state of the Java Virtual Machine (JVM) or the database. The first and the last request have in general roughly the same response times. This precludes the involvement of a cache/internal compilation or other event that impacts performance. INT-D18FINAL © The INTELLECT consortium – 2001 Page 26 of 58 INTELLECT IST-1999-10375 3.2.2.2 SQL Implementation This implementation of the Configurator maps configuration requests to SQL as described in the previous passages[20]. The direct comparison between the results from both implementations follows in the next section and should make the advantage of “Lean Configuration” the Configuration concept developed by the INTELLECT project evident. 1st Scenario In this benchmark five groups of clients with one up to five clients per group from five different client machines are performing requests for getPossibleComponets in parallel for a product with a continuously increasing amount of components. The first call targets a product with one component, the second a product with two components, etc. The following graph demonstrates the average time required for each client group to receive the configuration information for products with a specific amount of components. 1400 1200 time (ms) 1000 1 client 800 2 clients 3 clients 4 clients 600 clients 400 200 0 1 2 3 4 5 6 7 8 9 10 Figure 20 - Average request time for a specific amount of components (SQL) Fehler! Verweisquelle konnte nicht gefunden werden. clearly demonstrates the following: • Response time is roughly 400ms per request, or in other words one 10 of the response times for the pure Java implementation. • Response times are not dependent on the complexity of the product. Or in other words complex products are handled just as well as simple products. • The overall performance of the system does not depend on the number of concurrent requests. The performance difference on the testbed hardware was roughly 20ms per further client. • The decline in response time after the first queries indicates that the Database employs a cache that improves performance as long as queries request the same information. th INT-D18FINAL © The INTELLECT consortium – 2001 Page 27 of 58 INTELLECT IST-1999-10375 2nd Scenario In this benchmark five groups of clients with one up to five clients per group from five different client machines are performing requests for getPossibleComponets in parallel for a product with a single component. The following graph demonstrates the average time required for each client group to receive the configuration information. 1600 1400 1200 1000 time(ms) 1 client 2 clients 800 3 clients 4 clients 5 clients 600 400 200 0 1 2 3 4 5 6 7 8 9 10 Figure 21 - Average request time for a single component (SQL) Figure 21 clearly demonstrates the following: • Response times are not related to the state of the Java Virtual Machine (JVM) or the database. The first and the last iteration have roughly the same response time. This precludes the involvement of a cache/internal compilation or other internal optimisation that impacts performance. • Performance is heavily dependent on the performance of Oracle. Oracle reaches a CPU Workload of over 50% with a single client connecting. The server being a dual process or machine can accommodate two Oracle processes under these circumstances. The second client can thus also be accommodated with only a slight performance loss, but further clients then proceed to overburden the server thereby considerably degrading performance. INT-D18FINAL © The INTELLECT consortium – 2001 Page 28 of 58 INTELLECT IST-1999-10375 CPU Usage In this benchmark five groups of clients with one up to five clients per group from five different client machines are performing requests for getPossibleComponets in parallel for a product with a continuously increasing amount of components. The first call targets a product with one component, the second a product with two components, etc. The following graph demonstrates the average CPU load caused by each client group for products with a specific amount of components. 100,00% 90,00% 80,00% 70,00% CPU Usage% 60,00% 1 client 2 clients 50,00% 3 clients 4 clients 5 clients 40,00% 30,00% 20,00% 10,00% 57 55 53 51 49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 9 11 7 5 3 1 0,00% time (ms) Figure 22 – Total CPU usage with up to five concurrent clients 100,00 90,00 80,00 CPU Usage % 70,00 60,00 Oracle 50,00 Java 40,00 30,00 20,00 10,00 0,00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 time(ms) Figure 23- Oracle/JVM CPU usage with up to five concurrent clients INT-D18FINAL © The INTELLECT consortium – 2001 Page 29 of 58 INTELLECT IST-1999-10375 Fehler! Verweisquelle konnte nicht gefunden werden. and Fehler! Verweisquelle konnte nicht gefunden werden. clearly demonstrate the following: • Performance is heavily dependent on the performance of the Server. The Server reaches a CPU Workload of over 50% with a single client connecting. Further clients then proceed to overburden the server thereby considerably degrading performance. The 100% mark is never achieved due to the process management properties of the operating system. • Oracle requires the major part of available CPU resources thereby acting as the main bottleneck. A setup where the Application server runs on a separate physical server than the RDBMS and possibly addresses multiple RDBMS servers would definitely increase performance by dramatically. 3.2.2.3 SQL vs Java This section contains a combined benchmark for both implementations of the Configurator. The direct comparison between the results from both version makes the advantage of “Lean Configuration” the Configuration concept developed by the INTELLECT project evident. Overview In this benchmark a single client performs requests for getPossibleComponets for a product with a product with a continuously increasing amount of components. The first call targets a product with one component, the second a product with two components, etc.. The following graph demonstrates the average time required for each client to receive the configuration information for products with a specific amount of components. 6000 5000 time(ms) 4000 SQL 3000 Java 2000 1000 0 1 2 3 4 5 6 7 8 9 10 Figure 24 – Difference in response times between the SQL and pure Java implementations of the INTELLECT Configurator Figure 24 clearly demonstrates the following: • Response time of the pure Java implementation is roughly 4 Seconds per request. • Response time of the SQL implementation is roughly 400ms per request, or in other words one 10th of the response times for the pure Java implementation. INT-D18FINAL © The INTELLECT consortium – 2001 Page 30 of 58 INTELLECT IST-1999-10375 3.2.2.4 Conclusion The direct comparison between the results from both Configurator versions makes the advantage of “Lean Configuration” [20] the configuration concept developed by the INTELLECT project evident: • Response time is roughly 400ms per configuration request. • Response times are not dependent on the complexity of the product. Or in other words complex products are handled just as well as simple products. • The overall performance of the system does not depend on the number of concurrent requests, as long as the hardware can accommodate the number of clients. The performance difference on the testbed hardware was roughly 20ms per further client. • Response times are not related to the state of the Java Virtual Machine (JVM) or the database. The first and the last iteration have roughly the same response time. This precludes the involvement of a cache/internal compilation or other internal optimisation that impacts performance. • Performance is heavily dependent from the performance of Oracle. Oracle reaches a CPU Workload of over 80% with a single client connecting on the testbed server. 3.2.3 OrderProcessing performance The work of the order processing starts, after the shop has accepted an order from a customer. Therefore the performance of the order processing module has no impact on the user expierience of the customer, all the processes in this module occur offline. We identified the following performance-critical areas within the Ordering-Module: 3.2.3.1 Database transactions When the state of an order changes as a result of an incoming event, the order's state is reflected in 3 columns of the corresponding table: two of them are simple types (numeric and character data), the XML-data of the order is saved in a CLOB ("character large object"). The duration of the update statement is proportional to the length of the XML data. Benchmarks showed, that the part of these database transactions are negligible in comparison to the transformations of XML documents. This is further elaborated in the following paragraphs. 3.2.3.2 XML parsing Parsing of the XML document is done with the Xerces reference implementation of the Apache Software Foundation. This implementation is free, but is known to be rather slow. There are commercial implementations that are about five times faster than Xerces. Performance with the test XML was about 5 to 7 milliseconds per parse. 3.2.3.3 XSL transformations Generation of outgoing documents is accomplished via XSLT operations. For this, the XML document has to be parsed into a tree representation by an XML DOM parser and after that transformed by an XSLT engine. Both processes are rather time-consuming. XSL-Transformation with a simple XSL stylesheet needed about 13 to 17ms. 3.2.3.4 XPATH addressing XPath expressions are used within the workflow to get the information for the routing of orders. Xpath evaluations are expensive, when the XML document is not already parsed; as the module needs the parsed XML-document anyway the XPath addressing is also negligible. 3.2.3.5 XML transformations Some backoffice functionality consists of XML-transformations; e.g. for the HiTEC pilot insertion of parts list data was implemented, which resides in the database, into the order data. The time needed INT-D18FINAL © The INTELLECT consortium – 2001 Page 31 of 58 INTELLECT IST-1999-10375 for these modifications of the DOM representation also had a negligible impact on the overall performance. We tested this with the HiTEC functionality of adding parts list information into the XML document from the database, this function required 600 to 830ms to perform on the test XML file. 3.2.3.6 Backoffice functionality The integration of existing back-office systems is also part of the scope of the INTELLECT order processing module. As none of the end-users had no back-office system with necessary interfaces for integration (they were all using proprietary products, that had no open interfaces) we tested this with Anecon's self-developed "Admin Tool", which processes incoming and outgoing invoices. These tests showed that the amount of time for communicating and processing the request in the back-office system took much longer than any of the aforementioned points and was in the range of 5 to 9 seconds, depending on the desired back-office functionality. For the pilots of our three end users sending of an email was the preferred back-office functionality, because they implemented their workflow via sending "intelligent emails", which can trigger other tasks. And even sending a short email via Anecon's SMTP server took 3 to 5 seconds. 3.2.3.7 Results Our benchmarks showed, that the performance critical parts of the Order Processing module are not located within the module, but by the external processes i.e. the external back-office systems that are integrated by the module. So the numbers for transaction throughput will depend mainly on the performance of the integrated backoffice system. Business rules that are executed in the module (i.e. XML transformations like HiTEC’s parts list integration) can also influence the throughput if the logic is very complex. Compared to the performance results of the eShop module and the configurator module, which expierience a much higher load, because the number of shop and configurator transactions are between one and two magnitudes over the number of completed purchases. All performance tests were performed on the following system configuration: • Win2k Server, 256 MB RAM, 20 GB Harddisk, Intel Processor Pentium 3 800MHz • Java SDK 1.3.1 • JBoss/Tomcat application server bundle, jBoss version 2.2, Tomcat 3.2 • Xerces XML parser, version 1.4.3 • Xalan XSLT processor version 2.1.0 • XML test document : size is 25kB (this corresponds to a basket with 20 different items) 3.2.4 Helpdesk performance Because of the unexpected long time the jBoss group needed to integrate the next version of the servlet container we had no time for performance benchmarks until now (see Fehler! Verweisquelle konnte nicht gefunden werden.). 3.2.5 VR Applet performance The Virtual Reality module as a front-end for the configuration module shows a view of the product, which must be as realistic as possible. The user can interact with the product: turn, zoom, select and configure a component; the possible configurations are given by the configuration module. Excepted few cases where some simple configurations (colour, size) are directly available from the e-shop, the customer must go in the Virtual Reality module to configure its product. The 3D view of the products is obtained by assembling 3D models of its components stored in VRML files provided by the shop operator. If no 3D model is available for some of the components, configuration via the VR Applet is not possible. The use of Java3D, which is an API for Java, permits to render a 3D world in a Java application or a Java applet. Java3D provides a collection of high-level constructs for creating, manipulating and renINT-D18FINAL © The INTELLECT consortium – 2001 Page 32 of 58 INTELLECT IST-1999-10375 dering 3D geometric objects in a virtual universe. The Java3D world corresponds to a scene graph, which is an arrangement of 3D objects in a tree structure, that completely specifies the contents of the virtual universe, and the way it is rendered. VRML files can be loaded and added to a Java3D universe thanks to the VRML97 library, defined by the VRML-Java3D working group. The performance of the 3D Applet is therefore completely dependent on the performance of the Java3D implementation, the 3D graphics language used (i.e. OpenGL, DirectX), the 3D driver for the graphics hardware of the client and last but not least the graphics hardware itself. In cases were the hardware offers appropriate 3D functionality (all current chipsets) which is supported by the graphics driver and the graphics language libraries installed on the operating system (default in all modern platforms) the 3D Applet offers fluid navigation through the VR-World. INT-D18FINAL © The INTELLECT consortium – 2001 Page 33 of 58 INTELLECT IST-1999-10375 4 INTELLECT Lean Configuration: Interactive Product Configuration for the Internet Current eCommerce solutions are based on conventional sales strategies and business models that have simply been transferred to the Internet with the help of modern technology. Solutions based on simple methods like catalogues demonstrating the palette of available products offer in spite of the generous amount of multimedia present all over today’s Web no real added value compared to offline stores other than 24/7 availability. On the contrary eCommerce customers often complain about the lack of interaction with the product and the sales personnel. Most of the popular eCommerce businesses operating today offer standardised products like books, CDs, etc. that consist of one unit that comes pre-packaged and their instances are normally identical. The representation and sales of composite products that come in many variations poses additional difficulties. The complex nature of products changing dynamically to fit the needs of the individual customer can only be managed through the deployment of configuration systems similar to the ones currently Requirements used in standard ERP (Enterprise Resource Planning), PDM (Product Data Modelling) or DPM (Decentralised Production Management) systems. Such systems can be used to exchange components in a specific products to match the needs of an individual customer. However conventional product developOptimal ment systems are not built to support Internet or Variants more specifically eCommerce applications. Usage in this specific environment requires modifications of the methods used for both user interaction and configuraSolution tion. This paper will present a overview of the solutions developed by the INTELLECT project.Product Possible Variant Configuration Possible Variants Products Configuration is the process of composing complex products out of components. A Configurator is an expert-system that supports this process and thereby uses predefined goals as well as expert knowledge. Figure 25 – Variant Configuration Design goals can be i.e. constraints, functional requirements, predetermined components or various quality criteria [1]. Such systems do not follow a single predefined method, but rather a strategy based on a series of small steps. Each step representing a certain aspect or assumption leading to the configuration of the product. Configuration is therefore considered as the solution to a single exercise and not the solution to a whole problem or problem class that has to be first methodically analysed [3]. This implies the following: • The set of all possible solutions is finite. • The solution sought after is not innovative, but rather a subset of the available parts. • The configuration problem is known and well defined. Configuration functionality is usually integrated in large software packages meant to support the production process. Such software known as ERP (Enterprise Resource Planning), PDM (Product Data Modeling) or DPM (Decentralized Production Management) normally contain extensive knowledge based Configurator that are integrated in the design and production process. Configuration systems in this area are traditionally rules based, modern systems however increasingly rely on the object oriented approach. Popular eShops or other similar Internet related technologies do not yet possess any comparable functionality. INT-D18FINAL © The INTELLECT consortium – 2001 Page 34 of 58 INTELLECT IST-1999-10375 4.1 Configuration concepts 4.1.1 Rules-based configuration Traditional configuration systems are based on knowledge bases consisting of a description of all the available components (objects) and an accompanying set of rules that define how specific objects should behave under defined conditions and thereby control the flow of configuration[12]. Consequently configuration rules are structured according to the “if-then” principle familiar from various programming languages. The “if” part of a rule contains the conditions under which the actions defined in the “then” part rule should be applied [13]. A configuration problem described using rules based concepts is composed of the following three elements [14]: • Facts describe conditions that are necessary for configurations. • Rules describe the relationships between facts and describe actions to be takes. • Enquiries describe the problem to be solved. The aim is to acquire answers to the questions posed with the help of the rules defined based on the known facts[14]. Rule-based systems are easy to implement due to the simplicity of the individual rules, but are hard to maintain after reaching a certain complexity. Production rules based systems are maintained by highly qualified knowledge engineers that must have considerable knowledge on the products in question and on the configurations system and most importantly the defined rules. Furthermore rule-based systems are always restricted to a single knowledge domain in order to prevent the exponential complexity necessary for multiple rules-sets for multiple domains. 4.1.2 Case-based configuration Case-based configuration makes use of libraries containing similar problems and predefined solutions in order to formulate new product variants thereby reducing the configuration problem to the following steps: • The search for a similar case. • The transformation of the original case to fit the current requirements. The second step is where case-based configuration differs from other case-based methods, i.e. casebased reasoning or diagnosis where no such transformation is needed [9]. Collected knowledge can be used for further configuration under the following conditions: • Creation and maintenance of appropriately organised libraries containing problems, solutions as well as the used process. • Existence of algorithms and heuristics for the selection of appropriate cases from the library. • The integration of case-knowledge in the configuration process. This includes procedures for checking case consistency and case transformation[15]. Configurations created on the basis of such a library can often be less efficient than others created with more conventional means. This is mainly due two the following characteristics of case-based methods: • Resulting configurations are not fully compliant to the current requirements, but rather adapted products that were originally designed for different requirements. • Changes in the knowledge domain can not be integrated in the case library without changing all relevant cases resulting in configurations that are sometimes not up-to-date[15]. 4.1.3 Object oriented configuration Object oriented configuration is based on the concept of iterative composition of the final product from a set of different components that have been previously organised according to a hierarchy known as INT-D18FINAL © The INTELLECT consortium – 2001 Page 35 of 58 INTELLECT IST-1999-10375 the object hierarchy that contains all knowledge concerning the product in question. Properties that dictate how components fit together are described with the help of constraints. Figure 26 – Object structure of a product domain The object hierarchy contains all relevant objects and the relationships between them in a “is-a” relationship that defines types of objects, object classes and subclasses and their properties. The configuration process creates objects based on this information according to the products being configured. In a specific hierarchy (as depicted in Figure 26 – Object structure of a product domain) for the configuration of cars, classes for specific car types (i.e. coupe, minivan, etc.) are connected with “is-a” relationships to the main “car” class. This hierarchy also allows the breakdown of a product in components with the help of further “has-parts” relationships. These “has-parts” relationships are the basis for the decision-making process employed to create new configurations. An example for such a relationship would be the chassis and the wheel. A chassis can be connected to up-to 4 wheels in a passenger car, but the wheels is represented only one with an appropriate cardinality in the diagram. Constraints are constructs connecting two unknown or variable components and their respective attributes of predefined values (i.e. from a specific knowledge domain). The constraint defines the values the variables are allowed to have, but also connects variables and more importantly defines the relationship between the two values. In other words constraints contain general rules that can be applied to make sure that specific components are put together in a correct fashion without having to specify any component related rules or calculations[16]. The constraint satisfaction problem is defined as follows: 1. A finite set of variables X = {x1,...,xn} 2. For each variable xi, exists a finite set Di of possible values (its Domain) 3. And a set of constraints witch restrict the possible values that these variables are allowed to take at the same time[17]. The configuration process is composed of the following steps[12]: 1. Analysis of the product in order to define possible further steps 2. Specification of further configuration steps 3. Executions of specified steps Such steps are[12]: 1. Disassembly of the product into its components. This is meant to reduce the complexity of the problem and create a large number of smaller objectives in the manner of conventional topdown specification. 2. Assemble of components, integration, aggregation. This step creates a product out of its components in bottom-up manner. 3. Creation of specialised objects. Object classes are specialised through the definition of subclasses. 4. Parametrise objects. Define attributes and parameters for the specified objects that can be used for the application of constraints or other configuration mechanisms. INT-D18FINAL © The INTELLECT consortium – 2001 Page 36 of 58 INTELLECT IST-1999-10375 Object oriented configuration systems are a modern approach to configuration. They allow for a flexible approach to domain independent configuration that can support complex product structures. Furthermore the object oriented approach allows for relatively simple maintenance of established product databases. Its advantages are flexibility and clear hierarchical structures that make maintenance easier compared to the other methods presented in this paper. The disadvantage of this method is the overhead imposed by the handling of the object hierarchies. 4.2 Requirements for on-line Configuration The industry requirements on configuration as captured by the INTELLECT consortium [2] focus on two major usage situation. 1. Assisting private customers when experimenting with new variants on their own in a user friendly fashion 2. Allowing salespersons in a retail store to produce and ultimately order correct individual configurations according to the customers wishes. Configuration functionality in these scenarios reduces the workload on the salespeople on one hand, and involves the consumer personally giving him the feeling that he is ordering something individual and special on the other. The use of such functionality in an e-commerce context and the resulting requirements impose restrictions, but also offer new possibilities concerning the implementation of existing configuration methods. A short overview of these requirements is presented here: • Interactivity: The customer must be able to interact with the e-commerce System. The aim is to allow him to construct the product piece by piece according to his own preferences and wishes thereby giving the customer the feeling that he is a part of the construction process of an individual product. • Multimedia: The customer must be able to receive visual feedback of his configuration efforts. Product independence: The Configurator must be in a position to handle arbitrary products. Main issues here are the handling of the attributes (the quantity and type of the components attributes should be handled dynamically) and the components of the product (a product’s composition should not be restricted by any non configuration related issues). • • Performance: The system must be able to handle large numbers of concurrent configuration requests. This implies a scalable and simplified architecture that can operate with a minimum of product data in order to ensure acceptable performance and make efficient use of bandwidth. • Soft criteria: The use of a Configurator in an e-commerce environment imposes additional requirements on usability and user friendliness. Configuration should not restrict itself on mechanical or “hard” criteria, but should also consider soft criteria expressed by the customer. Relevant configuration criteria are “hard” factors like whether a component fits in an existing product as well as “soft” factors like personal preferences of the user as well as other non operability related information (i.e. price, size, weight, performance criteria, image, popularity, etc.). Additionally, the products offered by the INTELLECT end-users have different characteristics thus requiring different sales strategies. Most of the products are highly configurable, some of them even require the consumer to possess special skills in order to integrate them in existing configurations. This characteristic has a number of consequences depending on the development cycle for new products, the nature of the components or products and the marketing strategies of the specific firm. Nevertheless, all of the end-users could greatly profit in different ways from a configuration process simplified through intelligent software and visual representation of the data. Functionality of this nature will enable less experienced consumers to produce their own configurations or individualised variations based on existing models. 4.3 Lean Configuration The greatest difficulty to be resolved when configuring new products is the fact that the software is required to make decisions that are not based on available information. Such an action can lead to a possibly dysfunctional product or simply a product that does not conform to user requirements. In this INT-D18FINAL © The INTELLECT consortium – 2001 Page 37 of 58 INTELLECT IST-1999-10375 case all configuration steps have to be undone (so called backtracking) in order to return to a valid state. The longer it takes for the Configurator to detect that a mistake has been made, the more difficult it is to correct the error in question.[1] The configuration process as described by [12] is composed of the following steps: 1. Analysis of the product in order to define possible further steps 2. Specification of further configuration steps 3. Executions of specified steps The INTELLECT approach to Configuration attempts to reduce the Configuration processes to a search problem by eliminating the complex, computationally intensive and error prone first two steps of variant configuration. In accordance with the first criterion identified during the analysis of the user requirements related to an eCommerce environment the configuration process should be interactive in order to maximise user friendliness. The customer does not need or wish to specify his wishes in the form of a computer programme and wait for the Configurator to produce a variant. A system that requires programming beforehand (as in conventional configuration systems) in order to automatically produce products variants would be far too uncomfortable and impractical for use in an e-shop. A simplification of the methods involved and involvement of the user in the configuration process is therefore a requirement also stemming from the interactive user-friendly nature of Internet applications. An optimal solution should give the user the feeling that he is configuring the product on his own while at the same time being fully supported by the Configurator. The reduction in complexity is realised by the usage of correctly configured, complete products as the basis for interactive configuration. As long as the user uses a pre-configured product as a template for the new variant the configuration process is transformed into a search problem, and specifically the search for the next component to be exchanged. The user chooses a product that fits his general requirements from the product catalogue of the shop and then proceeds to individualise it by exchanging components. Further added value is realised by allowing the user to define various “soft” criteria before or during configuration that describe the desired product. This information can be used by the Configurator to further reduce the list of possible components before presenting it to the user. The Configurator supplies the user with lists of components that are a) compatible to the part being exchanged and b) are in accordance to the customers already defined “soft” criteria and can be safely used in place of the component to be removed. This mechanism ensures that the product is constantly in a functional state. The interactive nature of this approach further simplifies the task by allowing the user to make the final choice out of the list of appropriate parts. Variants generated by the customers can also be used as the basis for new “pre-configured products” by the shop owner. [6, 7] Vector getPossibleComponents(long productId,long componentId,Vector categoryIds); Figure 27 – Configuration functions The INTELLECT Configurator supports the previously described configuration process with the getPossibleComponents function. This function is called with the identifier of the product being modified (productId), the identifier of the component to be exchanged (componentId) and a dynamic array of “soft” criteria specified by the user (categoryIds). The function returns a dynamic array of Components that fit the list of requirements. This search can be further simplified by the specification of database schemata that correspond closely to the object hierarchy representing the product. This allows for the use of database queries for most of the tasks related to providing lists of compatible components, so that configuration is largely reduced to a series of complex database queries. This offers further added value in the sense that the Configurator implicitly profits from the optimised performance of current database management systems, but also from the fact that configuration data is in a perpetually consistent state enforced by the mechanisms of the database management system. 4.4 INTELLECT Product Data Model Primary goal during the specification of the INTELLECT Product Data Model was flexibility in respect to the different kinds of products that can be categorized and simplicity of design in order to minimize the overhead imposed by the model itself. Product data can be entered into the INTELLECT database INT-D18FINAL © The INTELLECT consortium – 2001 Page 38 of 58 INTELLECT IST-1999-10375 either manually through an application (see Figure 30) designed to be used by the knowledge engineer administering the knowledge base or in a bulk fashion i.e. from data exported from a back-office. The structure consists of the following entities: 1. Pre-configured products 2. Products 3. Component types 4. Components 5. Component categories Products represent a package sold to the customer. This can be either a single object or a combination of components comprising a specific variant. Products contain one or more list of components. Lists are meant to support structuring of related components. An example of a product with more than one component list is kitchen furniture. The equipment for a whole kitchen could be specified as one product that is clearly structure in one or more related groups of components (i.e. a table and chairs, various cupboards, etc.). A computer on the other hand will most likely contain only one component list for all components. The configuration of the component lists and the categorization of the components is up to the administrator’s discretion. Hard Categories Soft Categories Component Types Components HardDisks Mainboards AVEquipment High-End Low-End IBM DCAS3440 Maxtor 4567 IBM DORS3240 U2W, 8 GB, 5400rpm U, 4 GB, 5400rpm UW, 2 GB, 5400rpm Figure 28 – Component types, Components and Categories INT-D18FINAL © The INTELLECT consortium – 2001 Page 39 of 58 INTELLECT IST-1999-10375 <<Interface>> IProduct updateCurrentProductKey() playMultimedia() setPrice() getPriceOfAllComponents() getManufacturer() showDetails() PreconfiguredProduct createNewProduct() NewProduct customiseProduct() show3D() getComponentList() getPossibleComponents() changeComponent() ComponentCategoryConstraint Product ComponentCategory price : Integer availibility : Boolean productKey : Integer productName : String taxrate : Double 1 CategorySpecificData CategoryType : String playMultimedia() getPriceOfAllComponents() showDetails() setPrice() updateCurrentProductKey() getManufacturen() ComponentConstraint 1..* ComponentList Item ComponentType id : Integer multimediaUrl : String configurationContrains manufacturerName : String manufacturerId : Integer 1..* updateItem() deleteItem() getManufacturerName() getManufacturerLogo() showInfo() createItem() componentTypeName : String emptyComponentAttributes : HashTable IComponent getComponentTypeName() setComponentTypeName() componentKey : Integer componentName : String filledcomponentAttributes : HashTable componentPrice : Integer availibility : Boolean setAttributesType() getAttributesType() ComponentTypeattribute name : String valueType : String setName() setValueType() getName() getValueType() FilledComponentAttribute ComponentAttribute_Integer ComponentAttribute_Float ComponentAttribute_String attributeValue : Integer attributeValue : Float attributeValue : String setValue() setValue() setValue() Figure 29 – INTELLECT Product Data Model Class-diagram Products exist furthermore in one of two variations, pre-configured products and new products. Preconfigured products are the ones used to generate the product catalogue and are used as templates for generating new variants. Every time a user decides to configure a product, a copy of the preconfigure version thereof is made. The new product is then modified to produce the desired variant. The differentiation between the two kinds of products is required in order to prevent modification of the original designs. Component types represent a certain type of part, possibly a specific model (i.e. the IBM DCAS2340 hard-disk). A component type is used to define the attributes related to this object. A dynamic attribute mechanism allows for arbitrary types and quantities of attributes. It is important to note that attributes of component types have not values, they simply provide the infrastructure needed for the usage of attributes in a specific product. Components on the other hand represent concrete elementary parts sold either separately or as part of a product. Such components are instances of a specific component type and contain concrete val- INT-D18FINAL © The INTELLECT consortium – 2001 Page 40 of 58 INTELLECT IST-1999-10375 ues for the defined attributes. A component for a specific type of hard disk (specific component type) i.e. would have concrete values for attributes like size, speed, form-factor etc. Figure 30 – Tree view of a complete product Component categories exist in two variants hardware categories and soft categories. Hard categories represent a whole group of components that have the same basic function (i.e. all hard-disks), soft categories define configuration preferences and general criteria. Both types are used to reduce the number of components that are suitable. Soft categories are also used to define the “soft” criteria suitable for this product domain (see Figure 28). The knowledge engineer designing the knowledge base for a new Configurator has to decide what groups of components are necessary in order to provide the end-user with a sufficient set of options during configuration. PCI Card, Elsa Erazor ConnectionInput=PCI Equality Constraint (=) Mainboard, Asus xyz ConnectionOutput=PCI Figure 31 - Constraints Constraints between attributes of specific component types enforce “construction” rules (see Figure 31). Constraints are operators that can be defined nearly arbitrarily and can be used to support new configuration behaviour. The Attributes “ConnectionImput” and “ConnectionOutput” together with the equality constraint i.e. are used to define which components fit together physically and what sort of interfaces each component type requires or makes available. Due to the modular and extensible design of the INTELLECT Configurator, it is relatively easy to add new Constraint types (i.e. bigger than, smaller than) that make new kinds of configurations possible. Products used for testing in the first version of the Configurator (scooters and computers) were fully modelled using only the equality constraint and appropriate Component Categories. 4.5 Implementation The INTELLECT Configurator was developed based on cross-platform pure Java2 and Java Enterprise Beans (EJB) Technology. The Configurator is implemented as an Enterprise Java Bean that runs in an EJB container provided by an application server. The application server used for development and testing was JBoss[18]. The eShop and Ordering modules make extensive use of Apache Software Foundation Java Packages providing XML-Handling Functionality. All data is stored in an Oracle relational database. Great care was taken to avoid usage of any proprietary extensions in order to INT-D18FINAL © The INTELLECT consortium – 2001 Page 41 of 58 INTELLECT IST-1999-10375 facilitate cross-platform compatibility and avoid vendor lockup. The system was developed on RedHat and Mandrake GNU/Linux and deployed/tested on Debian GNU/Linux, further tests and demonstrations were successfully conducted on MicroSoft Windows NT 4 and Windows 2000 platforms. Testing of the client was achieved on various consumer Windows versions. Browsers used on client systems were Microsoft Internet Explorer 5.5 and Netscape 6. The VM and JDK used for development and testing was Sun JDK 1.3. The Java3D extension was also installed on the client machines. 4.6 Conclusion This paper has presented various possibilities for interactive configuration of complex products in an eCommerce environment. It has been shown, that based on the proposed concept such functionality is feasible in an efficient and user friendly manner thereby extending the functionality of conventional eShops. Moreover it has been shown that a VR representation of the product itself as well as the configuration process as a whole is feasible. This sort of graphical representation can provide new means of interaction with the product and allow for the user to enjoy a “hands on experience” with the modified product variant. INT-D18FINAL © The INTELLECT consortium – 2001 Page 42 of 58 INTELLECT IST-1999-10375 5 Secure Communication in Electronic Shop Systems The modern world of information and communication needs more and more the help of information technology to manage the growing amount of electronic data. Numerous work processes, both in public and in industry, are electronically controlled. As a result, many organisations depend on perfectly operating IT and communication systems. Information is digitally stored, electronically processed and transferred through private and public networks, such as the Internet. The Internet is a low-price possibility to connect business partners, suppliers and customers world-wide. But availability of the connection is not enough, the user needs the certainty that his data transmission is secure. Especially for pecuniary transactions which will take place more and more often via the Internet, IT security must become an integral part and develop from security systems to secure systems. Therefore the awareness for security must grow. The following list of security aspects of information can help to identify the threats for messages transferred via the Internet or stored on servers connected to the Internet: 1. Confidentiality: Protecting information from being read or copied by anyone who has not been explicitly authorised by the owner of that information. This type of security includes not only the information in toto, but also the protection of individual pieces of information that may seem harmless by themselves but that can be used to infer other confidential information. 2. Data Integrity: Protecting information (including programs) from being deleted or altered in any way without the permission of the owner of that information. Information to be protected also includes items such as accounting records, backup tapes and documentation. 3. Availability: Protecting services so they are not degraded or made unavailable (crashed) without authorisation. If the system is unavailable when an authorised user needs it, the result can be as bad as having the information that resides on the system deleted. 4. Authentication: Authentication is a very important point to realise authorisation. Authentication is the process of proving that a subject (e.g. a user or a system) is what the subject claims to be. 5. Access Control: Restrictions on the ability of a user to use a system or an object in that system. Such control limits access to authorised users only. 6. Non Reputation: Non reputation prevents either sender or receiver from denying a transmitted message. Thus, when a message is sent, the receiver can prove that the message was in fact sent by the alleged sender. Similarly, when a message is received the sender can prove that the message was in fact received by the alleged receiver. Most of the measures to protect information are based on encryption methods. 5.1 Encryption Encryption is the technology for encoding messages so that only the recipient can read the message. The aim of encryption is to make an attack on information as difficult as possible. Encrypted information can only be decrypted, without the knowledge of the decryption key, with a certain expense of technology. How secure encrypted information are depends on factors like the type of encryption (asymmetric/symmetric), encryption algorithm and the key length but also the technical effort and time a “cracker” is willing to spend. 5.1.1 Secret Key Encryption Secret key encryption, also known as symmetric encryption, uses the same key for encryption and decryption. Secret key encryption algorithms are DES (Data Encryption Standard), Tripple-DES, Blowfish, IDEA (International Data Encryption Algorithm), RC4 (Rivest Cipher Nr.4), etc. Problems with the secret key crypto-system are: INT-D18FINAL © The INTELLECT consortium – 2001 Page 43 of 58 INTELLECT IST-1999-10375 • Key transmission (key exchange): It has to be ensured that the private key will be transferred to its destination in a secure way. • Limited number of user: Everyone who is in possession of the private key can decipher the data. The less people are in possession of the key the more secret the data are. The increasing number of user will also raise the transfer problem. • No signature possible: Because two people (at least) are using the same key it has to be ensured that both people are using the key rightly. The benefits of secret-key encryption technology is its fast encryption (compared to public-key encryption). Especially in open systems with a large number of users, secret-key crypto-systems has difficulty providing secure key management. Key management is known as the generation, transmission and storage of keys. All keys in a secret-key crypto-system must remain secret. The main problem which has to be solved is the key exchange. In order to solve the key management problem the public key encryption can be used. 5.1.2 Public Key Encryption To overcome the problem of key exchange, Whitfield Diffie and Martin Hellman created the concept of public-key cryptography in 1976. The Diffie-Hellman algorithm can only be used for key exchange. 1997 Rivest, Shamir and Adleman invented a public key algorithm (RSA) for key exchange and data encryption, today’s de facto standard among public key algorithms. Public key encryption is a technique that uses a pair of asymmetric keys for encryption and decryption. Each pair of keys consists of a public and a private key. The public key is made public by distributing it widely, the private key is never distributed, it is always kept secret. Data that is encrypted with the public key can be decrypted only with the private key. Conversely, data encrypted with the private key can be decrypted with the public key. This asymmetry is the property that makes the public key encryption so useful. Advantages • Provides data encryption and digital signature. (RSA) • Increased security: Private keys never need to be transmitted to anyone. Disadvantages: • Slow: Caused by the complex mathematical concept the asymmetric encryption is slower than the symmetric encryption. • Does the public key of a potential recipient belongs to this recipient? Need of a certificate The secret-key encryption is fast but needs a secure way for transmitting the key. The public-key encryption is slow but offers a secure way for the key exchange. To overcome the limitations the secretkey and an public-key encryption will be combined. There are two basic approaches: 1. At the beginning of the communication the secret key will be encrypted by the public key. Now, the encrypted secret key can be transferred in a secure way. At the other side the secret key can be decrypted by the public key. Finally, a secure data exchange can be realised by using the secret key. 2. The secret key will be transferred with the data altogether. This is called a digital envelope. The information which will be transferred are containing the encrypted secret key followed by the data, encrypted with the secret key (digital envelope). 5.2 Authentication and Digital Signature Authentication is the process of verifying identity so that one user can be sure that the other user is who it claims to be. One way of authentication is the digital signature which uses the public key encryption technology. A digital signature is a cryptographic means that a particular message did indeed originate from the signer and was not alerted or exchanged during transmission. INT-D18FINAL © The INTELLECT consortium – 2001 Page 44 of 58 INTELLECT IST-1999-10375 The digital signature is created through the use of a hash function to the message creating a message digest. This digest, usually shorter than the message, will be encrypted with the sinners private key. After receiving the message the same hash function has to be applied to this message, the received encrypted digest has to be encrypted with the public key and the two digest have to be compared. If the two are the same the signature was successfully authenticated. 5.2.1 Certificate and Certificate Authority (CA) Using the public key encryption, a user does not know for sure that the public key of a potential recipient belongs to this recipient. A way to overcome this problem is to use a digital certificate for authentication: • Digital Certificate: A digital certificate attest that a public key belongs to a certain person or organisation. The standard for digital certificates is defined by the ITU norm X.509 which will be used by all browsers, Internet servers and security protocols (e.g. SSL). • Certification Authority: This certificate will be issued by a trusted organisation called Certification Authority (CA), also know as a Trust Centre. A certificate issued with the users public key will be encrypted with the CAs private key. To verify that the public key belongs to the sender the receiver decrypts the certificate with the CAs public key. • A certificate contains the following information: • Subject (who has to be certified): name and public key • Issuer (CA): name and signature (public key ?) • Period of validity: not before date, not after date • Administrative information: serial number and version 5.2.2 Secure Socket Layer (SSL) Secure Sockets Layer (SSL) is a crypto protocol created by Netscape for managing the security of message transmissions in a network. Netscape's idea is that the programming for keeping the messages confidential ought to be contained in a layer between an application (such as the Web browser or HTTP) and the Internet's TCP layer. SSL allows a SSL-enabled server to authenticate itself to an SSL-enabled client (e.g. sending a credit card number over the network), allows the client to authenticate itself to the server (e.g. a bank is sending confidential information to a customer) and allows both machines to establish an encrypted connection. SSL is an integral part of each Netscape and Microsoft browser. If a Web site is on SSL capable server, SSL can be enabled and specific Web pages can be identified as requiring SSL access. HTTP, FTP, SNMP Handshake- Change-CipherSpecProtocol Protocol AlertProtocol ApplicationDataProtocol SSL-Record-Protocol SSL-Record-Protocol TCP, UDP IP Figure 32 – SSL Protocol Stack INT-D18FINAL © The INTELLECT consortium – 2001 Page 45 of 58 INTELLECT IST-1999-10375 5.2.2.1 SSL Protocol Stack: The cryptographic parameters of the session state are produced by the SSL Handshake Protocol, which operates on top of the SSL Record Layer. When a SSL client and server first start communicating, they agree on a protocol version, select cryptographic algorithms, optionally authenticate each other, and use public-key encryption techniques to generate a session key. After negotiating the security attributes of the session the Change-CipherSpec protocol informs the Record layer about the cipher (cryptographic algorithm) settings. The whole SSL secured communication will be encapsulated by the Record Protocol which defines the format used to transmit data and fragments, compresses and encrypts data (or attaches digest signatures) as specified by the current active session state (see figure 3). The Application Data Protocol transfers data from the application layer to the Record Protocol. If problems during the data exchange occurs the Alert Protocol is sending error and warning messages. Figure 33 – SSL Record Protocol Caused by this encapsulation, web server which are communicating with HTTP via SSL receive messages at a port different from the standard. HTTP communication without SSL will be received normally at port 80. The HTTP communication via SSL take place at port 443 (SMTP at Port 464, NNTP at port 563). SSL supported a variety of cryptographic algorithms: • During the handshaking process, the RSA key exchange algorithm (certificates are used) or the Deffie-Hellman key exchange algorithm (without certificate) is used. • After the key exchange, a number of ciphers are used including RC2, RC4, IDEA, DES or Triple-DES. • The MD5 (128 bit) and SHA-1 (160 bit) message-digest algorithm is also used. The publickey certificates follow the X.509 syntax. INT-D18FINAL © The INTELLECT consortium – 2001 Page 46 of 58 INTELLECT IST-1999-10375 5.2.3 HTTPS A common use of SSL is to secure HTTP communication between a browser and a web server. Using HTTP over SSL is named HTTPS and will be indicated with the URL scheme https and a different server port (443). 5.3 Conclusion For financial transaction via the Internet SSL (HTTPS) must be used. This technology is a standard security protocol, already tested and commonly used in the Internet. SSL can be implemented in every http-based application. With the encoding it is only important that one uses long key lengths. Thus SSL should use RSA with a 1024-Bit-key for key exchange and Triple DES or IDEA with 128-Bit-key at least! INT-D18FINAL © The INTELLECT consortium – 2001 Page 47 of 58 INTELLECT IST-1999-10375 6 Help-desk System in E-Shop Systems One important aim for the INTELLECT shop is to implement a help-desk system, for those customers that have difficulties with the configuration of the product or with the shop itself. The customer will be able to connect the help desk with a videoconferecing tool directly. Because voice-to-voice communication without visual assist has a lack on information for the help-desk agent, a page mirroring mechanism will be integrated into the shop. 6.1 IP communication The first method forces the users to essentially schedule calls with others, or to use directory servers listing potential partner. On the other hand, PC to Phone voice over IP (VoIP) the Internet Telephony call is carried over the Internet to a gateway. At the gateway, the call is converted between the Internet and the standard PSTN network. Hardware solutions can enhance the quality of basic Internet telephony via DSP-based voice compression and echo cancellation (e.g. Quicknet Technologies Internet PhoneJACK). A video conferencing system consists of the following components: computer, web cam/full-duplex soundcard, headset or speakers/microphone set, and codec for audio/video compression. The following subjects were extracted by examining the features of available products: Live-transmission of video- and audio information, whiteboard, text chat, voice chat, file transfer, application sharing, and Internet directory used to locale individuals. Leading products are based on H.323. H.323 is an ITU standard (International Telecommunication Union) that describes how a flexible, real-time, interactive set of multimedia communications can be exchanged on packet-based networks like TCP/IP. There are standards for voice, fax and video; it is also important for multimedia streaming. H.323 is a call-control protocol. The protocol stack is running on both machines (end-entities) and it negotiates call set-up, teardown, voice codec used and the relative priorities of voice and data traffic between nodes during the conversation. H.323 also defines other entities for other communication infrastructures, but we will concentrate here on point-to-point communications. H.323 can use G.729a codec or the G.723.1 codec (voice compression algorithms). T.120 is another standard from ITU for data collaboration over the Internet. It handles Multipoint Data Delivery, Interoperability, Reliable Data Delivery, Multicast Enabled Delivery, Network Transparency and Scalability. It can be used for working collaboratively on a document (e.g. application sharing or whiteboard). The project also evaluated the desktop sharing features of NetMeeting, which allows a help-desk agent to take over control over a browser window of the customer, if the customer has also installed NetMeeting. But this approach had to many disadvantages: NetMeeting has to be installed and configured correctly (configuration is not easy for an non professional user). The need of dynamic port handling from NetMeeting for doing video conferencing makes the use of a firewall more insecure. To pass through H.323 control and H.323 streaming the ports between 1024 and 65535 have to be permitted, otherwise video and audio transmission would not be possible. With this computer hackers is offered a wide range of possibilities to attack the net behind the firewall. Furthermore the tests showed that NetMeeting has problems with the Network Address Translation (NAT) of Cisco’s routers. This case is well-known from Cisco, but not solved, yet. Port Function Outbound Connection 1503 T.120 TCP 1720 H.323 call set-up TCP 1731 Audio call control TCP Dynamic H.323 call control TCP Dynamic H.323 streaming Real-Time Transfer Protocol (RTP) over UDP Table 1 - Used ports by NetMeeting INT-D18FINAL © The INTELLECT consortium – 2001 Page 48 of 58 INTELLECT IST-1999-10375 Despite of the restricted settings that would possibly improve communication (e.g. more accurate audio settings) NetMeeting is offering a sufficient quality of audio and video. Nevertheless with communication over low bandwidth networks like the Internet NetMeeting would fall behind in quality aspects of video conferencing. The reason is that the Internet does not have any QoS features. [18] 6.2 Quality-of-Service The default service offering associated with the Internet is characterised as a best-effort variable service response. Within this service profile the network makes no attempt to actively differentiate its service response between the traffic streams generated by concurrent users of the network. As the load generated by the active traffic flows within the network varies, the network's best-effort service response will also vary. The objective of various Internet QoS efforts is to augment this base service with a number of selectable service responses. These service responses may be distinguished from the best-effort service by some form of superior service level, or they may be distinguished by providing a predictable service response which is unaffected by external conditions such as the number of concurrent traffic flows, or their generated traffic load. Any network service response is an outcome of the resources available to service a load, and the level of the load itself. To offer such distinguished services there is not only a requirement to provide a differentiated service response within the network, there is also a requirement to control the servicequalified load admitted into the network, so that the resources allocated by the network to support a particular service response are capable of providing that response for the imposed load. This combination of admission control agents and service management elements can be summarised as "rules plus behaviours". To use the terminology of the Differentiated Service (DiffServ) architecture, this admission control function is undertaken by a traffic conditioner (an entity which performs traffic conditioning functions and which may contain meters, markers, droppers, and shapers), where the actions of the conditioner are governed by explicit or implicit admission control agents. As a general observation of QoS architectures, the service load control aspect of QoS is perhaps the most troubling component of the architecture. While there are a wide array of well understood service response mechanisms that are available to IP networks, matching a set of such mechanisms within a controlled environment to respond to a set of service loads to achieve a completely consistent service response remains an area of weakness within existing IP QoS architectures. The control elements span a number of generic requirements, including end-to-end application signaling, end-to-network service signaling and resource management signaling to allow policy-based control of network resources. This control may also span a particular scope, and use 'edge to edge' signaling, intended to support particular service responses within a defined network scope. One way of implementing this control of imposed load to match the level of available resources is through an application-driven process of service level negotiation (also known as application signaled QoS). Here, the application first signals its service requirements to the network, and the network responds to this request. The application will proceed if the network has indicated that it is able to carry the additional load at the requested service level. If the network indicates that it cannot accommodate the service requirements the application may proceed in any case, on the basis that the network will service the application's data on a best effort basis. This negotiation between the application and the network can take the form of explicit negotiation and commitment, where there is a single negotiation phase, followed by a commitment to the service level on the part of the network. This application-signaled approach can be used within the Integrated Services architecture, where the application frames its service request within the resource reservation protocol (RSVP), and then passes this request into the network. The network can either respond positively in terms of its agreement to commit to this service profile, or it can reject the request. If the network commits to the request with a resource reservation, the application can then pass traffic into the network with the expectation that as long as the traffic remains within the traffic load profile that was originally associated with the request, the network will meet the requested service levels. There is no requirement for the application to periodically reconfirm the service reservation itself, as the interaction between RSVP and the network constantly refreshes the reservation while it remains active. The reservation remains in force until the application explicitly requests termination of the reservation, or the network signals to the application that it is unable to continue with a service commitment to the reservation [18]. The essential feature of this Integrated Services model is the "all or nothing" nature of the model. Either the network commits to the reservation, in which case the requestor does not have to subsequently monitor the INT-D18FINAL © The INTELLECT consortium – 2001 Page 49 of 58 INTELLECT IST-1999-10375 network's level of response to the service, or the network indicates that it cannot meet the resource reservation. [19] The question of QoS can not be solved by the INTELLECT project, but has to keep in mind if you want to establish a help-desk system with real-time applications. 6.3 Page Mirroring A further important feature of the help-desk system is the page mirroring of web sites for user suppport. Page mirroring means that all actions that are done by the customer in the shop are also executed on a mirroring browser window of the help-desk agent. So the help desk agent is able to recognise the problems of the customer. This mirroring process can change directions, so that the help-desk agent can force the customer’s browser window to execute all the actions the help-desk agent executes in his browser. So the help-desk is able to take over control, to show the customer how to perform the actions he liked to. Because of the concept of HTTP, page mirroring has some limitations. Normally a webbrowser sends http-requests to the web-server every time he needs a page or image. Because HTTP is stateless, the web-server has no possibility to maintain the connection between the browser and himself. After the request the connection is lost. That is the reason why the INTELLECT consortium implemented a polling mechanism. Shop page generator JS Code Adder Mirror controller servlet Customer Webpage in browser Applet Webpage help-desk Mirroring Servlet Applet Figure 34 – Functionality of mirroring Every time the customer creates an event in his browser (e.g. clicking on a link, pressing a button, submitting a form, or editing a form element), this event is caught by special EventHandlers written in JavaScript. These handlers parse the supplied information and activate a method in a hidden applet. This applet encodes the event information and sends it together with session information (to identify the customer) to a servlet. This servlet stores the event in a queue. On the help-desk agent side the hidden applet is working in the so called slave mode where it is polling the servlet. So the help-desk conntects the servlet continuously (because of the HTTP limitations as described above) and asks for incoming events. All incoming events are decoded and a JavaScript command is generated that simulates the event. This instruction is executed with the Netscape JSObject (which is also available in the Internet Explorer). Before a HTML page is delivered to the customer (either a static page or a dynamic page via Cocoon) it is intercepted by a mirror controller servlet which adds the necessary JavaScript code to the HTML code and also handles the session information for the mirroring process. All events generated on the customer’s web page are sent to the applet which forwards this information to the mirroring servlet. The help-desk’s browser’s applet periodically fetches all new events produced by the customer. The web page and multimedia push service will be done at the same way as mirroring. Basically a JavaScript instruction is created and sent to the servlet that stores the request. For the page that should execute it. So the administrator can pop up a new browser window at the customer’s side. The browser of the customer must be in a page mirror session in slave mode. INT-D18FINAL © The INTELLECT consortium – 2001 Page 50 of 58 INTELLECT IST-1999-10375 7 Virtual Reality in variant Configuration The objective of INTELLECT is to enable the suitable representation of products including all practicable variants in electronic commerce systems to achieve the most realistic possible visualisation. The VR Applet as the main Configurator user-interface aims to present the product in a way that is as realistic as possible while facilitating configuration. This is achieved through a product visualization in 3D and interactive navigation in 3D space. 7.1 Functionality and implementation The user can interact with the product: turn, zoom, select and configure a component; the Configurator supplies the possible configurations. The 3D view of the products is obtained by assembling 3D models of its components stored in VRML files. This functionality is implemented with the help of two programmes: • The manager application is intended for the shop operator, which will be in charge of the management of the 3D data, and the assembling rules definition. • The user application is intended for customer use, and will mainly offer a 3D view of the product, which the customer will be able to view in several positions, and to configure according to his wishes. The use of Java3D (the 3D API for Java) allows the rendering of a 3D world in a Java application or a Java applet. Java3D provides a collection of high-level constructs for creating, manipulating and rendering 3D geometric objects in a virtual universe. The Java3D world corresponds to a scene graph, which is an arrangement of 3D objects in a tree structure that completely specifies the contents of the virtual universe, and the way it is rendered. VRML files can be loaded and added to a Java3D universe thanks to the VRML97 library, defined by the VRML-Java3D working group. The figures in this section show the client VR applet in action. The customer sees in the main window (see Figure 35) the pre-defined product he has chosen in the eShop, and is able to interact with it and manipulate it in various ways. Three modes are available for the user: Translate, Rotate and Interact. The translate mode allows the user to use the mouse to translate the object in the current visualisation plan, the rotation mode allows the user to rotate the object with the mouse, and the interaction mode disables navigation with the mouse (but not the other navigation means), so that the user can use the mouse to interact with the scene (select an anchor or a component, or move an anchor). Figure 35 – Client VR configuration applet To make it easier for the user who may not be used to use the mouse for moving objects, the application calculates a list of predefined ones (Face, Back, Right, Left, Up, Down), using rotations from the initial viewpoint. Another viewpoint allows the user to see all the objects of the scene. The user also has the possibility to zoom in or out with the Zoom functionality. He can give directly the zoom value, increment or decrement the existing one, or reset the zoom. All these navigation possibilities allow the user to view the object in several points of view even if he isn’t very used to navigation, INT-D18FINAL © The INTELLECT consortium – 2001 Page 51 of 58 INTELLECT IST-1999-10375 and to move objects with the mouse, which may seem difficult for a novice, but which bring the sensation of manipulating the object. Figure 36 – Component exchange dialog Configuration of the product is accomplished as follows. The user can select the component he wants to modify in the components list or in the viewing area, if he is in the interaction mode, and if the 3D model is available. The customer indicates then, that he wants to replace this component, thereby opening the component exchange dialog (see Figure 36). The component exchange dialog displays the list of possible components that can replace the selected one. This component list is generated by the Configurator from the product database and represents the subset of available components that will fit into the product physically and mechanically and at the same time meet all the “soft” criteria specified for this product, or manually specified by the user. Selecting a component in this list shows a 3D view of the component (if available) and its technical description (see Figure 36). 7.2 Creation of 3D-Data The experiences of the various INTELLECT end-users during the development and pilot phase of INTELLECT were in general quite similar. Nevertheless the fact, that Blauwerk, HiTEC and Interset all produce and sell very different products had major impact in the effectiveness of the strategies employed for procurement or creation of the needed 3D material. Blauwerk for instance faced many of the difficulties described by HiTEC and Interset in its efforts to acquire or produce VRML models for its products. Nevertheless the relatively small product palette of Blauwerk and the relatively simple nature of the scooter allowed the company to outsource the creation of a single VRML scooter model which was used representatively for all the Blauwerk products (see Figure 35). The mountain bikes produced by HiTEC consist of parts purchased from renowned suppliers like Shimano, Marzocchi, Manitou. When the representatives of these producers were contacted for the first time the first half of the year 2000 with information about the Intellect Project, there were positive and encouraging reactions. The industry appreciated the potential of promoting high-end equipment through appealing VR/3D representation. Industry representatives especially stressed the necessity of a detailed presentation of the product features to justify the higher prices of professional components. When the first prototype had to be filled with real data, the first problems were encountered. According to the producers there were component data available, both in 2d and 3d format. Some of the companies even had rendered product files for simulation purposes. However, the company representatives were reluctant to give this information to outside parties. HiTEC contacted suitable producers on numerous occasions: INT-D18FINAL © The INTELLECT consortium – 2001 Page 52 of 58 INTELLECT IST-1999-10375 • Marzocchi Spa (Bologna/IT) was contacted on the Taipei Cycle Show in April 2002 on management level. The result was, that the company would reconsider their point of view – after a few weeks an numerous meetings with the Austrian representative, HiTEC’s request was turned down, • A formal meeting with Shimano Europe Gmbh. (the European branch of the world market leader in gear shifting and brake equipment) took place at the “EuroBike” Fair in Friedrichshafen. Also the European General Distributor participated in this meeting. Again no decision was taken at this event, but was postponed for further internal consultations. After a few weeks and two meetings with the head of the marketing department Mr. Zeilberger only a CD with component images was sent with an apology that this is all what Japan was ready to distribute. • For the negotiation with Answer Products USA (Manitou etc.) HT was in a better position, being the general representative of the company in Austria. The first request for data, with which 3d models could be generated, was communicated to Answer at the Taipei fair of 2001. Through the regular contact with the European Management the headquarters in the States was pushed even more. Nevertheless the request was rejected. Only after an intervention in a personal meeting with Glen Miller, Answer’s president an assent could achieved. It took until 11/2001 until one file with the construction data of a 2 two year old fork reached HiTEC. The situation is maybe best explained by a mail sent to HT by Manitou Inc. during the negotiation phase, in which the development department explains that “.... any competitor would be able to use the data for copying our product to the very detail. It even would be able to feed the information to production machines and get a bootleg product within a few hours”. While this stance is clearly understandable, from the viewpoint of the INTELLECT consortium the lacking co-operation from the suppliers was a major drawback for the overall goals of HT and endangered the whole strategy of bike configuration via the Internet. As a consequence HT Trading tried to get 3D data from other sources. First there were attempts to capture construction data by copying them by a CAD system. HT technicians, though experienced with system used hours of drawing time without promising results. 2D construction plans could be generated quite easily, because it was similar to the development work being done for the components designed by HT personnel. When it came to adding the third dimension to these drawings, the problems could not be overcome. Firstly an abundance of additional data would have been necessary to give in. Secondly, additional program components would have been necessary together with lengthy qualification measures for the employees involved. All in all, no economic way of generating 3D in-house could be found by HiTEC. So, contacts with some 3rd party suppliers of rendering services were established. But very quickly it became apparent, that outsourcing the production of 3D models of existing parts would also become a very expensive task. There were bids for creating a detailed 3D model of key parts like gear shifts components at about 3.000 Euro, which would rise the price of a fully equipped VR-mountain bike summed to over 20.000 euro. As a potential alternative, there were contacts to a company providing 3D scanning services. But also in this case, the cost was way too high for a economic production of the necessary data (app. 5.000 Euro per hour including personnel, with the potential outcome of 1-2 parts per hour). Also within the consortium there were attempts to generate the necessary data for the visualisation module using. Existing blueprints were transferred to CAD systems and tested by developer partners for their usability as source material for rendering. Such material also proved inadequate as it only contains data of two out of three dimension on the components. Three dimensional blueprints as previously described could not be obtained from suppliers. Interset on the other hand followed more or less the same procedure as HiTEC, but actually managed to produce high quality material which was used in the HiTEC pilot. The first move of Interset was much like HitEC did, to try to collect these data from each product’s manufacturer. The result was completely disappointing. All the manufacturers responded negatively. There were two main reasons for that result. The first was because they could not help us and the second because they did not want to provide such valuable data to others. Immediately this idea was abandoned. The nex approach was to rent or buy a 3D Scanner system, however after few weeks of negotiations this idea was considered as a very expensive solution. Specifically the cost for buying such a system INT-D18FINAL © The INTELLECT consortium – 2001 Page 53 of 58 INTELLECT IST-1999-10375 was starting from €2000 (for just a geometry scanner) and it was ending at around €80000 (http://3dscanners.com - a system which had as output a complete VRML file). The renting costs were extremely high as well (around € 900 per model). Another idea provided by Antlatide the developer partner responsible for the VR product presentation, was the use of the PhotoModeler application (http://www.photomodeler.com/). PhotoModeler is a software product that calculates measurements and constructs 3D models from photographs without additional hardware. This solution was evaluated and it was considered as a very slow and inefficient solution for the nature of the Interset products. So the final and the only remaining idea was to construct these models from scratch. This solution was not much faster than using PhotoModeler but it was much more efficient from the side of the file size. PhotoModeler is constructing vertex by vertex models having as a result of huge VRML files. Interset used a CAD tool that had the ability of constructing VRML files that were consisted by primitive 3D data. This technique extremely reduces the file size. The consequence of using large 3D models is the network cost. Imagine what would be the cost, if just one of the parts was 1Mb. In a configurable product there is not only one part, there are lot more. A user using a simple 56k modem would have to wait for too long whenever he was changing his/her configuration. So this solution was chosen and at this time there available several VRML files of various computer parts used for the pilot. Figure 37 – VRML model of an AGP graphics adapter 7.3 Conclusion: Summarising it might be said, that there was a massive under-estimation of the efforts, which would be required for getting the basic data for a VR/3D shop in general. The suppliers had understandable objections against giving away construction details, which could be used for copying the components, But without their co-operation, a different concept would have to be used. Maybe economic 3D scanners would have solved the problem. Or, if he 3D representation aspect would have been foreseen in the construction process, more simple and not so secret-revealing CAD files could have been used. The consortium also had to learn, that maybe 3D technology available at the moment is still too sophisticated and costly to be used in a plain commercial project. There was no way to justify the additional costs for creating VR promotion material, since it would not necessarily yield so much additional turnover/profit to break even within a reasonable time frame. 3D technology - when not already foreseen in the construction process and therefore produced only for marketing reasons – would almost double product development cost and would therefore considerably reduce the producer’s margin. INT-D18FINAL © The INTELLECT consortium – 2001 Page 54 of 58 INTELLECT IST-1999-10375 8 Distributed Ordering system for the Extended Enterprise Order processing turns out to consist mainly of the following components: • • a well defined information flow in the merchant’s back-office communication over different media: • between different parties (consumer, merchant, business partners, suppliers, ...) • between different back-office systems, which have to be integrated (legacy systems, accounting software, fax, mail system, ...) 8.1 Workflow system for incoming orders The workflow system receives an incoming order from the webshop as an XML document with a common DTD. The workflow defines all the necessary activities to process an order via a flexible definition of the workflow process and is a possibility to integrate/replace the existing handling of an order at the merchant’s side. Of course tracking of order the state is also possible. The choice for using XML as representation of the order data proved to be a very flexible way to handle workflow data. Many of the actions necessary in the workflow could be realised via XSL transformations without the need to write a single line of code. documents, that had to be created based on the order data could be generated via stylesheets. Stylesheets are like templates and their variable parts are filled by data of the XML representation of the order. While XML technology has made many steps forward during the duration of the project, XML tools not really have improved. Creating a stylesheet still means writing it by hand with the need of a deep XSLT knowledge. XML tools (like Altova’s XMLspy or softquad’s xmetal) ease this task, but still a highly skilled person has to do it. While this conception enabled to do rather complex tasks without the need to code something, the load is still on programming skilled people to perform the task of writing the stylesheets. 8.2 Back-office system integration Operational systems are varying widely in their possibilities to communicate with them. They provide file or database interfaces, library or socket API's, Java interfaces or messaging functionality, to name just a few. There are also many possibilities for the data formats, like CSV (Comma Separated Values), EDI formats (Electronic Data Interchange), XML formatted data, etc. Our end-users had no back-office system, that could have been integrated, because they were all proprietary with no open interfaces or not already fully working (SAP at Interset). The order module provides some standard interfaces based on XML, which is the most important standard for this by now. Because all the internal data structures of the order module are also based on an XML representation, it’s rather easy to convert XML-based data from one schema to another with a stylesheet. There is also an Intellect Order Module API that makes it possible to develop integration software for BackOffice systems using proprietary formats. 8.3 Distributed Infrastructure Integration of the merchant’s BackOffice systems into the Intellect shop is one of the major goals of the order module. As long as these operational systems are situated at the same location as the remaining Intellect shop, this is easy to achieve, by implementing the required interfaces to those programs. Within a distributed situation this feature requires that the operational systems have a connection to the Intellect shop. Because all the other modules can exclusively reside on an ASP’S (Application Service Provider) side, the order module needs a special infrastructure for this. Every merchant would have to install an “Intellect BackOffice Connector” in his network; depending on the security INT-D18FINAL © The INTELLECT consortium – 2001 Page 55 of 58 INTELLECT IST-1999-10375 structure, the communication between the BackOffice connector and all the other parts of the order module takes place over RMI, HTTP or email. The order module handles these components, that have to be accessed via this special mechanism as external order processing modules. The technology to achieve this was SOAP (simple object access protocol) which was developed in late 1999 and which experienced tremendous support from the industry since this is the basis for the overhyped “web service” area. 8.4 XML parser issues XML technology still was at the beginning when we started coding for the intellect project. Since then, many versions of XML parsers, XSL transformators and Xpath additions have been released. While the main functionalities of XML parsers where rather standardized via the SAX and DOM API, especially Xalan, which is the java reference implementation for XSL processors, frequently changed their interface. Our developers often stood in front of the decision whether to rewrite much of the existing code to use the recent version of Xalan or not to use some important new features. The same was true for the XPath processors. The JAXP (java API for XML processing) standard from sun was published in 2001, this API abstracts most of the XML/XSL functionality; Anecon did not rewrite their order processing module another time, because the Xalan API has stabilized since then and we where not sure, if the JAXP specification will experience major changes after their initial version 1.0. Furthermore JAXP does still not include Xpath functionality, which is absolutely necessary for the module. 8.5 Conclusion Using cutting edge technology proved to be very dangerous for a project with such a long duration. Since the start of development in June 2000 many dozens of new versions of XML parser, XSL processors, XPath evaluators, soap implementations have been available, every time with new features and lacking compatibility to earlier versions. Maintaining the code, so that it is up to date with the industry standards needs much resources, that were not planned in the project. Remaining on the initial versions means ignoring the improvements in performance and features. So it is a very hard decision when to upgrade and when not. In the area of soap for our distributed order processing this problem was even worse. The unexpected hype about web services made changes of standards and versions much faster. The active discussion about web services in eBusiness also brought many new ideas to our vision of the order processing module. If we had the chance to re-design the whole module from ground up, our approach would be based much more radically on XML, because standards and API’s have matured now and been consolidated, and much more problem domains can be addressed now with a infrastructure that is based on XML. INT-D18FINAL © The INTELLECT consortium – 2001 Page 56 of 58 INTELLECT IST-1999-10375 9 Acknowledgements This project is funded by the European Commission as IST project IST-1999-10375 INTELLECT “Intelligent Online Configuration of Products by Customers of Electronic Shop Systems” (http://www.istintellect.com). The authors wish to thanks the European Commission for their support. We also wish to acknowledge our gratitude and appreciation to all INTELLECT partners for their strong support and valuable contribution during the various activities presented in this paper. INT-D18FINAL © The INTELLECT consortium – 2001 Page 57 of 58 INTELLECT IST-1999-10375 References [1] Neumann B. (1988) Configuration Expert Systems: A Case Study and Tutorial. Proc. Conf. on AI in manufacturing, Assembly, and Robotics, Oldenbourg [2] INTELLECT (2000) Software functional specification. Handbook D07, internal document, INTELLECT Consortium [3] INTELLECT (2000) Module Integration Specification. Deliverable D08, internal document; INTELLECT Consortium [4] Gamma E., Helm R., Johnson R., Vlissides J. (1995) Design Patterns, Elements of reusable Object-Oriented Software. Addison Wesley [5] Schilingheider J. (1994) Methodik zur Entwicklung rechnerunterstützter Konfigurationssysteme. Carl Hansen Verlag, München Wien [6] Detken K.-O., Fikouras I. (2000) Intelligent and Secure 3d-Configuration of Products in Electronic Shop Systems. Third International Conference on Telecommunications and Electronic Commerce (ICTEC3), Dallas/Texas, USA [7] INTELLECT (2001) System Implementation intermediate Progress Report. Deliverable D09, internal document, INTELLECT consortium [8] Günter, A; Dörner, H; Gläser, H; Neumann, B; Posthoff, C; Sebastian, H-J., Das Projekt PROCON: Problemspezifische Werkzeuge für die wissensbasierte Konfigurierung. Technische Uni Chemnitz, Martin-Luther Uni Halle-Wittenberg, Uni Hamburg, Technische Hochschule Leipzig, Technische Hochschule Zwickau. PROCON-Bericht Nr.1, 1991 [9] Beckmann M (2000) Conception, testing and implementation of IP based applications regarding the field of Computer Supported Co-operative Work (CSCW): Standards, Products, Platforms. Bremen University of applied sciences and South Bank University London; Master Thesis; Course: Beng (Hons) [10] Braden R., Clark D., Shenker, S. (1994) Integrated Services in the Internet Architecture: an Overview. RFC-1633, IETF [11] Cunis, R; Günter, A; Strecker, H. Begriffshierarchie-orientierte Kontrolle. In Das PLACONBuch. Springer, Informatik Fachberichte Nr. 266 1991 [12] Bense, H; Bodrow, W. Wissensbasierte Dialogführung für ein Beratungssystem zum Softwarequalitätsmanagement. In Objektorientierte und regelbasierte Wissensverarbeitung. Heidelberg, Berlin, Oxford: Spektrum, Akad. Verl., 1995 [13] Lunze, J., Künstliche Intelligenz für Ingenieure. München, Wien: Oldenburg Verl. 1994 [14] Cunis, R; Günter, A; Strecker, H., Fallbasiertes Konstruieren mit Bibliothekslösungen. In Das PLACON-Buch. Springer, Informatik Fachberichte Nr. 266 1991 [15] Tsang, E., What is Constraint Satisfaction? 1998. http://scwww.essex.ac.uk/CSP/tutorial.html, 15.12.00 [16] Barták, R., Constraint Programmimg: In Pursuit of the http://ktilinux.ms.mff.cuni.cz/~bartak/html/publications.html, 13.12.00 Holy Grail, 1999, [17] Jboss EJB Application Server, http://www.jboss.org/ [18] Braden R., Clark D., Shenker, S. (1994) Integrated Services in the Internet Architecture: an Overview. RFC-1633, IETF [19] Huston G. (2000) Next Steps for the IP QoS Architecture, RFC-2990, Category: Informational, Network Working Group, IETF [20] Ioannis Fikouras, Ewgeni Gisbrecht, Lean Configuration: Interactive Configuration for the Internet, eBusiness and eWork 2001, Venice, 17-19 October INT-D18FINAL © The INTELLECT consortium – 2001 Page 58 of 58
Similar documents
Deliverable (public)
3 Definition of Usability Testing Usability testing concerns itself with methods for the measurement of usability. Such methods are roughly categorised in two groups by literature in the area of er...
More information