Christian Kochs Jan Schaffner Jan Schulz-Hofen Gaurav Singh HASSO - PLATTNER - INSTITUTE for Software Systems Engineering CRM .NET Customer Relationship Management System A Project for Components Programming and Middleware, SS 2004 07/01/2004 HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 2 HASSO - PLATTNER - INSTITUTE Customer Management: Challenges Manage distributed Customer Data Serve multiple Users Ensure Consistency Store different Aspects for each Customer Profile
12
Embed
CRM - Operating Systems and Middleware · Customer Profile Data Structure: E/R-Diagram (FMC) CRM Base manages Customer Base Data (Profile Set) and object specific Security Privileges
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ä1
Christian KochsJan SchaffnerJan Schulz-HofenGaurav Singh
HASSO-PLATTNER- INSTITUTEfor Software Systems Engineering
CRM .NET
Customer Relationship Management System
A Project for Components Programming and Middleware, SS 2004
07/01/2004
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 2 HASSO- PLATTNER - INSTITUTE
Customer Management: Challenges
Manage distributed Customer Data
Serve multiple Users
Ensure Consistency
Store different Aspects for each Customer Profile
Ä2
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 3 HASSO- PLATTNER - INSTITUTE
Structure of Presentation
Requirements and Scenario of Application
Architecture of System
Technologies used
Live Demonstration with Technology Workshop
Development Process and Experiences
Outlook: Conceivable Extensions
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 4 HASSO- PLATTNER - INSTITUTE
Use Case Diagram (UML 2.0)CRM System
User
Admin
Manage SecurityPrivileges
Deploy Components**
Manage Customers
*
*
**
Add Component«extends»
Remove Component
«extends»
Add New Customer
Remove ExistingCustomer
Modify CustomerInformation
Read CustomerInformation
«extends»
«extends»
«extends»
«extends»
Enter Name
Edit ContactInformation
«extends»
Change Picture«extends»
Evaluate«extends»
Import OutlookContact Information
«extends»
Edit Memo
«extends»
«extends»
<<includes>>
Import Pics fromeRasm-Gallery«extends»
Authenticate
<<includes>>
<<includes>>
Ä3
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 5 HASSO- PLATTNER - INSTITUTE
Architecture of System
Multi-User-System
Follows Model-View-Controller (MVC) Pattern
Own Implementation of Naming Service (Registry)
Distributed Architecture (.NET Remoting)
Flexible Creation of Components (offered Functionalities)Dynamic management of heterogeneous and distributed componentsComponent Dynamics on both Client and ServerGUI is deployed together with specific component, not in the clientEach Component is responsible for its individual Data Storage
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 6 HASSO- PLATTNER - INSTITUTE
Compositional Structure (FMC)
View
ImageModel
EvaluationModel
ContactModel
Controller
Registry
R
R
R R
Clients Server
CRM BaseRegistered Components
R
ViewR
MemoModel
R
Customers
R
Dynamic Management of many heterogeneous and
distributed Components which carry their own
GUI and Data
Contact Data
R
R
R
R
R
Evaluation Data
Memo Data
ImageData
Ä4
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 7 HASSO- PLATTNER - INSTITUTE
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 8 HASSO- PLATTNER - INSTITUTE
Featured Technologies
Distribution and Communication via .NET Remoting:Server Activated Object (SAO)Singleton PatternBinary Formatter (Performance)
Dynamic Assembly Loading (of Components’ UIs)
Data Storage: MS SQL Server, ADO .NET, J2EE-Entity-Beans
Components implemented in C# and J#
COM-Interop: Microsoft Office Integration
Webservices via SOAP / XML
Ä5
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 9 HASSO- PLATTNER - INSTITUTE
System Startup Sequence (UML 2.0)Admin
:Controller
:Registry
:ContactModel
Additional Model
:WinAppView
User
start
start
start
start
start
login dialog
provide login/password
register model
synchronize customers’ data
synchronize customers’ data
get UI component
get UI component
confirm authentification
session id
request UI components
deliver UI component
request customer list
deliver UI component
CRM Base
register model
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 10 HASSO- PLATTNER - INSTITUTE
System Startup Sequence (UML 2.0)Admin
:Controller
:Registry
:ContactModel
Additional Model
:WinAppView
User
start
start
start
start
start
login dialog
provide login/password
register model
synchronize customers’ data
synchronize customers’ data
get UI component
get UI component
confirm authentification
session id
request UI components
deliver UI component
request customer list
deliver UI component
CRM Base
register model
Ä6
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 11 HASSO- PLATTNER - INSTITUTE
Customer Profile Data Structure: E/R-Diagram (FMC)
CRM Base manages Customer Base Data (Profile Set) and object specificSecurity PrivilegesEach Profile consists of one or moreCustomer AspectsAspects are managed individually byCRM .NET Components
ContentType is Linking Element between Model, View and Controller
TextAspect
Eval.Aspect
ContactAspect
ImageAspect
Aspect- ContentType- Body
Profile- Name- Security Privileges
1 n
Modular Architecture of CRM .NET requires modular Design of Data Structure
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 12 HASSO- PLATTNER - INSTITUTE
System Startup Sequence (UML 2.0)Admin
:Controller
:Registry
:ContactModel
Additional Model
:WinAppView
User
start
start
start
start
start
login dialog
provide login/password
register model
synchronize customers’ data
synchronize customers’ data
get UI component
get UI component
confirm authentification
session id
request UI components
deliver UI component
request customer list
deliver UI component
CRM Base
register model
Ä7
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 13 HASSO- PLATTNER - INSTITUTE
Dynamic Assembly-Loading in .NET
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 13 HASSO- PLATTNER - INSTITUTE
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 14 HASSO- PLATTNER - INSTITUTE
Framework Comparison
Extending the GUI dynamically in JavaDefining a Classloader extending the abstract ClassLoader Class
Ä8
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 15 HASSO- PLATTNER - INSTITUTE
Framework Comparison (contd.)
Extending the GUI dynamically in JavaUsing the defined GuiExtensionLoader to load a Class
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 16 HASSO- PLATTNER - INSTITUTE
Multi-User Facility
Global Data Synchronization
Let‘s open up a second View !
Ä9
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 17 HASSO- PLATTNER - INSTITUTE
COM Interop für Einbindung von MS Outlook (FMC)
.NET-Applikation RR
R
RCW COM-Objekt
Interop Marshaler (CLR)new()
.NET-Aufruf
Interop Assembly
COM-Aufruf
Managed Code Unmanaged Code
HPI, SS 2004: C.Kochs, J.Schaffner, J.Schulz-Hofen, G.Singh 18 HASSO- PLATTNER - INSTITUTE
COM Interop
Create an Instance of the referenced COM-Component Use of the Type Library Importer (tlbimp.exe) to create a .NET InteropAssembly containing the Metadata of the COM Type Library