Hello All,
Has anyone worked with the Caché Database system: http://www.intersystems.com/ . Im interested in possible integration with squeak.
Ron Teitelbaum
President / Principal Software Engineer
US Medical Record Specialists
www.USMedRec.com http://www.usmedrec.com/
Ron@USMedRec.com
Hi Ron - yes! Funnily enough I've spent the last two months struggling with this very subject :)
How are you planning to integrate with Caché? My first priority was to try to integrate with their ODBC drivers - there's a thread about it on this list here http://thread.gmane.org/gmane.comp.lang.smalltalk.squeak.general/52948. Eventually I did get success, but as you can see from the thread, it's certainly a non-ideal solution.
Upon communication with their (admittedly pretty helpful) support staff it turns out the timer is internally set up to control a timeout value within their own unix driver software. Of course, the whole issue I found doesn't apply if you're working with windows as their ODBC driver is completely different, the integration works just fine - within the boundaries of FFI, of course.
We're now at the point of trying to decide what to do. The whole point of all this is to add Caché as a supported database for GLORP (and have it work on other OSes than Windows - preferably Linux in our case), but I'd be interested to know how you intend to use it. We're considering whether to try to hit the metal directly and write pure Squeak drivers for Caché, but we're not sure whether they'd give up the specs to us of how we need to communicate with their server. The PostgreSQL drivers for Squeak seem to encapsulate a nice generic framework from which base other pure Squeak database drivers, but whoever developed it never did the required abstraction: I wonder if anybody ever did it, started it, or even considered doing it?
Anyway, it's nice to know we're not the only people trying to break this ground now :)
Cheers, Simon
Ron Teitelbaum wrote:
Hello All,
Has anyone worked with the Caché Database system: http://www.intersystems.com/ . I'm interested in possible integration with squeak.
Ron Teitelbaum
President / Principal Software Engineer
US Medical Record Specialists
www.USMedRec.com http://www.usmedrec.com/
Ron@USMedRec.com mailto:Ron@USMedRec.com
Click here https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== to report this email as spam.
Simon,
Thanks for the response. The VA (US Veterans Administration) uses Caché for their medical record system and I would like to attach squeak to that system.
It really concerns me that you are having this problem with ODBC on Linux. Have you considered their XML interface, or do you think that would be way to slow?
I was hoping to add support by extending their projection classes to generate Smalltalk objects, and to connect up using ODBC. Im glad you mentioned this problem, since Im running on windows, and I wouldnt have discovered this problem until later while trying to run this on linux.
I would love to see squeak drivers, have you contacted them about the specs?
Thanks again for the response and for mentioning GLORP, I hadn't seen it yet.
Ron Teitelbaum Ron@USMedRec.com ________________________________________ From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On Behalf Of Simon Kirk Sent: Monday, November 28, 2005 5:34 AM To: The general-purpose Squeak developers list Subject: Re: Caché Database System Integration With Squeak
Hi Ron - yes! Funnily enough I've spent the last two months struggling with this very subject :)
How are you planning to integrate with Caché? My first priority was to try to integrate with their ODBC drivers - there's a thread about it on this list here. Eventually I did get success, but as you can see from the thread, it's certainly a non-ideal solution.
Upon communication with their (admittedly pretty helpful) support staff it turns out the timer is internally set up to control a timeout value within their own unix driver software. Of course, the whole issue I found doesn't apply if you're working with windows as their ODBC driver is completely different, the integration works just fine - within the boundaries of FFI, of course.
We're now at the point of trying to decide what to do. The whole point of all this is to add Caché as a supported database for GLORP (and have it work on other OSes than Windows - preferably Linux in our case), but I'd be interested to know how you intend to use it. We're considering whether to try to hit the metal directly and write pure Squeak drivers for Caché, but we're not sure whether they'd give up the specs to us of how we need to communicate with their server. The PostgreSQL drivers for Squeak seem to encapsulate a nice generic framework from which base other pure Squeak database drivers, but whoever developed it never did the required abstraction: I wonder if anybody ever did it, started it, or even considered doing it?
Anyway, it's nice to know we're not the only people trying to break this ground now :)
Cheers, Simon
Ron Teitelbaum wrote: Hello All, Has anyone worked with the Caché Database system: http://www.intersystems.com/ Im. interested in possible integration with squeak. Ron Teitelbaum President / Principal Software Engineer US Medical Record Specialists www.USMedRec.com Ron@USMedRec.com
Click here to report this email as spam.
________________________________________
Hi again Ron.
Ron Teitelbaum wrote:
Simon,
Thanks for the response. The VA (US Veterans Administration) uses Caché for their medical record system and I would like to attach squeak to that system.
Nice to know that there's a large-scale organisation like that using Caché - you guys will carry considerable clout for getting them to change things if needed :)
It really concerns me that you are having this problem with ODBC on Linux. Have you considered their XML interface, or do you think that would be way to slow?
I must confess I didn't know there was an XML interface. However, I suspect that it may be a reasonable way to go given a fast enough link between the client and server machines, and fast enough client and server hardware. Of course I have no quantifiable metrics for this, but now you've mentioned this interface I'll probably take a look at it.
I was hoping to add support by extending their projection classes to generate Smalltalk objects, and to connect up using ODBC. I’m glad you mentioned this problem, since I’m running on windows, and I wouldn’t have discovered this problem until later while trying to run this on linux.
Glad to have been of help :)
I would love to see squeak drivers, have you contacted them about the specs?
I haven't yet asked them about their specs directly. I've dropped a few hints in support emails but they've either missed them or ignored them - hopefully not the latter as that would indicate that they don't want to give them up. Still, that's nothing but guesswork and I just hadn't got around to asking them properly yet - so many other things on the go at the moment. However if there are two clients asking for the same thing, it would hopefully mean they'd be willing to cooperate; I can't really see why they wouldn't want us to add to the range of interfaces to Caché.
Cheers, Simon
This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com
Simon,
I will talk to them about the specs about their interface too. Ill let you know what happens. By the way incase you missed it, Caché is the newest consolidated version of the 4GL language MUMPS, or some call it M now. It does look very powerful and massively scalable. Ive been asking myself why this language and DB didnt take off more then it has, and Im guessing the answer is that it was originally developed for medicine, and its OO which may have put it out of reach for some SQL developers? In general because of its structure Im pretty sure an interface from Squeak would be a nice fit. It appears to be an OODB with some history and experience.
In my previous position as Principal Software Engineer for a pretty big health care company I used Versant. We were way out front with it. We looked at Gemstone but found that Versant was much closer to what we needed. We ended up having a lot of problems with Versant. We were already a few years into developing on Versant when during deployment things went wrong. We may have been pushing the envelope on their product, but when we started getting mixed results back without changing data we finally decided to switch to Oracle. (After some time working with support, to their credit, Versant was able to get us a patch for the problem, but by then we, our owners and financial backers were shell shocked, and needed to find something that was actually, and was considered by others, production quality DBMS)
Ive been leery of OODBMS since then and found that Oracle and Toplink was a pretty good fit for large scale production apps. (Although we did make a lot of modifications to Toplink :) )
My interest like I said is mostly interfacing to existing systems. Ill let you know what intersystems says about the specs.
Ron Teitelbaum Ron@USMedRec.com
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On Behalf Of Simon Kirk Sent: Tuesday, November 29, 2005 7:28 AM To: The general-purpose Squeak developers list Subject: Re: Caché Database System Integration With Squeak
Hi again Ron.
Ron Teitelbaum wrote:
Simon,
Thanks for the response. The VA (US Veterans Administration) uses Caché
for
their medical record system and I would like to attach squeak to that system.
Nice to know that there's a large-scale organisation like that using Caché - you guys will carry considerable clout for getting them to change things if needed :)
It really concerns me that you are having this problem with ODBC on Linux. Have you considered their XML interface, or do you think that would be way to slow?
I must confess I didn't know there was an XML interface. However, I suspect that it may be a reasonable way to go given a fast enough link between the client and server machines, and fast enough client and server hardware. Of course I have no quantifiable metrics for this, but now you've mentioned this interface I'll probably take a look at it.
I was hoping to add support by extending their projection classes to generate Smalltalk objects, and to connect up using ODBC. Im glad you mentioned this problem, since Im running on windows, and I wouldnt have discovered this problem until later while trying to run this on linux.
Glad to have been of help :)
I would love to see squeak drivers, have you contacted them about the
specs?
I haven't yet asked them about their specs directly. I've dropped a few hints in support emails but they've either missed them or ignored them - hopefully not the latter as that would indicate that they don't want to give them up. Still, that's nothing but guesswork and I just hadn't got around to asking them properly yet - so many other things on the go at the moment. However if there are two clients asking for the same thing, it would hopefully mean they'd be willing to cooperate; I can't really see why they wouldn't want us to add to the range of interfaces to Caché.
Cheers, Simon
This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com
Simon,
I finally reached the people at Caché and discussed integration with them. They are working on putting together a group of people to discuss the possibility of integration and are planning on a call later next week. They understand our interest in exploring writing drivers and possibly doing projection classes to generate Smalltalk objects similar to their work in Java.
They are also discussing integration with squeak and VistA for my company.
I will keep you informed on my progress, but if you would like to join in the conversations please let me know.
Ron Teitelbaum President / Principal Software Engineer US Medical Record Specialists Ron@USMedRec.com
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev- bounces@lists.squeakfoundation.org] On Behalf Of Simon Kirk Sent: Tuesday, November 29, 2005 7:28 AM To: The general-purpose Squeak developers list Subject: Re: Caché Database System Integration With Squeak
Hi again Ron.
Ron Teitelbaum wrote:
Simon,
Thanks for the response. The VA (US Veterans Administration) uses Caché
for
their medical record system and I would like to attach squeak to that system.
Nice to know that there's a large-scale organisation like that using Caché - you guys will carry considerable clout for getting them to change things if needed :)
It really concerns me that you are having this problem with ODBC on
Linux.
Have you considered their XML interface, or do you think that would be
way
to slow?
I must confess I didn't know there was an XML interface. However, I suspect that it may be a reasonable way to go given a fast enough link between the client and server machines, and fast enough client and server hardware. Of course I have no quantifiable metrics for this, but now you've mentioned this interface I'll probably take a look at it.
I was hoping to add support by extending their projection classes to generate Smalltalk objects, and to connect up using ODBC. Im glad you mentioned this problem, since Im running on windows, and I wouldnt have discovered this problem until later while trying to run this on linux.
Glad to have been of help :)
I would love to see squeak drivers, have you contacted them about the
specs?
I haven't yet asked them about their specs directly. I've dropped a few hints in support emails but they've either missed them or ignored them - hopefully not the latter as that would indicate that they don't want to give them up. Still, that's nothing but guesswork and I just hadn't got around to asking them properly yet - so many other things on the go at the moment. However if there are two clients asking for the same thing, it would hopefully mean they'd be willing to cooperate; I can't really see why they wouldn't want us to add to the range of interfaces to Caché.
Cheers, Simon
This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com
Ron,
Please keep us all updated. I believe this would be a really good thing for the community-at-large.
On 1/5/06, Ron Teitelbaum Ron@usmedrec.com wrote:
Simon,
I finally reached the people at Caché and discussed integration with them. They are working on putting together a group of people to discuss the possibility of integration and are planning on a call later next week. They understand our interest in exploring writing drivers and possibly doing projection classes to generate Smalltalk objects similar to their work in Java.
They are also discussing integration with squeak and VistA for my company.
I will keep you informed on my progress, but if you would like to join in the conversations please let me know.
Ron Teitelbaum President / Principal Software Engineer US Medical Record Specialists Ron@USMedRec.com
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev- bounces@lists.squeakfoundation.org] On Behalf Of Simon Kirk Sent: Tuesday, November 29, 2005 7:28 AM To: The general-purpose Squeak developers list Subject: Re: Caché Database System Integration With Squeak
Hi again Ron.
Ron Teitelbaum wrote:
Simon,
Thanks for the response. The VA (US Veterans Administration) uses Caché
for
their medical record system and I would like to attach squeak to that system.
Nice to know that there's a large-scale organisation like that using Caché - you guys will carry considerable clout for getting them to change things if needed :)
It really concerns me that you are having this problem with ODBC on
Linux.
Have you considered their XML interface, or do you think that would be
way
to slow?
I must confess I didn't know there was an XML interface. However, I suspect that it may be a reasonable way to go given a fast enough link between the client and server machines, and fast enough client and server hardware. Of course I have no quantifiable metrics for this, but now you've mentioned this interface I'll probably take a look at it.
I was hoping to add support by extending their projection classes to generate Smalltalk objects, and to connect up using ODBC. I'm glad you mentioned this problem, since I'm running on windows, and I wouldn't have discovered this problem until later while trying to run this on linux.
Glad to have been of help :)
I would love to see squeak drivers, have you contacted them about the
specs?
I haven't yet asked them about their specs directly. I've dropped a few hints in support emails but they've either missed them or ignored them - hopefully not the latter as that would indicate that they don't want to give them up. Still, that's nothing but guesswork and I just hadn't got around to asking them properly yet - so many other things on the go at the moment. However if there are two clients asking for the same thing, it would hopefully mean they'd be willing to cooperate; I can't really see why they wouldn't want us to add to the range of interfaces to Caché.
Cheers, Simon
This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com
-- Jason Rogers
"I am crucified with Christ: nevertheless I live; yet not I, but Christ liveth in me: and the life which I now live in the flesh I live by the faith of the Son of God, who loved me, and gave himself for me." Galatians 2:20
On 11/28/05, Simon Kirk Simon.Kirk@pinesoft.co.uk wrote:
Upon communication with their (admittedly pretty helpful) support staff it turns out the timer is internally set up to control a timeout value within their own unix driver software.
Sounds like some old-fashion Unix multi-process hacking is in order ;)
Simon Kirk wrote:
... The PostgreSQL drivers for Squeak seem to encapsulate a nice generic framework from which base other pure Squeak database drivers, but whoever developed it never did the required abstraction: I wonder if anybody ever did it, started it, or even considered doing it?
The "PostgreSQL Client for Squeak" internal design is based on the well-documented Postgres frontend/backend protocol. What might be somewhat novel is to treat each protocol message as an event that triggers a state-machine transition. The state-machine is depicted here: http://ca.geocities.com/yanni@rogers.com/pgsqueak/PGConnection.5.gif
Since I don't know the internals of any other database connection protocol, I don't know whether it's a suitable generic framework for other databases.
Also, what sort of "required abstraction" are you looking for? Is it a layer that might sit between GLORP and any other relational database? If so, then IMHO it's not a requirement for either GLORP or the postgres client. However, it's certainly a useful abstraction layer to have if you want to plug different databases into GLORP. I'd probably consider working on the layer, the moment I needed to hit a different relational database. It's possible that the methods in the "api" category of PGConnection and the PGResult & PGResultSet could form the basis of such an abstraction layer.
--yanni
P.S. I just recently happened to try the PostgreSQL client with a version 8.1 server. I found I had to do two things: (1) Make sure pg_hba.conf is set to use "password" authenticaton instead of the default "MD5". (2) Make sure a password is set, a 'nil' password no longer works.
squeak-dev@lists.squeakfoundation.org