Logo
Cooperative Software Systems, Inc.
CoopSoft.com
Home Products Company Contacts Licensing
 

News

 

 

  Home

 

  Products

 

  Company

 

  Contacts

 

  Licensing

 

Tymeac for the Java Platform News

divider

June 2010

Standard Edition, Release 6.2.2

Two minor bugs fixed:

  1. 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.
  2. 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

SourceForge Logo

Project name for the micro edition is TymeacME

SourceForge Logo

January 2002

Minor upgrade. The maintenance of the User Classes was awkward. Customers had to maintain a Java source file by adding Queues, Functions and startup Variables in the constructors.

We now have Swing GUIs, similar to the DBMS Queue, Function and Variables tables.

November 2001 Announcement

The micro edition, version 1.0 is available for download. This is an embedded server that runs on the "K" Virtual Machine. The environment is J2ME, CLDC.

This version looks like the standard, embedded server version but without GUI support. There is no separate Demo version of this edition. If you would like to see how it works and you are not a current customer, then download the standard version Demo and run it on a workstation.

October 2001 Release 3.0.3

Release 3.0.3 is now available. This is an enhancement release. The upgrade does not affect any currently running environments.

Enhancements:

This enhancement is to support Tymeac as a backend, embedded server. That is -- as a non-RMI Server. You may simply include the Tymeac queuing and threading structure within any application.

September 2001

Minor upgrade for efficiency. A customer's suggestion improved speed. We include that suggestion here. The savings in throughput is most noticeable on heavily used systems.

August 2001

Minor upgrade to support Custom Socket Factories.

The reason for this upgrade is in anticipation of SDK1.4 and its support of Secure Socket Layers.  The upgrade does not affect any currently running environments.

July 2001 Release 3.0.2

Release 3.0.2 is now available.  This is an enhancement release.

Enhancements:

For the Java2 environment ONLY.

The request for alternatives to the CLASSPATH for user-written classes has been answered. This is by adding a URLClassLoader for loading classes when necessary.

June 2001 Release 3.0.1

Release 3.0.1 is now available.  This is an enhancement release.

Enhancements:

The request for "we'd rather do it ourselves" for the statistics and log repositories has been answered.

Previously, if you used a DBMS for storing the Queue and Function data, then the only option for the statistics and log was also a DBMS.  If you used the user classes for storing the Queue and Function data, then the only option for the statistics and log was a file.

With this release, if you used a DBMS for storing the Queue and Function data, then the you may use a DBMS, File, or do it yourself with a user exit class, for the statistics and log repositories.  If you used the user classes for storing the Queue and Function data, then the you may use a File, or do it yourself with a user exit class, for the statistics and log repositories.

Bug fixes:

The bug in the DBMS Statistics and Log writing thread has been fixed.

The bug in the Configuration file writing thread has been fixed.

Structure changes:

The Configuration File has been re-structured. The [EXITS] Section was missing on the previous release. Additionally, the [ALTERNATES] Section with several sub-sections were added.  This means that you must alter this file for the new structure before running Tymeac.

The UserVariables Class has been re-structured to add two Strings: The Statistics Alternatives Class and the Log Alternatives Class. This means that you must alter this class for the new structure before running Tymeac.

Withdrawal of Support

As of Release 3.0.1, we no longer support the AWT version of the Configuration File Maintenance Class. The new information no longer fits on a single window.

When Sun releases version 1.4 of the SDK, we will no longer support the AWT versions, (i.e. JDK1.1), of the frame classes, (com.tymeac.client.frame and com.tymeac.demo.frame). Support will only be for the Java2 JFrame classes.

May 2001 Release 3.0

Release 3.0 is now available.  This is an enhancement and re-structuring release.

Re-Packaging:

The product was completely re-packaged. The following are the six packages:

  • com.tymeac.base
  • com.tymeac.client
  • com.tymeac.client.frame
  • com.tymeac.client.jframe
  • com.tymeac.common
  • com.tymeac.serveruser

Additionally, there are five packages for the demonstration system:

  • com.tymeac.demo
  • com.tymeac.demo.frame
  • com.tymeac.demo.jframe
  • com.tymeac.demo.jini.base
  • com.tymeac.demo.jini.client

IIOP support

Support for the CORBA IIOP requires SDK1.3, minimally.

Start Up -- You may now use the JNDI Registry for IIOP.

Scripts -- One additional directory was added for the IIOP support: \Scripts\IIOP.

Throughput -- Since there is significant overhead in the CORBA Marshalling algorithms, performance is lower than when using a pure Java RMI.

Know problems -- There is a bug in the CORBA Marshalling algorithms. The Sun bug report number is 4,318,587.

Enhancements:

An additional field, milliseconds, is now part of the Tymeac Parameter to the Tymeac Server. In this way you may specify the time to wait for synchronous requests in full seconds, full seconds and milliseconds or just milliseconds (by setting the seconds to zero.)

Bug fixes:

The bug in starting all queue threads at Tymeac start up is fixed.

The periodic failure of Tymeac stage two shut down to end the JVM was fixed by making the "structure change", below.

Structure changes:

The shut down thread now starts at the end of stage two shut down.

Previously, the shut down thread started a stage one and was awakened at the end of stage two.

News items before 3.0 have been deleted.

 

Tymeac is a trademark of Cooperative Software Systems, Inc
Java, 100% Pure Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U. S. and other countries.

   

© 1998 - 2010 Cooperative Software Systems, Inc.  All rights reserved.