GNUe Traffic #65 For 25�Jan�2003

Editor: Peter Sullivan

By Arturas Kriukovas �and� Peter Sullivan

"I live the way I type: fast, with a lot of mistakes"

Table Of Contents

Introduction

This Cousin covers the three main mailing lists for the GNU Enterprise (http://www.gnuenterprise.org) project, plus the #gnuenterprise IRC channel. Kernel Cousins GNUe is now group-authored: if you'd like to join the team, let us know (mailto:psu@burdonvale.co.uk) .

1. Tracability and mapping of data with AppServer

16�Jan�2003 (6 posts) Archive Link: "Re: [Gnue-dev] New Architecture Drawing based on Whitepaper."

Summary By Peter Sullivan

Topics: Application Server

People: Daniel Baumann,�Stan Klein

Further to Issue�#59, Section�#1� (24�Nov�2002:�GNUe Architecture Diagram) , Daniel Baumann said that he felt Application Server should support object orientated (OO) data models, but this needed to be kept simple, unlike the OO in the original GEAS (GNU Enterprise Application Server). He felt that ODMG (http://www.odmg.org) , as proposed by the Object Data Modelling Group, was about the right level of complexity and would become a standard. However, Application Server should be able to work with a relational data model as well, as that was sometimes more appropriate for small, quick to develop, solutions. "Things like access control and security should be done in common" with input from the authors of all the GNUe tools that would need to use them, to avoid duplication.

Stan Klein was concerned about tracability of data if AppServer used an OO data model. This was important for security and assurance. GNUe itself was likely to be a low-assurance system by itself, but needed to have 'hooks' to allow particular combinations of GNUe, database and operating system security to work together to provide higher levels of assuranace where necessary. Using a relational model on one side of AppServer and an OO model on the other might make tracability and mapping difficult, especially as the business rules became more complex. "The implication would be that medium or high assurance could not be obtained with GNUe in a multi-tier system." Daniel said "If the mapping is laid out then you should be able to bypass the server altogether if you want. I don't see how this effects 'assurance', it is a side effect of wanting to be able to develop business applications using objects. There is a slight impedance mismatch, but there are several ways to go about the mapping." Stan said this was important for audit and regulatory purposes. For AppServer, this included "the ability of the user to know exactly what data items in Appserver correspond to exactly what data items in the application" so that data could be protected consistantly on both the OO and relational 'sides' of the AppServer.

2. Relational and Object-Orientated data models in AppServer

16�Jan�2003 (18 posts) Archive Link: "[Gnue-dev] Object-Relational Mapping"

Summary By Peter Sullivan

Topics: Application Server

People: Daniel Baumann,�Jason Cater,�Neil Tiffin,�Leandro Dutra,�Reinhard M�ller

Daniel Baumann pointed to "an interesting paper (http;//www.libertyetech.com/mappingObjects.pdf) " . Jason Cater countered with an article (http://searchdatabase.techtarget.com/tip/1,289483,sid13_gci769023,00.html?FromTaxonomy=%2Fpr%2F284872) on "OO for application development, not database management" . He noted that "the integrity guarantees offered by relational database theory is based on solid mathematical principles -- OODBMS are not; they are just built on supposed market forces. And relational data models are only as limited in functionality as you make them" and could do anything "that can be done in an OODBMS-paradigm" . Daniel emphasised that he was not talking about Object-Orientated Database Management Systems with AppServer, but rather using AppServer as "an object-relational layer" to present an OO view of an underlying relational database. "This is not an object v. relational war or something, but a way to bridge the worlds together." Jason felt that there was a fine line between this and "trying to emulate an OODBMS." Neil Tiffin said that the point of using objects was to provide "a simple to understand method of modifying the system behavior by non information systems professionals" , and he felt that "An object model (implemented well)" was easier to comprehend than a relational one. But he was not sure that the ODMG (http://www.odmg.org) model was helpful here, as "You really need to be technically savvy to use it."

Leandro Dutra said that the relational model had originally been designed with non-professionals in mind. Objects were easy to explain initially, "but very hard to unsderstand the details and operate." He did not think that normalisation was a problem, as it could be mostly hidden from end-users - erorrs that could not be hidden (such as trying to enter an undefined parent against a child) were problems they needed to know about anyway. He felt that the complexity of the ODMG standard was not the fault of the standard per se, but implicit in OO itself. All business data could be better handled with a relational model.

Reinhard M�ller clarified that "Appserver builds upon a straightforward relational database" to provide "access to the fields in the database, based on user permissions." It would also present calculated fields "not stored in the database, but calculated at runtime" , and provide "procedures that can be called automatically on specific events or manually." This combination of database table(s), calculated fields and procedures was what the Application Server developers meant by an "object." "When we say "object" we're not talking about die-hard OOP with inheritance or polyphormism. We just mean the combination of data and code." However, "there is a language interface on it's way that maps appserver objects into Python objects."

Neil re-emphasised that the key issue was to have some level of abstraction above the basic data model (whether relational or OO). "The abstraction needs to make it easy to modify supplementary information for each business object, security for the system (may be business object level or higher), and modify workflow (including approvals). The abstraction is for the user or owner and also benefits the implementor because he or she can bring applications on-line faster without having to deal with all of the complexity."

3. Bayonne and GNUe

16�Jan�2003�Archive Link: "[IRC] 16 Jan 2003"

Summary By Arturas Kriukovas

Topics: Bayonne

People: Jason Cater,�David Sugar,�Daniel Baumann

According to Bayonne documentation, "In the 1.0 source tree, we have chosen to support a new TCP mechanism for IPC and control. One can telnet to a running GNU Bayonne 1.0 server and manipulate it live and interactively. This new mechanism was modified so that it could support http requests alongside interactive telenet sessions and so now GNU Bayonne can respond to http requests directly as well." ), Jason Cater (jcater) asked David Sugar (dyfet) whether this is still valid. David explained that this was a feature of BayonneNG, "but BayonneNG died out" . "There was going to be a new telephony driver model written by some other people under gstreamer which never got done by them, so we went back to bayonne "classic" and moved most of bayonneng into it" . However, http monitoring was in the current Bayonne as of time of writing.

Jason was also interested whether "bayonne have some sort of sandbox driver? i.e., acts like it's doing something but isn't really?" David explained there was "a soundcard driver, uses the keyboard" . Jason got a segmentation fault on bayonne_setup. Daniel Baumann (chillywilly) mentioned: "I am having some issues with libstdc++5. The serialecho program in common c++ segfaults for me" . David suggested reading the install guide from the doc directory.

4. New version of wxpython and GNUe

16�Jan�2003�Archive Link: "[IRC] 16 Jan 2003"

Summary By Arturas Kriukovas

Topics: Designer, Forms

People: Ariel Cal�,�Jason Cater

Further to Issue�#64, Section�#6� (14�Jan�2003:�Problems opening forms in Designer) , Ariel Cal� (ariel) said he had some problems with designer, that were related to wx (ver. 2.3.2.1), so he upgraded to 4.0.1. However, the "designer seems to work fine but forms crashes on startup. Since on the wxPython site there is only the latest version for download, is it possiblle to point to a 'reccomended' version and to upload a tarball on our site in the dependencies section?" Jason Cater (jcater) admitted he hadn't tested against 2.4.0 yet, but promised to take a look at this.

5. Object and Relational models in real life

18�Jan�2003�-�19�Jan�2003 (10 posts) Archive Link: "[Gnue-dev] Why the Object metaphor? (Was: Object-Relational Mapping?)"

Summary By Peter Sullivan

Topics: Application Server

People: Jason Cater,�Neil Tiffin,�Daniel Baumann,�Stan Klein

Warming to his theme from Issue�#65, Section�#2� (16�Jan�2003:�Relational and Object-Orientated data models in AppServer) , Jason Cater challenged why "an object model will be easier to follow than some other model, such as relational?" He agreed that "an abstraction above the low-level storage is needed" but was not convinced that "objects" were an intuitive metaphor. There was still a learning curve, so "Why not let them learn something that will benefit them more in the long run?" Any "queries" that mapped across several different objects in an OO model could only be done by "doing a quick procedural program that loops through these objects" , as opposed to a simple SQL select with joins in the relational model. In his experience, business people (especially accountants) had little trouble picking up the basic concepts of a relational database, as they could map it to their experience of using spreadsheets, and could even start to build their own SQL queries (with joins) without too much training.

Neil Tiffin emphasised that he was only interested in objects as a metaphor/abstraction level concept, not as an underlying method of storage. The important thing was to have a level of abstraction that lead to "a system that is simple to implement." - "After having been paid to implement 50 to 80% of the same thing over and over again there has to be a better way. This common element could be built into the abstraction layer because it can be reused. I believe there should be a way to express this common stuff in a way that more non-technical users can have access to it."

Daniel Baumann felt that "the gist of what your saying has nothing to do with the unerlying technology, right? However to design such a system that is "user friendly" it is a lot easier to do UI in objects. In fact, I have no idea whateversoever how anyone would design a user inteface using the 'relational' model."

Jason said that he was not saying that "one model is better than another" but just wanted to "ask is WHY it is more intuitive" to use an object-based conceptual model. He thought that "the object metaphor will quickly fail outside of the most mundane customizations" He could see how custom business rules (e.g. not allowing Purchase Orders to be raised on non-business days) could be done easily, but "Business reporting, in my opinion, is another equally important part of the equation" and he did not see how the object model would help with developing customised reports or queries. Daniel said that thinking of the relational model as "like spreadsheets" would only get people so far. "I think objects are more intuitive because people like to categorize things. We create type hierarchies in everyday life. These objects have 'relations' too. However the relation model breaks encapsulation so it has that drawback." On reporting, "Why would you not have a UI or something like a report builder that would inspect the business objects and, based on constraints the user types in then they select what they want on their reports? Doesn't matter if its business objects or relational data though." He felt that "Object terminology is no more complex than relational terminology and thet are added benefits in using objects; modularity, reusablility, encapsulation (high cohesion, low coupling), polymorphism (creating your own types), inheritance, etc."

Stan Klein felt this was "a very important discussion" as "I don't think you can find an other project/product, commercial or free software, that is attempting to serve as wide a range of uses and OS/database platforms as GNUe." One problem was that ""Object" is a word that gets overused" for many different concepts. Also, "we seem to be mixing up the deep infrastructure and the user-viewable infrastructure in our discussions." He suggested using the "old ANSI-SPARC three-layer model of a database system" as a way of keeping the concepts distinct. "The layers are the physical layer, the enterprise layer and the application layer." He personally would "lean to the relational model, but I think the object model may also have its uses" , and he discussed the benefits of each. He emphasised that "from the perspective of the security framework" the important things were traceability and mapping of the object and non-object data.

He had also recently attended a workshop "exploring issues in e-government" , where a speaker had "talked about web services as" a "replacement for the (he implied legacy) tightly coupled concept of multi-tiered systems." "Many of the things he mentioned I recognized as being present in GNUe, and I'm sure that GNUe can be a useful component in the kind of system he was talking about. Should we keep the "web services" concept in mind, even as we are discussing the key building block of a multi-tiered system?" Daniel felt "that the RPC abstraction that is in GNUe Common adds "web service" support to our infratstructure as we define them. Most here are not so hot about web applications because we think of this meaning a stateless html presentation of things. In reality, we support web serives right now thanks to the great work of Jason and Jan. However, anything beyond this wrt specific 'services' it is wide open. However, when DotGNU does nail down certain interfaces/services that components/tools should expose GNUe could easily adapt with minimal effort *if* there is a desire to. In short, I think it is probably fair to say we leave those things to the DotGNU project :)."

6. Connecting to a database in GNUe

18�Jan�2003�Archive Link: "[IRC] 18 Jan 2003"

Summary By Peter Sullivan

Topics: Common, Designer

People: Andrew Mitchell,�Daniel Baumann

It was asked how to define a connection in Designer. Andrew Mitchell (ajmitch) said "ah, you need to edit connections.conf - /me recalls that there was even a form that could be used to hack up connections.conf - on windows, at least" . Daniel Baumann (chillywilly) said "set provider t the driver you want to use. for postgres... I would use psycopg. Then host is the host the db server is running on - the dbname set to the name of the database - that's about it" . He modified his connections.conf just using a text editor - he had not seen the form Andrew mentioned. Andrew also suggested "you may want to copy /etc/gnue/sample.connections.conf to the connections.conf :)" as a starter.

7. Field width and other features of Forms

20�Jan�2003�Archive Link: "[IRC] 20 Jan 2003"

Summary By Arturas Kriukovas

Topics: Forms

People: Bajusz Tam�s,�Dmitry Sorokin,�ra3vat

Bajusz Tam�s (btami) asked for a bit of help in forms - he was fixing ""Entry Field Width Not Accurate" bug (DCL #28)" - "if the width of the field is =1, is the all shape of typed character viewable?" - but was not sure whether this was a general bug or just for him. Later, Dmitry Sorokin (ra3vat) confirmed - "i started one form with entry having width 1, the place is too short to see anything there" . After some fixes things got better. Tam�s thought "the problem is that item.Width is calculated as width of 1 char(reported by wx) * entry width, but wx uses some space before and after in the wxTextCtrl"

Tam�s tried to run forms on WindowsXP and, additionally to existing problem that "python interpreter that is called for thigger performing does not know about our i18n tricks at all, so if you have ascii in site.py and put something non-ascii in trigger code (even in comments) the form will fail" , another problem appeared: "UnicodeError: Latin-1 encoding error: ordinal not in range(256)" . Tam�s said that "it works if i set formFontEncodig to xxx-2 (its my hu)" , but the default value (xxx-1) conflicts with current system value (xxx-2).

8. Case-Insensitive LIKE in GNUe

20�Jan�2003�Archive Link: "[IRC] 20 Dec 2002"

Summary By Arturas Kriukovas

Topics: Common

People: John Lenton

John Lenton (Chipaca) said there was "a slight misrepresentation in" Issue�#64, Section�#5� (13�Jan�2003:�Case-Insensitive LIKE in GNUe) . He had "got 'like' GCondition working via ILIKE on postgres, and was wondering if NOT ILIKE made any sense. Obviously it does, so I did that one too. All I had to do in the end, to get the like -> ILIKE thing, is copy the condition name -> sql dict into _pgsql. For some reason the first time I tried it it didn't work (where that 'some reason' is that I copied the dict in odbc which is incomplete), but with the right dict it works fine :)"

9. Blocks and Pages in new GNUe Forms Definition (.gfd) format

20�Jan�2003�Archive Link: "[IRC] 20 Dec 2002"

Summary By Peter Sullivan

Topics: Forms

People: Bajusz Tam�s,�Jason Cater

Bajusz Tam�s (btami) asked "is there any relation between blocks and pages" in the new GNUe Forms Definition (.gfd) format, which split logic and layout - as discussed in Issue�#57, Section�#7� (26�Nov�2002:�Old format .gfds do not work with CVS head) Jason Cater confirmed "no - blocks can span multiple pages - and there can be multiple blocks per page. Note that the former isn't well tested yet" . Tam�s confirmed that this meant there was "no need for 2 blocks in intro.gfd" , the basic sample/demo form. However, using the PageDown/PageUp key to move between tabs no longer worked - "we have PgDn/PgUp for blocks, and nothing for pages - anyhow, i think we need som keys for changing pages, if there is only one block" .

10. Resizing Forms in Designer

20�Jan�2003�Archive Link: "[IRC] 20 Dec 2002"

Summary By Peter Sullivan

Topics: Designer

People: Andrew Mitchell,�Bajusz Tam�s,�Jason Cater

Andrew Mitchell (ajmitch) asked "how do i resize a form in cvs designer?" Bajusz Tam�s (btami) said "you can't" . Andrew suggested "unless i edit the generated xml" in a text editor. Tam�s noted "the layout's width/height are missing from property inspector tab" . Jason Cater (jcater) said "the height and width are on the <layout> tag now" but admitted "one of my near-term goals is to get a better way to resize a form - /me is thinking of making the edge of the grid draggable" . Andrew thought this would "be nice" .

11. Migrating from Microsoft Access to GNUe

20�Jan�2003�Archive Link: "[IRC] 20 Dec 2002"

Summary By Peter Sullivan

Topics: Common

People: Derek Neighbors,�Dmitry Sorokin,�Jason Cater,�ra3vat

Derek Neighbors (derek) asked "anyone know if there is an ms access driver for linux? - er nevermind i suppose windows woudl be sufficient" . Dmitry Sorokin (ra3vat) said "there is mdbtools (http://mdbtools.sourceforge.net/) project" - "not sure it is what you need" . Jason Cater (jcater) felt that "/dev/null would be the best place for that mdb" . Derek explained "i would like an access driver (even if windows only) so that one could point gsd tool to it and have a" GNUe Schema Definition (.gsd) file created which "they can create a postgres table from" . He realised "i can do this today (and move data) with pgadmin II - but i would rather have a GNUe way to do this - as there are lots of things i dont like about pgadmin II" . Jason noted that mdbtools looked promising - "if it includes a library (and not just a stand-alone program) - we can probably swig it" .

12. Nola/acclite status

21�Jan�2003�Archive Link: "[IRC] 21 Dec 2002"

Summary By Peter Sullivan

Topics: Small Business

People: Ryan Fox,�Andrew Mitchell

Ryan Fox (larsu) "came in to see what gnue's current state with nola/acclite was" , as previously discussed in Issue�#57, Section�#5� (23�Nov�2002:�Nola/acclite original author spotted in #gnuenterprise) . "the reason i'm asking is that I came across a project called OSSuite (http://www.ossuite.org) that has taken nola and made the web interface prettier, and i think wrote some back-end code too. anyhow, the project seems to have some parallels to gnue." Andrew Mitchell (ajmitch) noted "i haven't heard much of nola/acclite/gnue-sb's status lately, you'll need to wait for derek or jcater to be up & about" . Ryan said that OSSuite had "ended up running a cvs for their changes to nola as well. I mentioned gnue and it's evaluation of nola with a project guy with ossuite, and got him interested in talking to gnue about collaborating on all those changes."

Sharon And Joy

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.