Current Productsa) sfIntroBeta - The Beta version of product sfIntro (see description of product below). This is a complex product with a number of features and administrator configurations. An exhaustive test is too expensive for the potential benefits. The basic testing covers most feature combinations, but definately not all configuration possibilities. A user of this beta product should expect to encounter and report a few bugs. The number of software bugs in this beta version is estimated at less than 100. A reported bug that stops a basic feature from working will be identified, fixed, and all executables will be emailed to a bug reporter. Fixes will be accumulated and added into periodic updates for the beta product. The product will exit the beta state when it is estimated that a typical user will encounter less than one bug during the use of basic features.
Planned Future Productsa) sfIntro - The product sfIntro is a book, a number of infrastructure software executables, and source code made available by this product. The book describes how to create software using the infrastructure. The product includes a one computer variation of the infrastructure in Java. The source code in Java is present for about half of the infrastructure except for some planned future products, such as Service and Fred. The sfIntro product enables a user to learn how to use the infrastructure and supports developing software using the infrastructure for either one or multiple computers in a system.
b) sfServiceSourceJava - The source in Java for the sfServiceExec and sfServiceManager programs. These programs provide basic remote service access and serve as a starting point for advanced functionality.
c) sfFredSourceJava - The source in Java for the classes to access the sfFred middleware and the sfFred middleware programs sfAssigner, sfHub, sfLocalHub, sfMainHub, and sfRecorder. These programs provide both a one and multiple computer middleware. The functionality is quite advanced, sophisticated, and subtle.
d) sfOne - A one computer variation of the infrastructure for general distribution and use.
d1) sfOneJava - Product sfOne supporting Java software.
d2) sfOneCPlusPlusWin - Product sfOne supporting C++ software on Windows.
Support for C++ on other OS platforms and support for other software languages is possible based on market demand.
e) sfBase - A multiple computer variation of the infrastructure for general distribution and use. Works with software developed using sfOneJava, sfOneCPlusPlusWin, etc.
Current Product Line Status
The status, on 5/28/2015, is that
- all of the product line design is complete.
- the Java implementation is complete except as noted below.
- basic testing of all features is complete on a one computer system as well as a simulated multiple computer system except for the noted incomplete implementation.
Java is the software implementation language. Windows 7 is the OS of the test computer.
The simulation consists of a sfSim command and an ioSimulateAll class. The net feature is an interface between an OS socket layer and the rest of the infrastructure classes. The net.ioSim.ioSimulateAll class simulates passing messages between computers on TCP/IP while in reality all class instances execute under one process. This kind of simulation allows reasonable testing of some 99% of the infrastructure as if it were executing on different computers even though the environment is actually a single process.
1) Incomplete implementation consists of an active service manager not providing dynamic state changes to a standby service manager. This is planned for completion before a sfBase beta test.
2) A service executive and service manager can add support for a near real time event processor that supports a non-recoverable service session. This allows creation of a service without the overhead of saving state for recovery. The FRED component supports creating a channel on the event connection as part of this feature. Testing can only occur when all the pieces are in place.
3) The ui prototype is NOT production quality. The purpose is to show one direction in which a user interface can be integrated with apps and servers using the ServiceFrame Infrastructure. The userManager dialog occasionally does not appear. The recoveryDemo shows that service exec and manager can recover a client to server session but the user interface server does not yet accept recovery. Hopefully, these problems will be fixed over time but the ui prototype will never be production quality.
4) The logging of events to a trace file is partly in place. The trace function and trace configuration settings work. Intelligent tracing of what is going on is a per program and component issue. Each detected error is traced or returned to caller as a gcErrorResult instance. Fred supports optional tracing of admin, data, and event messages. The Service component supports optional tracing of messages exchanged between the serviceManager and the serviceExec. Future production issues will drive further refinements in what is traced during production.
What does all this mean? Essentially that all design, implementation in Java, and basic testing is complete. It is estimated that less than 100 bugs remain to be found and fixed before the software can be placed into production. A beta test process will be followed to attempt to limit the impact of bugs to only those users willing to participate in a beta test. Implementation and testing in other software languages will depend upon the market demand and the number of users willing to participate in such a test.