Re: Request for suggestions re: architecture of IntraNet/Socket app[s]



Clay Shannon wrote:
All/y'all,

I am commissioned with determining the "right" architecture for an application for controlling movement of stock in a warehouse.

I presume that you are getting a "pick-list" for outflow and receipt notices/scheduled deliveries for a "schedule" of events -- and then matching against them? Otherwise -- who knows what is going on? Much of your system describes monitoring -- control implies schedule and tracking for purposes of changing system operation -- correct?

The end-user
needs to be constantly updated as to the materials progress as they feed the machines (the "browser" needs to send a message that a piece was inducted,
and then needs to receive a message from the realtime that the piece was "seen" and then the end-user's display is updated to reflect that (1 item of
500 inducted, 2 items of 500 inducted, etc.)

Came back and Re-read this -- yes this is a "scheduling execution system" (as opposed to manufacturing" :-) -- but principles are the same from a design point of view -- you know what you want to make (ship) and then have to figure a way (best way?) to make it happen. If multiple machines can handle the pieces and some machines do different operations -- then there is an element of scheduling (resource allocation) and a time frame in which to complete.


Closed loop system -- did one of those in Delphi -- it worked great. Various iterations of the system went through to Delphi 7. Looking at D2007 -- but busy on large system for a little while yet.

Delphi will definitely do this -- largest we handled was a network of 300 machines -- with all the interconnect paths -- most machines were department specific -- but multifunction within a department. So we allocated the departmental flow -- then the specific machine to handle an operation -- is yours that complicated -- or simpler?

We were also able to update the "schedule" or expectations on the fly and add or modify jobs as necessary. (Increase qty. change requirement times etc.) Is this a requirement? It sounds like order tracking as well -- is this a requirement? Are orders aggregated as to movement for efficiency -- or simply left as a stand alone order?

We were able to integrate with SCADA systems as well if the detection systems were too low level. You might want to consider a hybrid system here if you are looking at switches tripping and photo cells blinking as opposed to nice neat packets -- but maybe that is there already.


Preferably, this/these apps will be written in Delphi32, but if there is a good reason to do so, Delphi.NET is "on the table."

I did not use .Net wasn't available. Might be better for reasons other than the "Net" capability I think.

Preferably, we will use IntraWeb for Delphi32 for the IntraNet app, but IntraWeb.NET and ASP.NET are both "on the table."

Requirements are:

1) Use a MS SQL Server database

We used Borland DB's -- fast lightweight. Some of it was re-written for IB -- much faster in current version.

2) End-users (Sorter Operators in the Warehouse) must be able to access the app via Browser (N PCs/users, where N is between 5 and 50)

Never did that -- had a custom app looking at the db window -- real issue is keeping updates current -- we used publish/subscribe with a local db tracking immediate changes -- and for a fail-safe. The master db was updated at server.


3) Messages (over sockets, presumably) need to be passed back and forth to a separate RealTime system either from the IntraNet server app OR from another
app. The crux here is the Browser display needs to be refreshed constantly (several times per second), so if the IntraNet app doesn't receive the
messages directly, it needs a fast method to retrieve these messages.


If you are using PC's -- a local db as described above will work. We just stored locally first -- checked master DB was not active -- when free -- updated then posted a message that a change had occurred -- then other stations would update at their leisure. Worked very well.

If this is to be IntraWeb app, it can update its display by running database queries, perhaps with a timer that fires several times per second.

What is the required time-frame of the movements and notifications? Do you really need that much activity? Or do you just need to know what is happening at that particular station? If you have a "master" viewing station watching for problems you might need that frequency... Otherwise... I don't think so -- but then you have only given a rough frame of the problem with few solid details. In any case some databases will trigger events -- or you can use a trigger to "push" data to a "changes" table... There are a few ways to do this.

One idea
I have is to have a second app that communicates with the realtime over sockets and then writes SQL statements to a database table. The IntraWeb app
would read this table periodically, grabbing the SQL statements and running them. I wonder if this will be fast enough, though...

Too complicated for me... :-) Since descriptions are fixed and presumably DB tables are fixed -- filtering is for sure -- parameterized queries certainly -- but if there is a _large_ volume of changes/items -- might be better to have queries pre-compiled etc.


To reach me at work (I can only access newsgroups at home), email me at: bcshanno@xxxxxxxxxxxx

--Clay Shannon,
author of "PROFILES IN CORRUPTION: Liars, Thieves, Traitors, Adulterers and Murderers in the White House" www.lulu.com/content/925361 and many other books at: www.lulu.com/blackbirdcraven



I know my reply looks disjointed -- but I'm guessing that you are in the "concept" stage -- as in "We know we can do it with these tools -- but how exactly...?" So it is hard to organize the thoughts at this stage.

Hope this gives you food for thought.


--
Will R
PMC Consulting
.



Relevant Pages

  • Re: MFC MDI app hangs randomly on some machines, but not others (most are OK). Typical causes?
    ... If the problem is reproducible on the problematic machines, that is, the ... same file always hang on machine X, but not on Y and Z, you will probably ... old method of adding logging code to your app, ... > major Windows operating systems have failed to reproduce the bug. ...
    (microsoft.public.vc.mfc)
  • Re: running apps as power user. Permission problems.
    ... >runs the app as a power user logged onto their network. ... Then reduced their rights to power ... developers run their own machines as supervisor. ... programmers seem to do a basic installation, ghost it, and just scrub ...
    (microsoft.public.windowsxp.security_admin)
  • Re: Trend Micro SMB v3 Configuration Questions
    ... > of the problems described here about pushing it to other machines. ... > only reports and makes logs for machines where something was detected. ... > all threats found whether or not they were cleaned or deleted without ... You can probably schedule a report that would show details, ...
    (microsoft.public.windows.server.sbs)
  • Re: No Touch Deployment Not Working On Some PCs
    ... hi hakl, ... When I installed the app to run locally on the machine that would ... > BusinessObjects assemblies disappear from the Global Assembly Cache. ... >> do the reports open OK on problem machines if you install the app and run ...
    (microsoft.public.dotnet.framework.windowsforms)
  • Re: Counter Strike blocker?
    ... - School policy - From what you say there is a distinct lack of school ... and i mean no one should be admin of any machines except the ... spot any game servers would be to have a machine installed with Half life ... Another alternative would be to create an invisible app (one that is not ...
    (microsoft.public.dotnet.languages.vb)