February 2019
Android Edition, Release 2.7
Replaced several long integer variables with
java.util.concurrent.atomic.LongAdder. This required increasing the API
level to 24 (version 7.0). If you cannot support this level, then use the
prior Release 2.6.
This update is to keep this product compatible with the other Tymeac
products (TymeacSE the standard Task Parallel product from which this
product came, TymeacDSE the Data Parallel product and TymeacRSE the
Reactive Streams Generation product.)
Standard Edition, Release 9.3
Replaced several long integer variables with
java.util.concurrent.atomic.LongAdder.
Divide-and-Conquer Edition, Release 7.4
Replaced several long integer variables with
java.util.concurrent.atomic.LongAdder.
Reactive Streams Edition, Release 3.3
Replaced several long integer variables with
java.util.concurrent.atomic.LongAdder.
January 2019
Divide-and-Conquer Edition, Release 7.3
Added Matrix sort to the Built-in-Functions.
November 2018
Android Edition, Release 2.6
Added the Builder Pattern for TymeacParm.
Standard Edition, Release 9.2
Added the Builder Pattern for TymeacParm.
Divide-and-Conquer Edition, Release 7.3
Added Builder Pattern for TymeacParm and the Built-in-Functions. The
number of constructors was becoming excessive.
Reactive Streams Edition, Release 3.2
Added the Builder Pattern for TymeacParm.
October 2018
Standard Edition, Release 9.1
This release is fully Java11 compatible.
This release is primarily for the move of JavaFX from Java to a
separate product. Essentially, the only difference between this release
and the prior release is JavaFX. No code changes were required, just
scripts and paths.
Divide-and-Conquer Edition, Release 7.1
This release is fully Java11 compatible.
This release is primarily for the move of JavaFX from Java to a
separate product. Essentially, the only difference between this release
and the prior release is JavaFX. No code changes were required, just
scripts and paths.
Reactive Streams Edition, Release 3.1
This release is primarily for the move of JavaFX from Java to a
separate product. Essentially, the only difference between this release
and the prior release is JavaFX. No code changes were required, just
scripts and paths.
February 2018
Standard Edition, Release 9.0
This release is fully Java9 compatible.
We removed all the Jini classes since Jini is not Java9 compatible.
We removed all the CORBA classes (IIOP and IIOP-POA including the
_...Stub and Tie classes) since JavaEE modules are no longer packaged
with JavaSE.
We removed the client and demo Swing classes. We haven't upgraded
those classes since Release 8.0 (January, 2015) and with the new module
system adding an old jar file (swing-layout-1.0.4.jar) from 2009 is not
appropriate.
We added a -Djava.rmi.server.hostname","192.168.99.1 (this is
release/OS dependent) to the SET_ENV script.
Divide-and-Conquer Edition, Release 7.0
This release is fully Java9 compatible.
We removed all the CORBA classes (IIOP and IIOP-POA including the
_...Stub and Tie classes) since JavaEE modules are no longer packaged
with JavaSE.
We removed the client and demo Swing classes. We haven't upgraded
those classes since Release 6.0 (January, 2015) and with the new module
system adding an old jar file (swing-layout-1.0.4.jar) from 2009 is not
appropriate.
We added a -Djava.rmi.server.hostname","192.168.99.1 (this is
release/OS dependent) to the SET_ENV script.
Reactive Streams Edition, Release 3.0
This release is fully Java9 compatible.
We removed the jsr166 jar file and references thereto (used in
pre-java9 release.)
Although the org.reactivestreams interfaces were updated to release
1.0.2, our demonstration examples using Java9 Flow do not require us
updating to the 1.0.2 release.
There is no new functionality, just the final update to support
Java9.
October 2017
Standard Edition, Release 8.6
Added a check for timed-out-already in Pipeline processing for
synchronous requests.
If a syncRequest() times out the pipeline processing should cease as
well. Before, during a long sequence of continuations, if the request
exceeded the time limit, the main connection thread would send a
successful return code to the user with null user_data and the
continuances would continue unknowing that the request died. That can
still happen as the code in each continuance is separate from the main
connection thread. However, when the code tries to continue further, the
check for-timed-out-already will stop the processing and return a
timed-out return code.
While doing above, discovered and fixed a bug in Output Agent
processing. A timeout during OA processing might return a normal return
code since all Normal Queues finished processing. Now it returns a
timed-out return code.
August 2017
Standard Edition, Release 8.5
There is no new functionality. We have everything users have asked for
already in place. A back-end Task Parallel service is a niche product.
Enhancements come as requested.
We removed the Push Based Notification code. This feature was
deprecated in Release 8.4 with notice of removal in the next major
release. It served no purpose by remaining.
This release is a get-ready for Java9. The classes are Java8 compiled,
but may easily run on Java7 and may also run on Java9.
Java9 deprecated Class.newInstance(). Therefore, we changed all the
newInstance() to:
.getDeclaredConstructor().newInstance();
Jini (now Apache River) is not up to Java9 and has fallen behind in
acceptance in the community. Therefore, Jini is now
deprecated in this release and will be removed in a future release.
Java9 deprecated for removal the JavaEE classes. For TymeacDSE this
means CORBA modules. Therefore, we deprecated
the CORBA (IIOP and IIOP-POA) front-end classes and we will remove those
modules in a future release.
Documentation enhancements.
Divide-and-Conquer Edition, Release 6.4
There is no new functionality. We have everything users have asked for
already in place. A back-end Data Parallel service is a niche product.
Enhancements come as requested.
This release is a get-ready for Java9. The classes are Java8 compiled, but
may easily run on Java7 and may also run on Java9.
Java9 deprecated Class.newInstance(). Therefore, we changed all the
newInstance() to:
.getDeclaredConstructor().newInstance();
Java9 deprecated for removal the JavaEE classes. For TymeacDSE this means
CORBA modules. Therefore, we deprecated the CORBA (IIOP and IIOP-POA)
front-end classes and we will remove those modules in a future release.
See the Java9 page for more information.
Documentation enhancements.
Reactive Streams Edition, Release 2.4
Added a JavaFX demo application to help understand how the system
works.
Replaced the org.reactivestreams interfaces with updated (release
1.0.1) documentation.
There is no new functionality. We have everything users have asked for
already in place. A backend push generator is a niche product.
Enhancements come as requested.
This release is a get-ready for Java9. The classes are Java8 compiled,
but may easily run on Java9.
Java9 deprecated Class.newInstance(). Therefore, we changed all the
newInstance() to:
.getDeclaredConstructor().newInstance();
We originally planned for adding CORBA front-end support to the
product. However, Java9 deprecated for removal the JavaEE classes. For
TymeacRSE this means CORBA modules. Therefore, we removed the "future"
CORBA (IIOP and IIOP-POA) code that was not implemented.
Documentation enhancements.
September 2016
Divide-and-Conquer Standard Edition, Release 6.3
Fixed a potential bug in error processing. When backing out a failed
request, Tymeac tries to remove Tasks from Work Queues before they can be
fetched by a work thread. Tymeac uses a request id (long integer) to
identify the request, however, both a synchronous and asynchronous request
might have the same request id and be in the system at the same time.
Added a (is sync or async) check to make sure the right one gets
cancelled.
June 2016
Standard Edition, Release 8.4.1
Finished updating the source code for the Eclipse Public License.
Documentation enhancements.
Divide-and-Conquer Standard Edition, Release 6.2.1
Finished updating the source code for the Eclipse Public License.
Documentation enhancements.
Android Edition, Release 2.5.1
Finished updating the source code for the Eclipse Public License.
Documentation enhancements.
Reactive Streams Edition, Release 2.2.1
Documentation enhancements.
March 2016
Reactive Streams Edition, Release 2.2
Enhanced the Publisher demonstration classes to demonstrate using the
JSR166 Flow interfaces.
February 2016
Android Edition, Release 2.5
Added a new feature (show stack trace) to the Queue Thread Display.
Deprecated the experimental Push Based Notification. As noted in
the documentation, this was purely experimental and has not proven
feasible.
Deprecated Classes and documentation will be removed in a subsequent
major release.
Push processing is now a separate Tymeac project (TymeacRSE)
A Java Reactive
Stream Generator Adding this new project is the reason for the long
delay in updating the current project.
The open-source license for this project, the Common Public License
Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0
(EPL-1.0). See the license document.
We will continue updating the source code in coming releases to
reflect this change.
Reactive Streams Edition, Release 2.2
Added a new feature (show stack trace) to the Queue Thread Display.
Divide-and-Conquer Standard Edition, Release 6.2
Added a new feature (show stack trace) to the Queue Thread Display.
The open-source license for this project, the Common Public License
Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0
(EPL-1.0). See the license document.
We will continue updating the source code in coming releases to
reflect this change.
We created a new Tymeac project (TymeacRSE) for Push Processing
A Java Reactive
Stream Generator Adding this new project is the reason for the long
delay in updating the current project.
Some internal restructuring.
Standard Edition, Release 8.4
Added a new feature (show stack trace) to the Queue Thread Display.
Deprecated the experimental Push Based Notification. As noted in
the documentation, this was purely experimental and has not proven
feasible.
Deprecated Classes and documentation will be removed in a subsequent
major release.
Push processing is now a separate Tymeac project (TymeacRSE)
A Java Reactive
Stream Generator Adding this new project is the reason for the long
delay in updating the current project.
The open-source license for this project, the Common Public License
Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0
(EPL-1.0). See the license document.
We will continue updating the source code in coming releases to
reflect this change.
January 2016
Reactive Streams Edition, Release 2.1
Added support for a Subscriber-object submitting an array of items for
onNext(). New method in Task and the Sending Thread (com.tymeac.rse.base.QueueThreadSending)
Demonstration class supporting this change: com.tymeac.rse.serveruser.DemoPush2
January 2016
Reactive Streams Edition, Release 2.0
Revised the demonstration section.
Tymeac is a backend push generator. However, demonstrating usage
depends on following current industry standards. We reorganized the
demonstration classes to more closely follow Reactive Streams (org.reactivestreams)
rather than Reactive Extensions. We also include demonstrations using pure
Reactive Streams that are front-ended for Tymeac.
Reactive Extensions does not program to interfaces the way Reactive
Streams does so demonstrating Reactive Extensions may follow in a
subsequent release.
November 2015
Reactive Streams Edition, Release 1.3
Added the Communal Request start up option so users may execute a list
of communalRequest() at start up.
Added additional scenarios for demonstrating how to run a Publisher on
Tymeac.
Documentation enhancements.
October 2015
Reactive Streams Edition, Release 1.2
Added the Publisher demo as a proof-of-concept that you can run a pure
Publisher as a Task on Tymeac.
Documentation enhancements.
September 2015
Reactive Streams Edition, Release 1.1
Added the ability of the client to pass an Alter-Object to the request.
Cancel, Pause/Resume, and now Alter. This allows further client control
for the executing request.
Documentation enhancements.
Reactive Streams Edition, Release 1.0
New project.
June 2015
Android Edition, Release 2.4
Added two features to the New Copy of an application class:
- Display of the current application class
- Ability to pass a URL to the new function to alter a class object
instead of a String "name+URL".
Modified and added additional examples to the push/event based
processing.
Some internal restructuring.
Standard Edition, Release 8.3
Added two features to the New Copy of an application class:
- Display of the current application class
- Ability to pass a URL to the new function to alter a class object
instead of a String "name+URL".
Modified and added additional examples to the push/event based
processing.
Some internal restructuring.
May 2015
Android Edition, Release 2.3
Added support for callbacks in "Future" type retrieval of asynchronous
results.
This release adds push/event based processing. There is so much
Internet activity surrounding RxJava and Reactive Software that we
introduce that form of asynchronous processing here.
Some internal restructuring and documentation enhancements.
April 2015
Standard Edition, Release 8.2
This release adds push/event based processing. There is so much
Internet activity surrounding RxJava and Reactive Software that we
introduce that form of asynchronous processing here.
March 2015
Standard Edition, Release 8.1.1
This release is a fix-up for release 8.1. By overwhelming consensus,
the results-of-processing for asynchronous callback and save-results
should be encapsulated in a TymeacReturn object. We altered the product
for this and we apologize for the inconvenience this may cause. Now the SE
version of Tymeac is compatible across all versions of Tymeac (SE, DSE,
AND.) For reference see the Async Doc.
Altered some JavaFX forms for visual affects, not substance.
Documentation enhancements.
Divide-and-Conquer Standard Edition, Release 6.1.1
This release is a fix-up for release 6.1. By overwhelming consensus,
the results-of-processing for asynchronous callback and save-results
requested in a TymeacParm should be encapsulated in a TymeacReturn object.
We altered the product for this and we apologize for the inconvenience
this may cause. Now the DSE version of Tymeac is compatible across all
versions of Tymeac (SE, DSE, AND.) For reference see the Async Doc. This
change also affects save-results, but not callback, in the
Built-in-Functions. Save-results now uses the TymeacReturn class to save
the results. See the BIF save-results section.
Altered some JavaFX forms for visual affects, not substance.
Documentation enhancements.
February 2015
Android Edition, Release 2.2
Regenerated the TymeacAndDemoQuote project to TymeacAndDemoPipeline which
also eliminated the need for the appcompat_v7 project.
Moved from Eclipse to Android Studio 1.0.
Added the ability to support "Future" type retrieval of asynchronous
results. This does not affect any current programming.
Added a line item in the Overall client to display the number of pending
"Future" objects in the system.
Various documentation enhancements.
Standard Edition, Release 8.1
Added callback to the TymeacParm for asynchronous calls.
Added the ability to support "Future" type retrieval of asynchronous
results. This is mutually exclusive with callback. This does not affect any
current programming.
Added a line item in the Overall client to display the number of pending
"Future" objects in the system (JavaFX only.)
Divide-and-Conquer Standard Edition, Release 6.1
Added callback to the TymeacParm for asynchronous calls.
Added the ability to support "Future" type retrieval of asynchronous
results. This is mutually exclusive with callback. Although a simple
change in principal, it required massive changes to every constructor in
the Built-in-Functions and the demonstration classes where callback is
part of the constructor. This does not affect any current programming.
Added a line item in the Overall client to display the number of
pending "Future" objects in the system (JavaFX only.)
January 2015
Standard Edition, Release 8.0
The march to Java8 is on. Reformatted the client access from Swing to
JavaFX under Java8. Release 7.0 started the move, now this release completes
that move. Swing will still remain, but any new functionality will be with
JavaFX only. See the directory structure for changes and the introductory
JavaFX page. If you still use Java7, then delete all the ...client.fx and
...demo.fx packages.
There were no changes to Jini Client displays to support JavaFX. Jini
(River) is on our list of "no longer viable." We intend to keep what is
there, but we see no need for enhancement.
Fixed a few bugs in the alter server functionality.
Added method isInitialized() to the TymeacInfo class.
Various documentation enhancements and cosmetic improvements.
Divide-and-Conquer Standard Edition, Release 6.0
The march to Java8 is on. Reformatted the client access from Swing to
JavaFX under Java8. Release 5.0 started the move, now this release completes
that move. Swing will still remain, but any new functionality will be with
JavaFX only. See the directory structure for changes and the introductory
JavaFX page. If you still use Java7, then delete all the ...client.fx and
...demo.fx packages.
Fixed a few bugs in the client directory (shut down) and the alter server
functionality.
Added method isInitialized() to the TymeacInfo class.
Outside of JavaFX, running with Java7 is still possible. See the notes
below in Release 5.2.
November 2014
Divide-and-Conquer Standard Edition, Release 5.3.1
Moved the Built in Function, function interfaces, from the
com.tymeac.dse.base package to a new package: com.tymeac.dse.function.
Simply add a new import to any client class that uses these interfaces.
This is the last release before the revision of the client access from
Swing to JavaFX under Java8. Release 5.0 started the move, now the
forthcoming Release 6.0 will complete that move. Swing will still remain,
but any new functionality will be with JavaFX only.
Standard Edition, Release 7.2
Added the start up argument -pref. This is for the use of java.util.pref
(Preference). The prior release was a quick fix since Windows now requires
administrator mode to use this feature. This argument is mutually exclusive
with the -file and -dir options.
Standard Edition, Release 7.1.1
Suppressing the use of java.util.pref (Preference) since Windows now
requires administrator mode to use this feature. Will probably remove
Preferences in a future release.
Divide-and-Conquer Standard Edition, Release 5.3
Added the start up argument -pref. This is for the use of java.util.pref
(Preference). The prior release was a quick fix since Windows now requires
administrator mode to use this feature. This argument is mutually exclusive
with the -file and -dir options.
Divide-and-Conquer Standard Edition, Release 5.2.1
Suppressing the use of java.util.pref (Preference) since Windows now
requires administrator mode to use this feature. Will probably remove
Preferences in a future release.
October 2014
Android Edition, Release 2.1
Added Pipeline processing.
Added TymeacAndDemoQuote activity to demonstrate pipeline processing.
Various documentation enhancements.
Standard Edition, Release 7.1
Added Pipeline processing with the scheduleContinuanceRequest method to
make it easier to execute multiple Functions consecutively.
Compiled the classes on Java8 with compliance level 1.8 so this affects
the RMI Registry. You cannot run this release using RMI on a Java7 machine
with the supplied binary classes. If you need the Java7 version then
simply recompile the source on Java7.
Various documentation enhancements and cosmetic improvements.
Divide-and-Conquer Standard Edition, Release 5.2
Added the Combine Built In Function.
Added the scheduleContinuanceRequest method to the Task class to
make it easier to execute multiple Built in Functions consecutively. This
is a type of Pipeline processing.
Added a page to help determine when to parallelize.
Compiled the classes on Java8 with compliance level 1.8 so this affects
the RMI Registry. You cannot run this release using RMI on a Java7 machine
with the supplied binary classes. If you need the Java7 version then
simply recompile the source on Java7. See also the instructions on how to
replace the Java8 version for the Random Number Generator.
Various documentation enhancements and cosmetic improvements.
September 2014
Divide-and-Conquer Standard Edition, Release 5.1
Added the Partition Built In Function.
Fixed a bug in Task::complete when errors are encountered.
Speed improvements in Built in Functions: Filter, Search and Map/Reduce
for option - ordered.
Various documentation enhancements and cosmetic improvements.
Android Edition, Release 2.0
This is a major revision to the product.
The service side:
The TymeacReturn class is now the single
return class for all sync, async, shut requests. (a slight change)
The TymeacInterface class [aidl] changed to support the above as well as
below. Changing an interface, especially the interface used to communicate
with the service is a major event. In order to change/add activities this
class always needs changing. To help with this, we reengineered the client
access.
The activities access:
The client access changed radically. This project comes from TymeacSE
(standard Java.) That project goes back to Java1.1. Going from AWT to Swing
and beyond means that the client access must become standard. As we added more
client access (activities here) we needed to change the TymeacInterface. That
meant breaking backward compatibility. With this new method, all clients use
one single call:
public ClientInOut
clientRequest(ClientInOut in)
We are considering using JavaFX as the client access. This will not have
any affect on the above.
N.B. The TyService.jar and TyCommon.jar files were replaced in the
asset directories in all Activity projects.
Altered the timeout properties. There was a
mistake, 2 should have been 1/2 etc. The various timeouts work better now.
Changed most statistics fields to long from int. Some mobile devices can
run for months without shutdown.
Various documentation enhancements and cosmetic improvements.
Standard Edition, Release 7.0
This is a major revision to the product. This version is for the Java8
environment, which is a major revision to Java itself. The classes were
compiled with Java8 but there is no Java8-only source code. Future
versions of the product will contain Lambda code but we're not
refractoring what is here now.
Security:
RMI -- java.rmi.server.UnicastRemoteObject() using an anonymous port
is deprecated. You must specify a port on the command line or accept a
default of 50001. You may change the default, see the startup document, command line options for
instructions.
Removed com.sun.security.auth.callback.DialogCallbackHandler. This
method is deprecated in Java8 and will be removed in Java9 so there is
no reason to keep it. Security is a touchy issue, we provided this code
to support those who wished to include a name/password handler but this
version is a security risk. Those who wish to provide a handler for user
input should have their own a procedure in place.
Server:
In release 6.4 we provided the
TymeacReturn class for standard checking of the returned Object[]
from sync and async calls. Using a return Object[] goes back to Java1.1,
so it is time to replace that. All three server access methods (syncRequest(),
asyncRequest(), shutRequest()) now return the TymeacReturn object.
Static methods to convert from an Object[] to the TymeacReturn are
deprecated and will be removed in the next version. Using the new return
method is much easier than the old way and it provides additional
functionality.
Changed most statistics fields to long from int.
Client:
Adding more functionality to the client access (GUI's and non GUI
access) meant changing the TymeacInterface and all the RMI classes that
use it. Since we changed the TymeacInterface in the server changes,
above, we refactored the entire client access. In for a penny, in for a
pound. This has no affect on the GUI classes. You will not need to
change anything. For those who call the server for client access (thread
information, queue information, etc.) then you will need to change your
code. Each access documentation provides the information for accessing
outside the GUI.
We eliminated all methods for client access, (idStatus1Request,
newCopyRequst). Replacing those with a single call:
public ClientInOut clientRequest(ClientInOut
in)
Both ClientInOut and clientRequest() are documented for
those that are interested. This change means we can add anything in the
future without changing the existing structure.
Discontinued support for Hsql.
Various documentation enhancements and cosmetic improvements.
August 2014
Divide-and-Conquer Standard Edition, Release 5.0
This is a major revision to the product. This version is for the Java8
environment, which is a major revision to Java itself. The classes were
compiled with Java8 but there is no Java8-only source code. There is one
Java8 class we use for the Built In Function, Random --
java.uti.SplittableRandom, but we also supply the the Java7 version with
instructions on how to replace the Java8 version. Future versions of the
product will contain Lambda code but we're not refractoring what is here
now.
Security:
RMI -- java.rmi.server.UnicastRemoteObject() using an anonymous port
is deprecated. You must specify a port on the command line or accept a
default of 50001. You can change the default, see the Server Options
Removed com.sun.security.auth.callback.DialogCallbackHandler. This
method is deprecated in Java8 and will be removed in Java9 so there is
no reason to keep it. Security is a touchy issue, we provided this code
to support those who wished to include a name/password handler but this
version is a security risk. Those who wish to provide a handler for user
input should have their own a procedure in place.
Server:
In release 2.8 we provided the TymeacReturn class for standard
checking of the returned Object[] from sync and async calls. Using a
return Object[] goes back to Java1.1, so it is time to replace that. All
three server access methods (syncRequest(), asyncRequest(), shutRequest())
now return the TymeacReturn object. Static methods to convert from an
Object[] to the TymeacReturn are deprecated and will be removed in the
next version. Using the new return method is much easier than the old
way and it provides additional functionality.
Changed most statistics fields to long from int. Added "commented"
code to support the LongAdder class if it is needed.
Client:
Adding more functionality to the client access (GUI's and non GUI
access) meant changing the TymeacInterface and all the RMI classes that
use it. Since we changed the TymeacInterface in the server changes,
above, we refactored the entire client access. In for a penny, in for a
pound. This has no affect on the GUI classes. You will not need to
change anything. For those who call the server for client access (thread
information, queue information, etc.) then you will need to change your
code. Each access documentation provides the information for accessing
outside the GUI.
We eliminated all methods for client access, (idStatus1Request,
newCopyRequst). Replacing those with a single call:
public ClientInOut clientRequest(ClientInOut
in)
Both ClientInOut and clientRequest() are documented for
those that are interested. This change means we can add anything in the
future without changing the existing structure
Fixed a bug in BIF Filter for Objects.
Various documentation enhancements and cosmetic improvements.
Divide-and-Conquer Standard Edition, Release 4.8.1
Added the Enable Specific Button to the Queue Threads display/alter
to keep this package compatible with the SE version.
In September we'll support Java8 with the next series of numbers
(5.x.) This should be the last Java7 release.
The need to keep adding/changing the TymeacInterface will result in a
new general-purpose clientRequest().
July 2014
Standard Edition, Release 6.5
Added Stalled Thread detail to the Queue Threads display/alter.
Altered the timeout properties. There was a mistake, 2 should have been 1/2
etc. The various timeouts work better now.
Altered count/statistics fields from integer to long integer. Some of these
were not necessary but we're getting ready for the LongAdder class in Java8.
We also removed many Atomic and volatile designations. See the development
document for details. The speed improvements are considerable.
There has been a back-and-forth for years about whether the internal server
threads should be daemon or not. It is final: they are now. This change has no
appreciable effect on processing. It means that you should be able to
eliminate the System.exit(0); from the main() for the internal server. Once
the main() exits, the only Tymeac threads alive are daemon and shutdown should
proceed to end-of-JVM.
We are discontinuing support for Hsql effective next major release. Derby
is packaged with Java and both these are not necessary for the demonstration
system.
Cleaned up some label positions on GUI's.
In September we'll support Java8. There is just so much good in that
release that waiting six months seems long enough.
Divide-and-Conquer Standard Edition, Release 4.8
Added Stalled Thread detail to the Queue Threads display/alter.
In September we'll support Java8. There is just so much good in that
release that waiting six months seems long enough.
Divide-and-Conquer
Standard Edition, Release 4.7
There has been a back-and-forth for years about whether the internal
server threads should be daemon or not. It is final: they are now. This
change has no appreciable effect on processing. It means that you should
be able to eliminate the System.exit(0); from the main(). Once the main()
exits, the only Tymeac threads alive are daemon and shutdown should
proceed to end-of-JVM.
Added additional demonstration classes to the product in the nested
package.
We discontinued support for Hsql. Derby is packaged with Java and both
these are not necessary for the demonstration system.
Various documentation enhancements and cosmetic improvements.
May 2014
Divide-and-Conquer Standard Edition, Release 4.6.1
Added additional demonstration classes to the product. These additional
classes (with a new package) demonstrate nested
parallel processing.
We are discontinuing support for Hsql effective next major release
(this is not a major release.) Derby is
packaged with Java and both these are not necessary for the demonstration
system.
Various documentation enhancements and cosmetic improvements.
April 2014
Divide-and-Conquer Standard Edition, Release 4.6
Added actual class to TymeacParm. Users may
pass the name of the class to execute in the server, now they may pass the
Class<?> object instead of the String name. The passed class object cannot be
an inner class of the calling module since Tymeac will not be able to
instantiate that inner class.
We are discontinuing support for Hsql effective next release. Derby is
packaged with Java and both these are not necessary for the demonstration
system.
Various documentation enhancements.
February 2014
Divide-and-Conquer Standard Edition, Release 4.5.1
In release 2.9.1 we redesigned the Built in Function, BIFSort, for greater efficiency in larger
processor environments. The replaced sort was efficient in other environments
and so we restored it as an alternative, BIFSort2, in this release. Naturally
the demonstration classes were restored as well.
Various documentation enhancements.
January 2014
Divide-and-Conquer Standard Edition, Release 4.5
Added the Built In Function: Product for
multiplying numerical arrays (like summation but multiply.)
Added support for BigInteger and BigDecimal for Summation, Product
and Array Generation.
Further support of these types depends on user feedback.
January 2014
Divide-and-Conquer Standard Edition, Release 4.4
Added the Built In Function: Invoke for
invoking classes in parallel on the fly as well as pre-built.
December 2013
Divide-and-Conquer Standard Edition, Release 4.3
Added the Built In Function: Array Generate
for generating arrays (vector and matrix.)
Fixed a divide by zero bug in Matrix processing for computing a threshold.
December 2013
Divide-and-Conquer Standard Edition, Release 4.2
Added the Built In Function: Evaluate (same as parallelTry in some
systems. [Java doesn't like the word "try" used by applications])
October 2013
Divide-and-Conquer Standard Edition, Release 4.1
Added limit and encounter-order to Built in Functions: Map Reduce and
Filter. This required a complete rewrite of both modules with alteration of
the BIFArraysInput Class and additional Interfaces. Having a limit for both
these functions was absolutely necessary so the alteration was necessary. As
long as we were adding limit, adding preserve encounter-order (makes the
parallel processing appear to complete in the same order as a sequential
process), seemed worthwhile. The MapReduce functionality was also in error,
this was corrected. For those already using these functions, it means a
rewrite. We apologize for the inconvenience.
Updated the pseudorandom number generator for speed.
Divide-and-Conquer Standard Edition, Release 4.0
Added the Built In Function: Random ( parallel random number generator)
Changed the usage of java.util.Random in the main WorkStructure to a
homegrown method where possible for performance. Where to start looking for
scheduling/fetching does not require an exactly random number, just
something better than nothing.
Now requires Java7
September 2013
Divide-and-Conquer Standard Edition, Release 3.2.1
Added scalar multiplication to the matrix Built in Function. This was a
debate from the beginning -- In or Out? the outs won the first round but
were overturned on appeal. This addition does not affect any prior programs.
Java 7 offers advances over Java 6 especially for performance so this is
the last release that can run on Java 6.
Divide-and-Conquer Standard Edition, Release 3.2
Added the Built In Function for Vectors.
August 2013
Divide-and-Conquer Standard Edition, Release 3.1
Added the Built In Function: Search ( for unordered arrays)
Fixed a naming error: BIFMatrixArrayInput should have been, and is now,
BIFMatrixInput We apologize for the inconvenience this may cause.
Various documentation enhancements.
Divide-and-Conquer Standard Edition, Release 3.0
Added the Built In Function for Matrix functions.
Fixed a bug in calculating the duration the server ran.
Various documentation enhancements.
July 2013
Divide-and-Conquer Standard Edition, Release 2.9.1
Redesigned the Built in Function, sort, for greater efficiency in larger
processor environments.
Improved memory usage (earlier freeing of references for garbage
collection.)
Various documentation enhancements.
Divide-and-Conquer Standard Edition, Release 2.9
Added the Built In Function: Scan.
Various documentation enhancements.
June 2013
Android Edition, Release 1.3
Added return code and asynchronous call information (session and
request id) to the TymeacReturn class. This simplifies completion checking
in clients.
N.B. The TyService.jar file was replaced in the asset directory
in all Activity projects.
Included in all projects is the build.gradle file for import in Android
Studio.
Various documentation enhancements.
Standard Edition, Release 6.4
Added the TymeacReturn class for standard checking of the returned Object[]
from sync and async calls. Updated all the demonstration classes to use this
new class where applicable.
Various documentation enhancements.
Divide-and-Conquer Standard Edition, Release 2.8
Added the TymeacReturn class for standard checking of the returned Object[]
from sync and async calls. Updated all the demonstration classes to use this
new class where applicable.
Various documentation enhancements.
April 2013
Android Edition, Release 1.2.2
Added an Enabled Specific button to the Queue Threads Display/Alter.
Minor modifications to base Classes to support the above.
Standard Edition, Release 6.3.3
Added an Enabled Specific button to the Queue Threads Display/Alter.
Minor modifications to base Classes to support the above.
March 2013
Android Edition, Release 1.2.1
Moved timing values out of several classes into the TyBase Class for
consistency.
Various documentation enhancements.
Standard Edition, Release 6.3.2
Moved timing values out of several classes into the TyBase Class for
consistency.
Various documentation enhancements.
Still no Java7 only code to keep the Java6 crew happy.
Divide-and-Conquer Standard Edition, Release 2.7.1
Fixed a statistics gathering bug for user classes.
Moved timing values out of several classes into the TyBase Class for
consistency.
Various documentation enhancements.
Still no Java7 only code to keep the Java6 crew happy.
November 2012
Divide-and-Conquer Standard Edition, Release 2.7
Added cancelable methods to the TyArrays class so users can easily cancel
synchronous calls.
Fixed a spelling error in TyArraysReturn class, from getDta() (deprecated)
to getData().
Added getLoad() method to Task. It may help determining a sequential
threshold for splitting.
Various documentation enhancements.
October 2012
Divide-and-Conquer Standard Edition, Release 2.6.1
Modified the index structure for very large/huge number of threads. The
index threads scan the work threads/queues and adjust the internal index
objects used for scheduling and for work threads finding work outside their
own queues. The modification is to better handle the slow periods so that
the index threads can slow down and sleep for a bit when there is no work.
Added segment number to thread statistics item (it was missing.)
Improved the Built in Functions callback procedure.
Added demonstration examples for Speculative Computing.
Added additional documentation.
Classes are now compiled with Java7, but contain no Java7 only code.
October 2012
Divide-and-Conquer Standard Edition, Release 2.6
Fixed a bug in Map/Reduce Built in Function that was applying a map
function to the entire array instead of a subset in each parallel "map."
Added new Built in Function Filter
Added new client side feature TyArrays for accessing the Built in
Functions more easily. TyArrays contains static methods for all the
Functions both using a synchronous call and an asynchronous call
with/without callback. There is a separate package for testing each method
with each array type.
Parallel sorting, etc. can now be done in a single line:
// call sort function using
sync tymeac service and object for array functions
TyArraysReturn back = TyArrays.sort(tymeac,
new
BIFArrayInput(array, 0));
// call sort function using
async tymeac service with callback and object for array functions
TyArrays.sortAsync(tymeac,
new
BIFArrayInput(array, callback, 0));
Other common Functions in the next release are by user request
September 2012
Android Edition, Release 1.2
Minor restructuring of Queue initialization and start up procedure.
Cosmetic clean up of compiler warning messages.
That's all folks. It's running very well.
September 2012
Standard Edition, Release 6.3.1
Minor restructuring of Queue initialization and start up procedure.
Cosmetic clean up of compiler warning messages.
That's all folks. It's running very well.
September 2012
Divide-and-Conquer Standard Edition, Release 2.5
Added common Built in Functions for arrays:
Sorting
Summation
Map/Reduce
Other common Functions in the next release are by user request
June 2012
Divide-and-Conquer Standard Edition, Release 2.4
Moved the Work Queues bounds limit from the command line (-bounds) to the TyUserVariables
Class for stand-a-lone mode and the Configuration Data Class
TyCfg for DBMS mode. Uses a default of 100k now.
Specifying a -bounds argument now results in a warning message.
Requires altering the Tymeac.xml configuration file, if used. The easiest
way is to add a line in the file after the activation minutes as such:
DeActivationInterval=""
Bounds="100000"
Or use the configuration file maintenance GUI
TyCfg
When using Preferences, be sure to add a new value for bounds.
Added segmentation as a new thread organization
technique.
Fixed a bug in the Level 1 index thread when calculating an array length
for empty queues. Fixed a bug in scheduling when a failure to schedule.
March 2012
Divide-and-Conquer Standard Edition, Release 2.3.1
Deprecated Task.getSeq() This was used internally only during a
specific back out after a scheduling failure. Changed the back out code to
use hashCode().
Added an example of dynamically decomposing fork/join. Tymeac is a
scatter-gather framework and does not use a join() method. The example
simulates using a join() as in:
a.fork();
b.fork();
join(a, b);
February 2012
Divide-and-Conquer Standard Edition, Release 2.3
Minor internal changes. WorkStructure Class:
- Removed the empty_queue field.It wasn't performing as well as
expected. Saves a CAS now.
- Changed methods, for finding the next Queue or index to search, from a
CAS to a random.
- Consolidated low-number-of-threads scheduling for thread
waiting/detached.
Startup.doRest() -- uncommented the "start all threads" when < 64
threads. The server starts all the work threads during initialization rather
than when first referenced (lazy.)
Other small changes to improve speed and documentation.
September 2011
Standard Edition, Release 6.3
Added the Alter Server Options GUI. This gives users the ability to alter
the shut down option, monitor interval and inactivation minutes at runtime.
You must reinstall the complete package since the TymeacInterface class
changed. This also means re-compiling those classes that depend on that
interface (the serial version id will be different.)
Micro Edition, Release 2.1
Added the Alter Server Options. This gives users the ability to alter the
shut down option, monitor interval
Divide-and-Conquer Standard Edition, Release 2.2
Added the Alter Server Options GUI. This gives users the ability to
alter the shut down option, monitor interval and inactivation minutes at
runtime.
Added return integer to method Task.fork(). This has no effect on
existing code. When scheduling fails on a fork method, the request is a
failure and the user will get notification of why. Being able to check
success after a call may mean being able to abort the request early.
Divide-and-Conquer Standard Edition, Release 2.1
Added the ability to decompose (fork()) in the complete() method. This
make usage easier.
For uses such as sorting. After sorting in the compute() method, the
application is left with many arrays of sorted items in the complete()
method. Merging those arrays can now be done in two ways:
- Simply fork() groups of those arrays in the complete() method
until you arrive with a single array.
- Recursively call the Tymeac Server with Merge Functions until you
arrive with a single array.
Android Edition, Release 1.1
Added the Alter Server Options client. This gives users the ability to
alter the shut down option and monitor interval at runtime.
You must reinstall the complete package with all the projects since the
TymeacInterface class changed. This also means the TyService.jar file
changed and you must copy it to any projects you created after the initial
install. All the Activities included in this release have the updated
TyService.jar file.
August 2011
Android Edition, Release 1.1
Initial release.
April 2011
Standard Edition, Release 6.2.3
Altered the bounds processing for Wait Lists. Changed using a size()
on the ConcurrentLinkedQueue to using a separate AtomicInteger.
The size() always results in a traversal of the queue. Keeping a separate
integer is faster although it requires bookkeeping.
Updated the documentation to include the new TymeacDSE project. And naturally
removed examples of Divide-and-Conquer processing replaced by the new project.
March 2011
Divide-and-Conquer Standard Edition, Release 2.0
Added indexing for very large and humungous numbers of CPU/cores. This
was a major undertaking, hence the it warrants the 2.0 designation.
Level 1 indexes sit atop the individual work threads and queues.
These make scheduling Tasks and fetching Task by work threads faster.
Level 1 indexes are for systems with hundreds of CPU/cores since each
index is serviced by a dedicated index thread.
Level 2 indexes sit atop the Level 1 indexes. These make scheduling
Tasks and fetching Task by work threads faster. Level 2 indexes are for
systems with thousands of CPU/cores since each index is serviced by a
dedicated index thread.
November 2010
New Divide-and-Conquer Standard Edition, Release 1.0
Initial release
June 2010
Standard Edition, Release 6.2.2
Two minor bugs fixed:
- The Wait List display and statistics Wait List detail were erroneous
in that they skipped every other row.
The iterator was updated twice instead of once.
- The Post Processor thread (runs just after Tymeac initial start up)
that verifies the Notification Function and
executes the start up Functions very rarely got ahead of the finalization
method in the main start up thread.
The classic example of what thread gets execution time at any given
instant. A slight delay in the Post
Processor thread, when necessary, fixed that.
Added server up-time duration on shutdown message and statistics.
This release makes the variables, "final", in the base package that can be
set so. There is a performance gain in
using:
private final int max_threads; over
private int max_threads;
And the usual pretty-up for code and documentation.
Micro Edition, Release 2.0
Yes, it's been awhile. We were waiting to see what Sun was going to do with
the Micro Edition. Now that release 3.0 is out (and Oracle is supporting ME),
it's time for a new release of Tymeac.
This release is a port from the Tymeac Standard Edition release 6.2.2.
Atomic operations are simulated by synchronizing code from the original
Concurrency Utilities from Doug Lea:
Introduction to this package
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
Many, many thanks to Prof. Lea for his enormous effort on his project.
The difference between the SE and ME versions is that this ME version only
runs as an embedded server and only supports JDK1.4 (hence the rewriting of
the concurrency utilities.)
December 2008
Standard Edition,
Release 6.2.1
This release is just a smooth-up for some of the classes. That is, making
some protected fields private, streamlining some code, etc.
We removed support for the Jini version 1.x examples. Jini version 2.x has
been available for many years now.
November 2008
Standard Edition,
Release 6.2
This release adds additional functionality for the Run Time Functions:
Notification
Logging
Statistics Repository
The run time functions load at Tymeac start up. We now provide three GUIs
(and command line access) to reset, stop, display and update (change) these
functions.
Tymeac Interface (and all the implementation classes)
changed to accommodate the above. You must recompile any affected modules.
As of the next release, we are removing support for the
Jini version 1.x examples. Jini version 2.x has been available for many years
now.
October 2008
Standard Edition, Release 6.1
This release is a cosmetic upgrade to the server. More of a pretty-up for
the com.tymeac.base classes.
The original Java code started in 1998 for JDK1.1. Ten years later some of
that code still functioned as-is (logging, statistics etc.) So we just brought
that old code into line with newer techniques.
We changed the system is shutting down indicator from a public to a private
field.
We added an uncaught exception handler for the Monitor to shut down Tymeac
in case of fatal Monitor errors.
We fixed a potential bug is the server shut down logic when many requests
for shut down happen concurrently.
April 2008
Standard Edition, Release 6.0
This release is a major upgrade to the server. It's been awhile since the
last upgrade. This release is based on JDK 1.6.
We added the timeout variable in the Processing Application Class as an
updateable field in the Queue Data GUI/non-GUI. There was some minor
restructuring to support this in the TyBase Class.
We added a high water mark field in the Wait Lists. This affects the Wait
List GUI/non-GUI and the statistics.
We added logical number of entries to the Wait List structure. This
requires alteration to both the DBMS Queue Table and the User Queues
structure. You must alter these structures to use this
release.
Eliminated printing the name of the rebinding variable in the RMI
Registry and JNDI Rebinding message. It was causing some confusion.
When Queue Threads change status to "Processing" they reset the cancelled
reason.
Removed the "zero asynchronous requests possibly stalled" message
displaying all the time from the Overall display. The message only appears
now when there are possibly stalled requests.
Changed most 'public' constructors and other methods to 'protected' in
com.tymeac.base (for the Tymeac management Classes.) There is no reason
outside packages should access these Classes. We provide access to execution
information in the TymeacInfo and TymeacUserSingleton Classes as well as the
com.tymeac.client and com.tymeac.client.jframe packages.
We added a demo/comparison between Tymeac and the new Fork-Join package
coming in Java 7 for early adapters.
We include the complete source in the /Source directory as a zip file and
eliminate one downloadable file (the product without full source.)
Previously, we only supplied demonstration classes in the /Source. If users
wanted the complete source, then they downloaded that zip file separately.
As with all software over time, we improved the readability,
maintainability and performance of the product.
August 2007
Standard Edition, Release 5.5
This release is the last minor internal restructuring to the server that
was started in release 5.0.
We restructured the Start up Class into six related classes. This helps
in maintaining and enhancing.
We restructured the command line start up for the Jini Server. Before,
the command line arguments were in a configuration file. We moved these to
the command line were they really belong. For the Jini
Server, you need to make minor changes.
We renamed and cleaned up several Classes.
This is the last release using the Java5 (or 1.5) JDK. The next release
will be based on JDK 1.6.
July 2007
Standard Edition, Release 5.4
This release is a minor internal restructuring to the server.
We restructured the Tymeac Queue Area. We made the "Area" into a three
level structure.
We restructure the Function Array Classes to be in line with the
Collections Framework.
We're beginning the restructuring of the start-up Class. This beast will
be tamed
June 2007
Standard Edition, Release 5.3
This release is a minor upgrade to the server.
We fixed a minor bug in the wait algorithm for Queue Threads to speed up
de-allocation of the thread when no work was present.
We applied the patch that came out for release 5.2 for the NetBeans GUI
Demonstration classes.
We restructured the way Request-Detail objects are created and
maintained. These object hold data associated with each request. The
Eden-Space of the garbage collector is so efficient, we take advantage of
this.
We restructure the Stall Array Classes to be in line with the Concurrency
Classes.
March 2007
Standard Edition, Release 5.2
This release is a minor upgrade to the server.
We added the embedded database shutdown for the Activation system.
We missed this in release 5.1.
We added error recovery to the cancel sync request using a
callback. See cancelSyncReq(). The proper term should be that we
trapped the errors and printed a message.
There can be no recovery from such errors. This functionality
requires internal Tymeac classes and if something goes wrong, it means
there is system damage.
We changed the start up configuration file from a home-grown format
to xml. We said this was coming and here it is. Not to worry, we
proved a conversion tool for the old format. See the TyCfg document
for the details. This means, naturally, that you
must convert the old format to xml before running this release.
As stated in release 5.1, we're in the process of restructuring the
GUI classes. In this release we provide three Demonstration GUI's:
T1, T3 and the Internal Server Test in this new format. If the
yelling and screaming doesn't reach lethal levels, then we'll continue
using this new format in future releases.
January 2007
Standard Edition, Release 5.1
This release is a minor upgrade to the server.
There are some bug fixes. As we mentioned below, using
no-lock/no-wait logic is not as easy as it looks.
We added support for embedded databases. Derby and Hsql are the ones
we concentrated on. Tymeac was first built with the DBMS mode only.
Using the standalone mode came later. We only tested with DB2 and ran
into some structure problems when adding Derby (DB2 allowed a semi-colon
(;) after commands, YEAR was a valid column name, etc.) Therefore, there
are name changes to the Log and Stats tables.
We're in the process of restructuring the GUI classes. In the first
release of Tymeac we used AWT and VisualAge-for-Java for building those.
Next we used Swing and VisualCafe for the GUI's. Both those are no
longer supported. We liked both those products since they generated java
files that could be maintained without the products. We've decided on
using NetBeans for maintaining the GUI's. Even though NetBeans requires
an add-on jar file for execution, NetBeans is free and easily obtainable
so there won't be a problem for other developers.
We're in the process of restructuring some of the base classes.
Start-up is one for sure.
September 2006
Standard Edition, Release 5.0
This release is a major upgrade to the server. From a functionality
viewpoint, there is no difference. Tymeac looks the same. From an
internal viewpoint there are major differences. This release
incorporates the java.util.concurrent packages.
The biggest boast in performance comes from the concurrency
packages.
All [RMI] Connection threads use CountDownLatch when waiting for
Queue Threads to finish processing in the Synchronous Request
method. This results in significant performance improvements.
Queue Threads use Lock.lock() and Condition.await()/signal() in
place of wait()/notify() when waiting for work from the [RMI]
Connection threads.
The Queue Wait Lists use ConcurrentLinkedQueue in place of a
home-grown pop-up list.
All Synchronous/Asynchronous Request arrays and the Queue Threads
use atomic variables in place of synchronization wherever possible.
(Which is just about everywhere.)
The performance is significantly greater. However, testing of
this new environment requires exhaustive work. We've done the best
we can. Many strange things happen in multi-processing -- beyond the
ability of mere mortals to envision. We look forward to your
comments, corrections and suggestions.
Added LoginServer:
This is an example of how to use the RMI Server to front-end a
login sequence before the client may use the server. For those who
do not use Jini's extensible RMI (JERI) this is a way to easily do a
login.
Changed Monitor:
Every iteration of the Monitor looked to compress the Tymeac
internal tables used for synchronous/asynchronous processing. This
was heavy overhead with very limited benefit. It also impacted the
performance. We eliminated this compression.
November 2004
Standard Edition, Release 4.0.5
Micro Edition, Release 1.1.4
Added the User Singleton class to help applications using persistent storage.
Minor documentation enhancements.
Minor speed and cosmetic code changes
October 2004
Standard Edition, Release 4.0.4
Micro Edition, Release 1.1.3
Added a new shut down request method
public String shutRequest(boolean force);
There were times when the server would not shut down because of unresponsive Queue
Threads. This method forces a shutdown when the boolean is set to true.
As started in release 4, a restructuring is taking place.
Changed/restructured TyBase
Added
public int shutOrigin = 0; // shutdown initiated by
public int startType = 0; // type of Server
These were in TymeacInfo. From a pure user standpoint there is no change.
Changed structure from public instance fields to private and added getter/setter
methods.
Changed TymeacInfo
Removed getBase()
Added getJoinManager() (Std Edition only)
Removed instance fields
private int status = 0;
private int shutOrigin = 0;
These were moved to TyBase.
Removed constant
public final static int NOT_IN_SHUTDOWN = 0;
Changed the Jini shutdown exit: (Std Edition only)
com.tymeac.serveruser.JiniShutDownExit
by replacing getBase() with getJoinManager() see the change to TymeacInfo, above.
Changed shutThread (Std Edition only)
no longer contains inactivate logic, that now is in
TymeacImpl.shutRequest()
Changed TymeacImpl.shutRequest()
as above and streamlined
Changed monitor (Std Edition only)
added shut_count for handling a shut down in the inactivate logic
Minor documentation enhancements.
Minor speed and cosmetic code changes.
July 2004
Standard Edition, Release 4.0.3
Micro Edition, Release 1.1.2
Changed the way Queue Threshold values are entered in both the Queue Maintenance and
Live Queue displays. Previously, one had to enter the zero and decimal place for the
floating point number (0.). Now only the fraction is necessary. 25% was 0.25, now is just
25.
N.B. 5% is 05, not 5.
Changed the Monitor to exit in the run() method at the completion of Tymeac shut down.
This only affects the internal server when not using the shut down thread.
Minor documentation enhancements.
Minor speed and cosmetic code changes.
May 2004
Standard Edition, Release 4.0.2
Support for java.util.Preference data which may replace the configuration file (for
DBMS mode.)
Added JavaDoc for some Tymeac base classes to help in documentation.
April 2004
Standard Edition, Release 4.0.1
Additional field in The Tymeac Parameter clients pass to the server to include the
cancel word for canceling synchronous requests.
Added support for Portable Object Adapter (IIOP).
Micro Edition, Release 1.1.1
Additional field in The Tymeac Parameter clients pass to the server to include the
cancel word for canceling synchronous requests.
March 2004
Standard Edition, Release 4.0
We support Jini2.0 and JDK1.4.2. This is a major upgrade
and policy shift.
Our policy was that the binary release of Tymeac supported
two prior releases of the JDK. That is, when JDK1.3x was the current JDK. We supported
backward to JDK1.1x. The binary classes of Tymeac were compiled with the JDK1.1 compiler.
Therefore, customers who ran on prior releases of Java could still use the product.
Henceforth, we will release versions of Tymeac on the
latest version of the JDK.
Those who are running on prior versions of the JDK can
download prior versions of Tymeac. In this way, we can stay on the cutting edge of
technology.
This is mainly due to the Jini2.0 upgrade. Jini2.0 adds:
- Support for secure Jini technology-based programs (Security infrastructure)
- Mechanisms to configure applications at run-time (
Configuration
)
- Unity of client-side and server-side programming models (
ProxyPreparer
and Exporter
)
- An RMI implementation that supports pluggable invocation layer behavior and pluggable
transport providers (Jini ERI)
Currently we have different front-ends for each [TCP, IIOP]
transport provider. As RMI supports more and more communication protocols using an
exporter is the right way to go.
Enhancements:
Additional method in TymeacInterface. In order to support the canceling of synchronous
requests we added a new method.
Altered method in TymeacInterface. In order to support the canceling of asynchronous
requests.
Addition of the TymeacInternalFunctions and Queues. This is to support the canceling of
synchronous requests and any further internal functionality.
Additional field in both the Tymeac Configuration File (for use with a DBMS) and the
Tymeac User Variables Class (for stand alone mode.) The field is Login Context, for
security checking.
Added security checking in the Tymeac Server driven by the above, login context. Added
security checking in the Tymeac Clients with a command line option.
Jini is now part of the basic product. There is a JiniServer for both activatable and
non-activaton.
Additional fields in the Tymeac Base Storage (TyBase) for security and Jini. The TyBase
fields were all static, they are now instance.
Additional field in The Tymeac Parameter clients pass to the server to include the
callback for canceling synchronous requests
Micro Edition, Release 1.1
This Version is based on CLDC 1.1.
We add two directories:
com.tymeac.me.client.jframe
com.tymeac.me.demo.jframe
These are for use with a full J2SE environment to make development easier.
Enhancements:
New this release is support for floating point arithmetic. With FP, this release looks
more like its big brother, Tymeac for the Java Standard Edition, version 4.0.
Additional method in TymeacInterface. In order to support the canceling of synchronous
requests we added a new method.
Addition of the TymeacInternalFunctions and Queues. This is to support the canceling of
synchronous requests and any further internal functionality.
Additional field in The Tymeac Parameter clients pass to the server to include the
callback for canceling synchronous requests.
December 2003 Release 3.0.3.1
Bug fixes and cosmetic enhancements to the JFrame Help and
About dialogs.
December 2002
Minor bug fixes.
October 2002
The open source release is now available on SourceForge.net
Project name for the standard edition is TymeacSE