There are some considerations to take into account when you are
developing an architecture or a topology
for ACE. If you remember early on in the class, we
talked about the components of ACE, those components being
the ACE Manager, the ACE Wizard and the
ACE Scheduler. Now,
there's also -- you might consider a fourth component,
and that might be the Module Database Structure that's
holding the ACE Configuration. And, in fact,
where most people have these applications installed
on these PI Servers, there are
quite a number of different considerations
or different configurations that you can take advantage of.
Also, keep in mind
that the ACE calculations,
the DLL's and the executables, they
do require resources. They do require CPU
time, they do require memory. And, so,
you may, if you have a lot of ACE calculations, you may want
to think of hosting them on a machine that's
other than your PI Server. Also,
when you are developing your executables, you may
want to consider grouping modules and
context or calculations under individual
executables based on the number of resources
or the amount of time that each one of those
executables is going to require in order to do
its job. For example, if you have five
calculations that are very quick, they do not require much
resources at all, and you have a sixth calculation
that requires a lot of resources and does take a while to
run through, you may want to group the five
quick calculations under one executable as
modules, and have the long calculation
its own executable, thereby
having to gather and have its own resources
for that specific calculation.
And remember, everything that you have, all the,
all the configuration information, everything,
is stored in a PI Module Database
When people
set up ACE, as we said earlier, a lot of times
they will just load everything on the PI Server. And, in fact,
that's what we do in the classroom. We take the PI
Server and we install the Wizard, the
ACE Manager and the ACE Scheduler on
the student's PI Server, and
that has access also to the Module Database
structure on that Server as well. That ACE machine,
or PI Server with ACE on it, can then
read from and write to any other PI Server
that it has, that it can see across the network, that it has access
to. And, there is an advantage to this
configur... configuration in fact -- is
speed. Everything's all in one machine
and there's no need to have any network communications
between the actual engine and the PI
Server, or the Manager and the engine, or whatever.
It does have the disadvantage, however,
of competing for resources. Remember, every
ACE executable or DLL,
it is -- does require it's own CPU
time and memory, and so, you
can run into situations where there's a problem when you have a PI Server
that's got a lot of tags or
involved in a lot of data collection, and an ACE structure
that's trying to do a lot of calculations.
Very often what people will do is they will
segment the applications that are associated
with ACE off onto what we refer to as an
ACE Server. And, this is simply a computer
that's not the PI Server. Of course, there will
still have to be one Module Database structure, at least, to hold
the configuration, but the ACE Manager, Wizard and Scheduler
are all installed and run on a separate
Server. This does have the advantage of not
competing for resources with the PI Server itself,
but it does have the disadvantage of having to communicate
across a network.
There's also a, another permutation
of this where you
install the ACE components on an ACE Server
with the exception of the ACE Wizard. So you would have the ACE
Manager and Scheduler and then the completed DLL's
and executables running on an ACE Server, communicating
with at least one PI Server for the Module Database
structure and other servers for data.
And the ACE Wizard would be deployed
on a separate box. This
might be a, an engineer's or
technician's workstation. It might be someone's laptop.
It does not really matter where you run
this, as long as you have the development environment, and that,
that computer can
see the same PI Server that holds the Module Database
structure, and has the appropriate permissions -- we will talk about
that later -- on that Server, as does the ACE
box. That way you can compile -- code, compile and
test ACE calculations on the
development box. And when they are all set and ready to go, you
simply copy the DLL's and executables off
to the ACE Server and run them there using the ACE
Manager. So, that's a -- yet
a variation on the ACE Server installation.
Again, it has the advantages
of not competing for resources between the development
environment and the ACE stuff or the PI Server,
and you do not have to have the development environment loaded on
on either of the Servers. However, you do have the network
considerations to take into account.