It's a 379 mb svn checkout of java source and lots of redundant jar
files. There was an interesting comment in the overview.html file of the
component called dag, which I took to mean directed-acyclic graph. 
They use a tool prevayler.org , which is yet another persistence
framework, that's got lick-lippin developer's faq about how it is
supposed to work ( how do these guys do it, write ads, AND code ..)
 something like solaris shadow filesystem, where there is a shadow 
virtual machine holding a replica of the objects of a running system,
intercepted method calls on objects, so that a) the method calls are
written to a log file , and b) the method call is applied to the
replica. Periodically, b) is turned off, and all the objects in b) are
copied to disk as a snapshot of the system, while a) keeps running
so that the log doesn't miss any updates. If there is a crash, then
the log file is applied from the timestamp of the snapshot after
the system is reloaded from the snapshot. 
Does it really do this ? wow.

On Thu, 2007-05-03 at 08:05 +1000, Peter MacIsaac wrote:
> There have been two announcements concerning Apelon in the last two
> weeks. Apelon is a US based commercial vendor of terminology
> development and implementation software and consulting services.
> 
>  
> 
> 1.                  Apelon  terminology service solution - DTS is
> going open source
> 
> 2.                  NEHTA have announced that Termworks, a tool to
> assist mapping or linking of lists of terms or concepts to SNOMED, is
> available to Australian licensees of SNOMED.  
> 
>  
> 
> On a related subject SNOMED-CT ownership has moved to an international
> health terminology standards group  (of which Australia is a charter
> member through NEHTA) paving the way for increased use internationally
> and ensuring long term and affordable access to the terminology. 
> 
>  
> 
> Further details below.
> 
>  
> 
>  
> 
>  
> 
> Peter MacIsaac
> 
> On behalf of the TerminologyCentral Group.
> 
> Specialist consultants in health terminology, data management and
> information architecture.
> 
>  
> 
> [EMAIL PROTECTED]
> 
> peter_macisaac (skype)
> 
> 61 2 61611327 (landline)
> 
> 61 411403462 (mobile/cell)
> 
> www.macisaacinformatics.org
> 
>  
> 
>  
> 
>  
> 
>  
> 
>                APELON VOCABULARY SERVER NOW OPEN SOURCE
> 
>                                    
> 
>        Commercial Terminology Software Available on SourceForge
> 
> 
> 
> 
>  
> 
> Ridgefield, CT – May 2, 2007 – Apelon, a leading provider of
> terminology and data interoperability solutions, today announced that
> it has placed its Distributed Terminology System (DTS) software in
> SourceForge as an open source project. The SourceForge link is
> http://sourceforge.net/projects/apelon-dts/. 
> 
>  
> 
> DTS assists in the management, integration, and deployment of
> structured biomedical terminology.  It has the broadest installed user
> base of any such software, and is part of applications that include
> clinical data repositories, EMR systems, public health programs,
> decision support, guideline authoring, and interface engines.  
> 
>  
> 
> “Apelon first licensed DTS as a commercial product seven years ago,
> and has continuously improved it through several major releases,” said
> Stephen Coady, Apelon President and CEO. “But semantic
> interoperability and health information exchange are progressing
> disappointingly slowly.  Open sourcing DTS makes the tools that have
> been used in many of the world’s major terminology projects available
> to a broader range of organizations and entities.”  
> 
>  
> 
> Apelon believes that the presence of DTS on SourceForge has the
> potential to rapidly put the clinical terminology community
> significantly ahead of where it is now.  DTS’ tools for terminology
> browsing, editing and formal classification are unique in the industry
> and Apelon expects that their broader availability will accelerate the
> adoption of standards in clinical applications. 
> 
>  
> 
> Apelon will continue to offer content and support services for DTS.
> For further information on open source DTS see
> http://www.apelon.com/products/dts/dts faq.htm.
> 
>  
> 
> 
> About Apelon
>  
> 
> Apelon helps leading healthcare enterprises, life sciences
> organizations and government agencies improve the quality,
> comparability and accessibility of their information.  Apelon offers
> solutions and professional services for terminology development,
> management, mapping and deployment.  Visit www.Apelon.com for
> additional information.
> 
>  
> 
>  
> 
> ___________________________________________________________________________________________________________________________
> 
>  
> 
>  
> 
> Dear SNOMED CT License Holder
> 
> 
> 
> I am writing to inform you that NEHTA has recently become, on behalf
> of Australia, a Charter Member of the International Health Terminology
> Standards Development Organization (IHTSDO); an organisation
> established to own and manage the ongoing development of SNOMED CT. As
> a Member of the IHTSDO, NEHTA will be responsible for distributing and
> managing SNOMED CT in Australia, and will develop, maintain and
> distribute relevant Australian content and extensions of the
> terminology.
> 
> 
> 
> This development is significant for you as a license holder as it
> provides the certainty that you will have free access to SNOMED CT on
> an ongoing basis. This removes a key barrier to the use of SNOMED CT
> within clinical software applications in Australia. NEHTA’s membership
> to the IHTSDO also entitles Australia to a voice in the international
> governance, development and maintenance of SNOMED CT.
> 
> 
> 
> There will, however, be some changes to your license which we will
> fully inform you of and advise the next steps to be taken. Details
> will be emailed to you shortly, however in brief:
> 
> o        The existing license you hold with NEHTA will need to be
> replaced by a new licensing arrangement which meets NEHTA’s
> obligations under the IHTSDO Membership agreement;
> 
> o        This new arrangement will involve a dual licensing model, one
> license for the international SNOMED CT product managed by the IHTSDO
> and a separate license to cover Australian content;
> 
> o        Both these licenses will be issued as single a package by
> NEHTA;
> 
> o        NEHTA will contact you directly by early June to provide you
> with both licenses;
> 
> o        If your organisation operates in more than one of the Charter
> Member countries listed later in this email, you will be required to
> obtain an international agreement from the IHTSDO. There may be
> additional conditions stipulated by the local NRC of the countries you
> wish to conduct business under a separate license agreement;
> 
> o        If your organisation operates in a non-member country, e.g.
> Thailand, a separate agreement will be negotiated with the IHTSDO.
> Payment will be due to the IHTSDO in this situation;
> 
> o        The international release of SNOMED CT and all Australian
> specific content will continue to be made available to those who hold
> the new license through NEHTA’s secure site for Australian health
> terminologies beginning with the July 2007 SNOMED CT international
> which we expect to make available for download in August. This delay
> is to allow any necessary Australian specific processing to take
> place;
> 
> o        Use of SNOMED CT and related products in Australia under the
> terms of the new license will continue to be free of charge; and
> 
> o        In the interim you can continue to use SNOMED CT as per the
> existing arrangements.
> 
> 
> 
> NEHTA has been working actively with a small group of representatives
> from other Charter Member countries (including Canada, Denmark,
> Lithuania, The Netherlands, New Zealand, Sweden, United Kingdom, and
> United States of America) to establish the IHTSDO. The IHTSDO has
> acquired the rights to SNOMED CT and its predecessors, documentation
> and other items from the College of American Pathologists (CAP) for US
> $7.8 million. This exciting new development in the international
> adoption and use of SNOMED CT could not take place without an
> international governance structure that would be open to the entire
> global healthcare community.
> 
> 
> 
> The IHTSDO is registered as a not for-profit Association in Denmark,
> Membership is open to all countries and there is a provision for
> sponsored use in developing countries.  The IHTSDO will establish
> formal harmonisation activities with other organisations, including
> the World Health Organization, to promote effective interoperability
> between SNOMED CT and other important health data standards.  A
> description of the IHTSDO’s goals and its open and participatory
> governance processes is at http://www.ihtsdo.org/. 
> 
> 
> 
> Further information is available on the NEHTA website and as
> previously mentioned we will be sending additional license information
> to you in the coming weeks.
> 
> 
> 
> Yours sincerely
> 
> 
> 
> 
> 
> Paul Frosdick
> 
> Director - National Clinical Terminology Service
> 
> nehta – National E-Health Transition Authority
> 
> _____________________________________________________________________________________________________________________
> 
>  
> 
>  
> 
>  
> 
>  
> 
> Please note:  due to  increasing problems with SPAM,  I am using  SPAM
> ARREST  -  http://www.spamarrest.com/affl?4034505  - a relatively
> inexpensive service which extends my current email service and
> prevents automated SPAM attacks by checking with email senders that
> they are bonefide people needing to communicate with me.  If you are
> not already in my  address book and reply to this, you may receive a
> confirmation email asking you to respond. Once you answer, the email
> is on the way and will receive my attention.  I am evaluating this
> service and would appreciate any feedback  on it.  I also have
> information on the corporate configuration of the service. 
> 
>  
> 
>  
> 
>  
> 
> 
> 
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.467 / Virus Database: 269.6.2/781 - Release Date:
> 30/04/2007 9:14 AM
> 
> 
> _______________________________________________
> Gpcg_talk mailing list
> [email protected]
> http://ozdocit.org/cgi-bin/mailman/listinfo/gpcg_talk
Title: Object Prevalence
OBJECT PREVALENCE SKEPTICAL FAQ
Transparent Persistence, Fault-Tolerance and Load-Balancing for Java Business Objects.


