• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Client/Server Paradigm And Its Implementation
 

Client/Server Paradigm And Its Implementation

on

  • 5,232 views

The implementation within the Siebel platform boundaries

The implementation within the Siebel platform boundaries

Statistics

Views

Total Views
5,232
Views on SlideShare
5,228
Embed Views
4

Actions

Likes
3
Downloads
207
Comments
0

2 Embeds 4

http://www.supratech.co.il 3
http://www.lmodules.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Client/Server Paradigm And Its Implementation Client/Server Paradigm And Its Implementation Document Transcript

    • 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-
    • 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-
    • 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-
    • 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-
    • 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-
    • 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-
    • 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-
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. Figure 3-2: Common Messaging Engine browser script - PreCanInvokeMethod event -8-
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. Figure 3-3: Common Messaging Engine browser side - ShowBrowserSideMessage -9-
    • 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
    • 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
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. Figure 3-6: Common Messaging Engine server side - PreCanInvokeMethod event - - 12
    • 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
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. Figure 3-8: Common Messaging Engine server side - ShowServerSideMessage 3.3Client/Server implementation - - 14
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. 3.3.1Client implementation Figure 3-9: Common Messaging Engine ClientServer - Client side - - 15
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. - - 16
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. - - 17
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. 3.3.2Server implementation Figure 3-10: Common Messaging Engine ClientServer - Server side - - 18
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. - - 19
    • Roman Agaev, M.Sc, PMP Owner, Supra Information Technology ltd. 3.3.3Loader implementation Figure 3-11: Messaging Engine browser side - loader - - 20
    • 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
    • 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