Boost Fertility New Invention Ups Success Rates.pdf
Client/Server Paradigm And Its Implementation
1. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Client/Server paradigm and its
Implementation within Siebel
Author: Roman Agaev
Date: Tuesday, March 27, 2007
-1-
2. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Contents
1 Abstract.......................................................................................................................4
1.1 Messaging ability on browser side..................................................................4
1.2 Messaging ability on server side......................................................................4
1.3 Messaging ability without client context.........................................................4
2 Analysis.......................................................................................................................4
2.1 Siebel's part......................................................................................................4
2.2 Client/Server (peer to peer)..............................................................................5
2.2.1 Client solution.......................................................................................5
2.2.2 Server solution.......................................................................................5
2.2.3 Loader solution......................................................................................5
3 Design/Implementation...............................................................................................6
3.1 Siebel's part design...........................................................................................6
3.2 Siebel's part proposed implementation.............................................................6
3.2.1 Browser Side.........................................................................................7
3.2.2 Server Side..........................................................................................11
3.3 Client/Server implementation........................................................................14
3.3.1 Client implementation.........................................................................15
3.3.2 Server implementation........................................................................18
3.3.3 Loader implementation.......................................................................20
3.4 Usage examples..............................................................................................21
4 ShowBrowserSideMessage.......................................................................................21
5 ShowServerSideMessage..........................................................................................21
6 Conclusion.................................................................................................................21
6.1 Discussion......................................................................................................21
7 Appendixes................................................................................................................22
-2-
3. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figures
Figure 3-1: Common Messaging Engine browser script - PreInvokeMethod event......7
Figure 3-2: Common Messaging Engine browser script - PreCanInvokeMethod event
8
Figure 3-3: Common Messaging Engine browser side - ShowBrowserSideMessage...9
Figure 3-4: Common Messaging Engine browser side - MessageException..............10
Figure 3-5: Common Messaging Engine server side - PreInvokeMethod event........11
Figure 3-6: Common Messaging Engine server side - PreCanInvokeMethod event...12
Figure 3-7: Common Messaging Engine server side - ShowBrowserSideMessage....13
Figure 3-8: Common Messaging Engine server side - ShowServerSideMessage.......14
Figure 3-9: Common Messaging Engine ClientServer - Client side............................15
Figure 3-10: Common Messaging Engine ClientServer - Server side.........................18
Figure 3-11: Messaging Engine browser side - loader.................................................20
Figure 4-12: Common Messaging Engine - Client side message invokation..............21
Figure 5-13: Common Messaging Engine - Server side message invokation.............21
-3-
4. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
1Abstract
1.1 Messaging ability on browser side
There is a need for messages of different type creation whether the process has been
started from browser side. Those types are:
•Alert1 – the regular message box, just like MessageBox from windows.h
•Confirm – the message box with possible multiple answers, just like
MessageBox from windows.h
•Prompt – the message that allows interaction with users, just like InputBox of
Visual Basic
The standard Siebel environment provides the ability as its integral element
1.2Messaging ability on server side
There is a need of message pop up for a system user through the business process
which is running on server side and has been instantiated on that side also, or within
the process with several divergences that cause to disability of doing so as result of
potential multiple bidirectional jumps between server and browser side.
The standard Siebel environment provides the ability just by RaiseErrorText function
exposition, when the main disadvantage of the option is that in fact this function
instantiates the internal error and no following script or related process are not further
executed.
1.3Messaging ability without client context
There is a need of system user's messages accumulation without a need of his/her
current state as logged in and propagation of those messages to their recipient when
the system user will log in to the system.
The standard Siebel environment doesn't allow this kind of functionality
2Analysis
2.1Siebel's part
As part of final solution the new Business Service will be created. The Business
Service will be exposed as cacheable one in order to simplify its methods approach
1
Siebel eScript language presents SWEAlert function as substitute function for regular JavaScript's
Alert. In some circumstances the ShowDailogBox also may be used. For additional information please
refer to Siebel Object Interface Reference Guide.
-4-
5. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
and permit data structure managing along the user's session, when the session's life
cycle will be Business Service's also. The Business Service will encapsulate the
complexity of that kind of management and provide an application programming
interface (API) for developer's needs.
This architecture will allow system user's messages queue management.
2.2Client/Server (peer to peer)
As part of final solution two win32/linux applications can be designed, when the
interconnection can be based on xmlrpc (http://www.xmlrpc.org).
The usage of win32/linux applications and native C++ language gives an ability of
different frameworks boundaries breakage working strictly on processor itself.
2.2.1Client solution
Client's side application must act as residential process (daemon) that will listen to
predefined port for inbound call and according the call recognition will perform
bounded set of actions. (simple .exe file)2
2.2.2Server solution
Server's side application must act as client's side daemon invoker. For that purposes
the implementation must assume that the call process will start and end
synchronously. (simple .dll file)3
2.2.3Loader solution
The Client's side application must be loaded by some external application or by
Siebel's web client, when the second option preferable.
The main aim of the loader is prevention of simultaneous work of several daemons
that listen to the same port in case when user has its own machine, and in case of
Citrix or similar environment the loader must regulate the ports among different
similar processes.4
2
Implementation within C++ environment
3
Implementation within C++ environment
4
Implementation within Siebel eScript environment using JavaScript native syntax
-5-
6. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3Design/Implementation
3.1Siebel's part design
The design messaging engine's Siebel's part will be handled creating cacheable
Business Service – Common Messaging Engine BS. The Business Service will
consist of several methods and populated events as following:
Method/Event Description
GetMessagesStack Retrieves messages regarding current
engine session.
PopMessage Pops message from messages data
structure.
PushMessage Pushes message in messages data structure.
ShowAsynchServerSideMessage Shows message out of interactive session.
ShowBrowserSideMessage Shows message with regular JavaScript
abilities.
ShowServerSideErrorMessage Shows Siebel's error message.
ShowServerSideMessage Shows message with regular Siebel's server
side abilities.
3.2Siebel's part proposed implementation
The following code examples are coming to demonstrate rather than determine.
-6-
7. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.2.1Browser Side
Figure 3-1: Common Messaging Engine browser script - PreInvokeMethod event
-7-
8. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-2: Common Messaging Engine browser script - PreCanInvokeMethod event
-8-
9. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-3: Common Messaging Engine browser side - ShowBrowserSideMessage
-9-
10. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-4: Common Messaging Engine browser side - MessageException5
5
The Common Error Handling engine can be used here. Please refer to "General error handling
mechanism within Siebel boundaries " from Appendixes section of the document
- -
10
11. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.2.2Server Side
Figure 3-5: Common Messaging Engine server side - PreInvokeMethod event
- -
11
12. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-6: Common Messaging Engine server side - PreCanInvokeMethod event
- -
12
13. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-7: Common Messaging Engine server side - ShowBrowserSideMessage6
6
This method allows propagation and evaluation of custom script from browser side to the server side
including parameters. For additional information please refer to "Common service design within Siebel
boundaries" from Appendixes section of the document
- -
13
14. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Figure 3-8: Common Messaging Engine server side - ShowServerSideMessage
3.3Client/Server implementation
- -
14
15. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.3.1Client implementation
Figure 3-9: Common Messaging Engine ClientServer - Client side
- -
15
18. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.3.2Server implementation
Figure 3-10: Common Messaging Engine ClientServer - Server side
- -
18
20. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.3.3Loader implementation
Figure 3-11: Messaging Engine browser side - loader
- -
20
21. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
3.4Usage examples
ShowBrowserSideMessage4
Figure 4-12: Common Messaging Engine - Client side message invokation
ShowServerSideMessage5
Figure 5-13: Common Messaging Engine - Server side message invokation
6Conclusion
The engine consists of four parts: server side dynamic linking library, client side
daemon/resident process, client side daemon/resident process loader, and server side
daemon/resident process terminator.
The way of implementation allows effective extensible functionality within the
boundaries of engine like: server/client system health check, aggressive marketing
using Siebel's plug-ins for smooth connectivity.
6.1Discussion
The following advantages say by themselves:
Supports multi porting7
Supports Citrix environment
Highly flexible and extensible
Highly reliable
Works within another client side process
Implemented using native compilation
Open source
Fully integrated with Siebel
7
The preferable listener port is not from HTTP protocol native ports.
- -
21
22. Roman Agaev, M.Sc, PMP
Owner, Supra Information Technology ltd.
Loosely coupled with GUI context
7Appendixes
"General error handling mechanism within Siebel boundaries" (Roman Agaev)
"Common service design within Siebel boundaries" (Roman Agaev"
- -
22