Orders of magnitude FASTER and SIMPLER than a traditional DBMS. No pre or post-processing required, no wierd proprietary VM required, no base-class inheritance or clumsy interface implementation required: just PLAIN JAVA CODE.


How is it possible?

RAM is getting cheaper every day. Researchers are announcing major breakthroughs in memory technology. Even today, servers with multi-gigabyte RAM are commonplace. For many systems, it is already feasible to keep all business objects in RAM.



Do you mean I can simply have my objects in RAM and forget all that database hassle?

That's right.



Are you crazy? What if there's a system crash?

To avoid losing data, every night your system server saves a snapshot of all business objects to a file using plain object serialization.



What about the changes occurred since the last snapshot was taken? Won't the system lose those in a crash?

No.



How come?

All commands received from the system's clients are converted into serializable objects by the server. Before being applied to the business objects, each command is serialized and written to a log file. During crash recovery, first, the system retrieves its last saved state from the snapshot file. Then, it reads the commands from the log files created since the snapshot was taken. These commands are simply applied to the business objects exactly as if they had just come from the system's clients. The system is then back in the state it was just before the crash and is ready to run.



Does that mean my business objects have to be deterministic?

Yes. They must always produce the same state given the same commands.



Doesn't the system have to stop or enter read-only mode in order to produce a consistent snapshot?

