The Veto Unit
We are in the world of Client-Server software, Object Oriented was so fine in the world of GUI, but it's does not take Client-Server in mind, so we need intelligent programming paradigm that take other features of software in mind
DoubleS paradigm designed to present the best solution for the most complex client-server applications; also DoubleS paradigm takes other features of software in mind.
Now, you may ask "Veto Unit, what is the veto thing?"
Ok I will tell you, the veto in DoubleS paradigm means "the message that passed from server to another one, and this message may be accepted or refused, also the message can contain unlimited amount of data that come before it."
You need to define the veto only at the Server which will receive the requests from another one.
When you define the veto, you tied it with resistance in you server circuits, so when invoking the veto this resistance will invoked only if the veto is accepted.
So the data required to define the veto is (Name, Type, Circuit, Branch and Resistance).
I know that you will ask "How I will control if the veto should accepted or not?"
At your design time you will put conditions to determine when you will accept the veto, and when not, while in programming you can set two items for the server, one called "Receiver Veto" which invoked when there are veto passed to the server, and another item called "Sender Veto" which invoked when sending veto to another server
Now the question "how I can collect unlimited amount of data passed to my server beside veto also how I can send unlimited amount of data while I send my veto?"
Ok, it's the time now to present the second block in the veto unit which called the "Channel", simply it's not more than "Reference to sub shell in atom" and this means that for defining channel we need to determine "Name, Type, Atom, Shell and Sub Shell).
You have two genders of channels "Input Channel & Output Channel", at the "Server" side we need to define Input Channel to receive in it unlimited amount of data, in "Client" Side we can define "Output channel" to store data that we send from the Server.
Ok, the question now which may be in mind from a long time "How I can connect Server to another one?"
This is simple process, we use in that the third block in Veto Unit which called "Connection", which is used for connection and also setting how we will manage the "Interaction" process between servers, this means determining what is the servers we want to connect to?, what are the channels used for input & output operations?, what is the sender veto for that connection only? And what is the receiver veto for that connection only?
Now we have only one tip, in veto system there are levels where each level determine the environment in which the system will work, for example you start writing the client-server software through level (1) "virtual client-server", so you can test your software and generate one "executable" file that contain both the client and server, then you can change the level of the veto system, for example veto system level (2) "at LAN level through shared data files".
This means that through veto system you can write your client-server software that can be work in different environments (Desktop, LAN and Internet) without changing the base code, only you set the environment variables.
Now, we have simple example for both "Client side" and "Server side" servers which will show how writing client-server software in DoubleS paradigm is simple and effective process.
In our example we will use veto system level (1), virtual client-server.
This Level (VSL1) called "Virtual Client-Server"
Both
the client and the Server are in the same Executable Program
This
Level is not more than a prototype for client-server systems
No
use for Shared Data Files
No
use for external Programs
No
use for Network protocols like TCP/IP at all
This Level (VSL2) called "Client-Server Based on Shared Data Files"
The
Shared Data Files are two file (SS1.DBF) & (SS2.DBF)
The
Client and the Server are isolated from each other
This
Level used when client-server applications works in the same Machine or LAN
No
use for external Programs or Network protocols like TCP/IP at all
Veto System Level [3]
This Level (VSL3) called "Client-Server Based on TCPIP Server"
The
Client and the Server are isolated from each other
This
Level works on (Desktop, LAN, Internet…etc) any IP Based Network.
There
is usage for external program "TCPIP.EXE" called TCP/IP Server
The
external program required at both the client-side & Server Side
Using
Network protocols like TCP/IP done only by the external program
The
communication between the Client-Side and TCPIP.EXE done through VSL2
The
communication between the Server-Side and TCPIP.EXE done through VSL2


Domain (Veto Unit)