No. That is a fundamental problem with transparent or orthogonal persistence projects like PJama (http://www.dcs.gla.ac.uk/pjava/) but it can be solved simply by having all system commands queued and routed through a single place. This enables the system to have a replica of the business logic on another virtual machine. All commands applied to the "hot" system are also read by the replica and applied in the exact same order. At backup time, the replica stops reading the commands and its snapshot is safely taken. After that, the replica continues reading the command queue and gets back in sync with the "hot" system.



Doesn't that replica give me fault-tolerance as a bonus?

Yes it does. I have mentioned one but you can have several replicas. If the "hot" system crashes, any other replica can be elected and take over. Of course, you must be able to afford a machine for every replica you want.



Does this whole scheme have a name?

Yes. It is called system prevalence. It encompasses transparent persistence, fault-tolerance and load-balancing.



If all my objects stay in RAM, will I be able to use SQL-based tools to query my objects' attributes?

No. You will be able to use object-based tools. The good news is you will no longer be breaking your objects' encapsulation.



What about transactions? Don't I need transactions?

Yes, you do. The prevalent design gives you all transactional properties without the need for explicit transaction semantics in your code.



How is that?

DBMSs tend to support only a few basic operations: INSERT, UPDATE and DELETE, for example. Because of this limitation, you must use transaction semantics (begin - commit) to delimit the operations in every business transaction for the benefit of your DBMS. In the prevalent design, every transaction is represented as a serializable object which is atomically written to the queue (a simple log file) and processed by the system. An object, or object graph, is enough to encapsulate the complexity of any business transaction.



What about business rules involving dates and time? Won't all those replicas get out of sync?

No. If you ask the use-case gurus, they will tell you: "The clock is an external actor to the system.". This means that clock ticks are commands to the business objects and are sequentially applied to all replicas, just like all other commands.



Is object prevalence faster than using a database?

The objects are always in RAM, already in their native form. No disk access or data marshalling is required. No persistence hooks placed by preprocessors or postprocessors are required in your code. No "isDirty" flag. No restrictions. You can use whatever algorithms and data-structures your language can support. Things don't get much faster than that.



Besides being deterministic and serializable, what are the coding standards or restrictions my business classes have to obey?

None whatsoever. To issue commands to your business objects, though, each command must be represented as a serializable object. Typically, you will have one class for each use-case in your system.



How scalable is object prevalence?

The persistence processes run completely in parallel with the business logic. While one command is being processed by the system, the next one is already being written to the log. Multiple log files can be used to increase throughput. The periodic writing of the snapshot file by the replica does not disturb the "hot" system in the slightest. Of course, tests must be carried out to determine the actual scalability of any given implementation but, in most cases, overall system scalability is bound by the scalability of the business classes themselves.



Can't I use all those replicas to speed things up?

All replicas have to process all commands issued to the system. There is no great performance gain, therefore, in adding replicas to command-intensive systems. In query-intensive systems such as most Web applications, on the other hand, every new replica will boost the system because queries are transparently balanced between all available replicas. To enable that, though, just like your commands, each query to your business logic must also be represented as a serializable object.



Isn't representing every system query as a serializable object a real pain?

That's only necessary if you want transparent load-balancing, mind you. Besides, the queries for most distributed applications arrive in a serializable form anyway. Take Web applications for example: aren't HTTP request strings serializable already?



Does prevalence only work in Java?

No. You can use any language for which you are able to find or build a serialization mechanism. In languages where you can directly access the system's memory and if the business objects are held in a specific memory segment, you can also write that segment out to the snapshot file instead of using serialization.



Is there a Java implementation I can use?

Yes. You will find Prevayler - The Open-Source Prevalence Layer, an example application and more information at www.prevayler.org. It does not yet implement automatic load-balancing but it does implement transparent business object persistence and replication is in the oven.



Is Prevayler reliable?

Prevayler's robustness comes from its anticlimactic simplicity. It is orders of magnitude simpler than the simplest RDBMS. Although I wouldn't use Prevayler to control a nuclear plant just yet, its open-source license ensures the whole of the software developing community the ability to scrutinize, optimize and extend Prevayler. The real questions you should bear in mind are: "How robust is my Java Virtual Machine?" and "How robust is my own code?". Remember: you will no longer be writing feeble client code. You will now have the means to actually write server code. It is the way object orientation was intended all along; but it is certainly not for wimps.



You said Prevayler is open-source software. Do you mean it's free?

That's right. It is licensed under the BSD License.



Who is already using Prevayler?

Come and see. Speak your mind.



But what if I'm emotionally attached to my database?

For many applications, prevalence is a much faster, much cheaper and much simpler way of preserving your objects for future generations. Of course, there will be all sorts of excuses to hang on to "ye olde database", but at least now there is an option.




ABOUT THE AUTHOR

Klaus Wuestefeld enjoys writing good software and helping other people do the same. He has been doing so for 18 years now. He is a consultant with Objective Solutions, and can be contacted at [EMAIL PROTECTED].



The terms "ANTICLIMACTIC SIMPLICITY" and "ANTICLIMACTICALLY SIMPLE" are hereby placed in the public domain. "PREVAYLER" and "OPEN-SOURCE PREVALENCE LAYER" are trademarks of Klaus Wuestefeld.
Copyright (C) 2001 Klaus Wuestefeld.
Unmodified, verbatim copies of this text including this copyright notice can be freely made.
_______________________________________________
Gpcg_talk mailing list
[email protected]
http://ozdocit.org/cgi-bin/mailman/listinfo/gpcg_talk

Reply via email to