Bob Balaban's Blog


    Bob Balaban


    Remember "Garnet"??

    Bob Balaban  May 28 2007 02:00:40 AM
    Greetings, Geeks!

    The Domino server has a long and interesting history working with J2EE components (servlets and JSPs). R4.6, the first version of the server to contain support for embedded Java, shipped with a servlet engine, though since it wasn't documented until R5, not many people knew about it. That engine support Servlet spec v2.0, then current. Today, 10 years later, that engine is still shipped as part of the Domino server kit. And it STILL supports v2.0 of the Servlet specification. Your servlet components lived on disk, in the \domino\java\servlet directory, and there was no provision for remote debugging.

    I'm pretty sure it was in the spring and summer of 2001 that one of the beta releases of what was then called Domino "RNext" (later to be released as R6.0) first contained a very interesting new feature set, called "Garnet".

    Garnet was curious, yet intriguing. It was an attempt to merge the part of the world doing J2EE "Web" development (servlets and JSPs) with those doing Domino Web development. The ideas it embodied were simple, yet powerful:
    - Allow j2ee web components (servlet and JSP files) to be stored in an NSF as editable design elements
    - At runtime, these components are extracted from the NSFs and put into the deployment directory of a locally running Tomcat Server, from Apache.
    - This way, the j2EE components could replicate freelly with the deisgn of the NSF, yet a URL to the servlet/JSP would be routed to the Apache "Web Container" and the application would be executed, with the results going back trhough the Domino HTTP server to the client.
    - Tomcat supported remoet debugging from the precursor to Rational Application Developer (RAD), then called WebSphere Studio Application Developer (WSAD).

    It was a huge advance over the original servlet engine, which clearly was done as an afterthought, and wasn't being maintained very well.

    Garnet was popular - easy to understand, it worked reasonably well, and the Apache code was free (many of us assumed that before shipping R6, IBM would replace Tomcat with some version of Websphere Application Server (WAS), but as long as it was going to work, it was not considered a big deal (at least, not by me).

    I spent some considerable time that summer building demos for Garnet, and spent most of September, 2001 (yes, THAT September, 2001) hauling myself and 2 laptops around Europe showing it, and explaining how it worked at various conferences and workshops. I was able to show my "Course Registration" demo (built in conjunction with my then business partner, Hobert  running on a combination of Domino/NSF, Tomcat and Db2, all on one laptop. Very educational, very sweet.

    And then, IBM decided to cancel that part of the project. R6 would ship without Garnet, and would simply maintain the old servlet engine. I was upset, I'd invested a lot of effort and thought (and 2 trade journal articles) in this feature set, and now they were pulling out. There were rumors of all kinds of politics behind the decision, and schools of thought ranged from the merely incompetent all the way to the truly evil.

    Which brings me, children, to the point of today's blog post. After checking around (carefully), it now seems that "Garnet" is no longer a dirty word withing the hallowed halls of IBM. In my new Programming Services Architect role, I've even proposed ("floated" migh be a more accurate term) the idea that the Domino server should have a REAL Web container in it, as a way of solving a few problems that we have now:

    1) We would get an up-to-date servlet engine, with modern Admin tools and interfaces, and fully up to spec. We could seriously consider getting rid of the old crappy one.
    2) We'd get support for JSPs, which the old servlet engine never had
    3) We could store the component code in NSFs, and let it replicate
    4) It would help our WebServices story a lot too, and modernize the code base in that area.

    The details would be a bit different this time around, we would not do it exactly the same way we did Garnet. We would not, for example, deploy to the AppServer's disk, and we probably wouldn't use Tomcat as the Web Container.

    One possible migration issue is that servlets built for v2.0  of the servlet spec (what the COSE -- crappy old servlet engine -- runs) may not run without some recoding on a more modern engine implementing version 2.4 of the spec. Sun has apparently removed some earlier calls......sigh (IBM would never do that, by the way). Would this lack of simple migration be a problem for people out there? Does anyone have a list of things that won't compile in this scenario?

    Overall, do people think this is a good idea? Something worth investing some effort into, on our part?

    Let's hear your thoughts!

    1Andrew Price  05/28/2007 4:49:21 AM  Remember Garnet ??


    Yes a good idea imo, but I can't decide whether to cheer, or cry.

    I don't know if it's at all possible (or even desirable) to build in, but some language agnosticism would be nice (I have recently come to appreciate Ruby for example).

    Looking forward to whatever you do!


    2Andrew Price  05/28/2007 4:56:01 AM  Remember Garnet ??

    >>There were rumors of all kinds of politics behind the decision, and schools of thought ranged from the merely incompetent all the way to the truly evil. <<

    Interestingly, the central conclusion that all of us outside Lotus drew -- that IBM was canceling Notes' future -- turned out to be essentially correct.

    I'm glad that things have turned around.

    Perhaps if you do build a son-of-Garnet Ed can hope that people will not be talking about it at his funeral. ;)

    3Jeff Gilfelt  05/28/2007 5:47:21 AM  Remember Garnet ??

    When they pulled Garnet from R6 I saw it as a signal from IBM that Domino had reached its end of life as a web application server, and further feature development would not be pursued. I am happy to be proved wrong and I think what you are proposing is a really, really great idea.

    I know IBM is always striving for backwards compatibility, but in my experience I have not come across a single domino web app that used the "crappy old servlet engine", I think mostly because it was not particularly well documented or up to date (Servlet 2.0 = JDK 1.1?). I would say that most pseudo-J2EE apps built for Domino either use simple Java agents or an entirely separate servlet container (usually Tomcat) that integrates with Domino using NCSO.jar and/or the tag libraries.

    Both methods have their drawbacks. A solution relying heavily on Java agents never seems to scale particularly well. Using an external servlet container gives you better performance, but developers often have to work hard to explain to managers and administrators why you need this other product to be installed and configured in the environment, especially since Domino was purchased on the basis of it being a world class web application server.

    What you have proposed would deliver the best of both solutions. The performance and scalability of servlets/JSP with the code stored and maintained in the NSF and no need to install and configure a separate product. Great!

    4Wild Bill  05/28/2007 6:41:14 AM  Remember Garnet ??

    Yeah - go for it. If you have old code kicking around - well, just keep an old server hanging around whilst you uprade it.

    The new stuff you propose would far outweigh the pain of upgrade.

    Just one suggestion: Dont call it Garnet.. !

    (Ed might just kill you)

    ---* Bill

    5Schlusi  05/28/2007 7:11:18 AM  Remember Garnet ??

    I agree specially with comment #2. There was a lot of domino-reputation lost during these years.

    And it would be great, if we get a state-of-the-art-servlet-engine!

    6Vince Schuurman  05/28/2007 8:14:36 AM  Remember Garnet ??

    Sounds great!!

    And yes I do use the old servlet engine, but I'm happy to sacrifice backward compatibility for this.

    7veer  05/28/2007 9:13:36 AM  Remember Garnet ??

    Also, when you are at it, would it be possible, that the servlet version plus the JDKs be easily upgraded by the customer than wait for the next release of domino.

    A great idea, but for now, we are going to put the servlets on websphere, per your suggestion.

    8Kerr  05/28/2007 9:18:47 AM  Remember Garnet ??

    "One possible migration issue is that servlets built for v2.0 of the servlet spec may not run without some recoding on a more modern engine implementing version 2.4 of the spec. Sun has apparently removed some earlier calls......sigh (IBM would never do that, by the way)."

    Well, Sun have deprecated some calls which means that you shouldn't use them, but the methods and classes are still there.

    A full list is here:

    { Link }

    From that list only a few state that the return result will be different in 2.4 than in 2.0. and would therefore cause a problem. These are all security related problems and should be fixed in any code using them anyway.

    javax.servlet.http.HttpSessionContext.getIds() - empty enumeration.

    javax.servlet.http.HttpSessionContext.getSession(String) - returns null.

    javax.servlet.ServletContext.getServlet(String) - returns null.

    javax.servlet.ServletContext.getServletNames() - returns empty enumeration

    javax.servlet.ServletContext.getServlets() - returns empty enumeration

    Everything else should work as before, but there was a reason they were deprecated. Effectively there was something wrong with the definition of those methods that can cause problems in certain circumstances. If those circumstances are avoided then you don't get a problem, but a config change on the server might cause that to happen.

    I think this is a tough decision for IBM to make. Do you maintain an old version that has known security issues or do you just say, no, sorry you have to upgrade your code?

    Now you also have another issue. The deployment is going to be different anyway. Having servlet code embedded into the nsf and deploying automagically can all be 2.4+. A legacy app still needs to get deployed as two pieces. So either the old code needs to get put in the nsf, (in which case fix the old code) or you need to have a way to deploy the old servlet pieces. Will it be possible to have the COSE and the SNSE (Shiny New Servlet Engine) on the same box? Is there a way to make the administration work?

    From my own personal point of view, I'm with Bill, let those that need it keep an old box around for the legacy apps. It's been a legacy compatibility feature since R5 anyway, so if it gets removed in ND9, fine by me.

    9Charles Robinson  05/28/2007 9:31:26 AM  Remember Garnet ??

    I'm in the process of learning ASP.Net and I'm astounded at how easy it is to build and deploy functional sites as compared to Domino. There is so much IIS and .Net just do for the web developer, leaving them to focus on simply building the applications.

    Having a modern and updated servlet container is only half the battle, though. The other half is having a modern and updated development environment to go along with it. IBM needs something to compete with Visual Web Developer. Lotus Component Designer is an interesting first whack at it, but it's still a little rough. Without that the updated servlet container isn't going to get you as much bang for your buck as it could otherwise.

    Like Jeff (@3) I didn't think IBM was committed to Domino as a web application platform. Sure you can shoehorn lots of stuff into it, but as far as I could tell that piece of the product was in its death throes. I'm overjoyed that you're proving me wrong. :-)

    10Julian Buss  05/28/2007 9:50:04 AM  Remember Garnet ??

    very good idea. We are using the Domino servlet engine for a Web-CMS, and we are doing some heavy stuff here. I'm very sure this stuff won't run in a new servlet engine, but when we get a professional servlet engine with professional debugging options, I would be glad to re-engineer my stuff.

    11Craig Wiseman  05/28/2007 10:24:00 AM  Remember Garnet ??

    I can't even begin to say what a good idea I think this is (surprise!). I don't know anyone who is using the COSE.

    I think it speaks volumes that IBM is even willing to consider this option. Many companies would consider the internal politics and decide that the matter was already closed, regardless of the benefits to customers.

    This is will be very important in appealing and building solutions for/with Smbs.

    12Richard Schwartz  05/28/2007 12:11:20 PM  Remember Garnet ??

    I had heard that LotusScript Server Pages (LSP's?) were also being worked on in conjunction with Garnet, but that that project was actually canceled even before the rest of Garnet. If you revive the servlet/jsp aspects, I hope you can revive the LSP part, too. Why? For the same reason that Microsoft has VB.Net: because lots of IT managers are unwilling to pay to train their people on a "whole new language", even though they'll willingly pay to train them on the latest capabilities added to an existing language.

    13Jeff Gilfelt  05/28/2007 1:36:22 PM  Remember Garnet ??

    @12 - I think providing support for LotusScript just to appease "old school" Notes developers would be a mistake. I would rather see IBM focus on open standards rather than the proprietary aspects of the platform. Java has been around since '95 and part of Notes & Domino since version 4.6 ...maybe the introduction of this functionality can be the catalyst for developers to update their skills?

    The introduction of VB.NET was still very much a revolution rather than a simple evolution of Visual Basic, and I think a very gutsy move on Microsoft's part.

    But it does raise a good question - where does LotusScript fit into the future plans for Notes/Domino programmability?

    14Finn L. Knudsen  05/28/2007 1:38:58 PM  Remember Garnet ??

    Yes yes - send the signal that Domino is a web server to count on in the years to come

    15John Head  05/28/2007 2:41:32 PM  Remember Garnet ??

    I guess I will be the naysayer ... I would rather have some better integration with Domino and WAS or Apache/Tomcat. Give us tools and better install and all stuff.

    You can not just add JSP and servlet stuff to Domino to make it a modern web platform. You have to overhaul everything. I would personally prefer that you work with existing Application servers and let me integrate them easily and tightly.

    16yuval  05/28/2007 3:46:17 PM  Remember Garnet ??

    JSP is nice, but LSP is the real thing that most of us need.

    It will be nice if IBM will, for once, give domino developers what they really need and want, rather than try to educate them to use what IBM think they need.

    BTW, even an LSP "like" solution that will take your <%code%> and run it as it was a Web Query Open agent code will be nice for a start.

    17Bob Balaban  05/28/2007 4:24:26 PM  Remember Garnet ??

    @2, @4 - What is this obsession with Ed (I assume you mean Ed Brill) and Garnet? I have had more

    than a couple of long discussions with Ed about Garnet (and many, many other topics) over the last

    few years. And I have had discussions about Garnet, and about my current thoughts on building

    similar functionality in some upcoming release of Domino, with many managers in the Lotus organization.

    I can assure you, "Garnet" is no longer politically incorrect here. Now, that is not to say that

    I have approval to actually go build something (yet)!

    I can also assure you that Ed Brill will be an enthusiastic supporter of any feature set that he

    believes will sell more copies of the product.

    @7 - Making it easier to update the JVM in Notes/Domino is definitely something we are looking at.

    No real plans to reveal yet, but stay tuned.

    @8 - THANKS for that link! I hadn't yet got around to investigating the differences in detail

    myself (or asking someone else to do it...), so this is very helpful.

    Re: "Will it be possible to have the COSE and the SNSE (Shiny New Servlet Engine) on the same box?

    Is there a way to make the administration work?", we might try to do something like that. Admin is not

    a big issue in my mind, since the old engine had none anyway (other than someone manually editing


    @9 - Re: IIS and ASP, I could rant about how they really only make it *seem* easier, by hiding

    complexity at the cost of runtime performance and security...but I won't.

    Re: updated dev environment, I agree with you. Component Designer is probably not what you would

    use to develop classic servlets and JSPs, but we do have Rational Application Developer, which I

    have used exetnsively.

    @11 - Thanks for the feedback. In reality, it's not the politics that cause problems with decisions

    like this, it's cost and time.

    @12 - Rich, I agree with you that extending familiar scripting languages into new environments is

    a good thing. LotusScript in Garnet was indeed something that people were working on. It was being

    done through the "Bean Scripting Framework". The reason it never saw the light of day was that there

    were too many technical difficulties, and it was hard to get it working right (I don't have the


    Wiring LotusScript into the J2ee Web app framework would be cool, but there are a lot of problems.

    Perhaps I will make this the subject of a future "What if...?" posting on server-side scripting


    @15 - Thanks for the comments, John. We are certainly NOT talking about writing our own Web

    Container from scratch!! So, anything we do could really be considered "work with existing Application

    servers and let me integrate them easily and tightly."

    @16 - Interesting suggestion, thanks!

    18Ian Morrison  05/28/2007 4:24:48 PM  Remember Garnet ??

    This sounds like a great idea to me. JSPs with Domino... sounds not only like a useful weapon for a sizeable number of Domino web developers, but should also boost the image of the product too.

    As for the suggestion by @15 to integrate with other engines rather than have the engine within the bounds of Domino, I kinda like the neatness of the all-in-one solution. It also saves an argument with the people who run the servers if we had to install and configure various other bits and pieces. If it was "just part of Domino", and just there, it would encourage developers to investigate its potential.

    19Simbosan  05/28/2007 5:17:14 PM  Remember Garnet ??

    I have been struggling with the old JSDK for a while now, as I have a client that wishes to serve JSP from Domino and would very much like to have a single server solution.

    Updating the JSDK would be sensational, this page is being linked to them as I speak. R9 is obviously a while away, but this would be huge.

    Do it!

    20Nigel Roulston  05/28/2007 6:14:40 PM  Remember Garnet ??

    Sounds like a good idea to me (I thought it was a good idea the first time). For the highly sought after "SMB" market, having a single server (or even just single "platform") solution would be a huge win - while I love Websphere, it's not the cheapest product going around and it's overkill for a lot of people (yes, before you tell me, I do know about Tomcat et al).

    21Andrew Price  05/28/2007 6:35:02 PM  Remember Garnet ??

    The advantage I saw with garnet was it had the potential to provide a reasonably productive web development environment with no extra components that we had to learn/deploy. So I hope anything you do hits these points too.

    I really don't care about the syntax it is expressed in (LotusScript/Java/ECMA etc.) since those are really very interchangeable (just flog the developers a little harder) it is the object model that takes time to master.

    Why I have never been excited about J2EE is that it is simply insanely complex. ASP is insanely locked in to M$ imo. Raw Domino requires a lot of effort to produce good results. Garnet looked like it would avoid all of these issues.

    >>I can also assure you that Ed Brill will be an enthusiastic supporter of any feature set that he

    believes will sell more copies of the product.<<

    I'm sure he will. He just made a remark once about people a his funeral blaming him (inaccurately) for garnet being canceled. I was attempting humour. :)

    22Erik Brooks  05/28/2007 8:15:27 PM  Remember Garnet ??

    @20 is dead-on. A single server (or single platform) solution will be huge for SMB, and give more public credibility to Domino as a web development platform in-general. If the integration with Designer was as elegant as Microsoft's solution, then IBM would hit a home-run.

    Personally I could care less about keeping around 2.0 compatibility. I've avoided building Domino apps with this feature set like the plague, since with Garnet getting ripped out of ND6 it seemed clear (at the time) that IBM did not want to continue supporting it.

    23Nathan T. Freeman  05/28/2007 11:08:47 PM  Remember Garnet ??

    Hrmmm... though I was extremely disappointed from a marketing communication standpoint when IBM cancelled Garnet, I honestly never understood the appeal from at development standpoint. Updating the Servlet engine is obviously a good thing, but JSPs seemed like another way to shoe-horn a text-based solution into Domino, which was always a great way to build in a relatively visual environment, with forms, views, outlines and framesets.

    I've told you privately my own thoughts on how Domino should handle HTTP generation in the future, and obviously more tools in the arsenal will never HURT. But really, I don't see what the big deal is. Just give us better integration with the already great tools from other groups within Lotus & IBM (*cough*Connection&Portal*cough*) and help us build better user experiences, not different kinds of backend code.

    Oh, and here's the first step in the thing I described to you privately...

    { Link }

    24Nathan T. Freeman  05/28/2007 11:10:53 PM  Remember Garnet ??

    Oh, and for those thinking of SMB targeting... where are the 200 person shops who want to build big Java servlets and code in JSP, but can't add a server layer to their delivery architecture?

    There's nothing wrong with multiple products to do the work, as long as the integration is good. The problem only comes when you want to charge the customer 15 times over for the functional set. *cough*Microsoft*cough*

    25Kerr  05/29/2007 6:11:12 AM  Remember Garnet ??

    @Bob, though I'm no fan of LotusScript if you are thinking about it, especially in the context of the Bean Scripting Framework, you should check the work Sun did with Semplice (Sim-pleech-ay), visual basic on the JVM. I think it's mothballed now, but I'm sure the source is available for a fee ;)

    Old blog entry by one of the developers: { Link }

    @Nathan, the main things I want from a Garnet like tool is better integration with Domino than I can have with a separate Servlet container and exposure to more modern web dev techniques within Domino. E.g. I'd like to have agents that can hook into long running processes and user sessions so I don't have to initialise everything from scratch. That agent might actually be a Servlet under the covers, but I could specify it as the WQS agent in a form. Things like that.

    I've also experienced problems in large orgs where the Domino and WebSphere admin teams do not talk to each other. Trying to get a hybrid Domino / WebSphere app running in that environment is a nightmare. The WebSphere part could be living in a different data centre in a different country to the Domino part. It would be very nice to just have an option to turn it on in Domino and not have the Admins go nuts.

    Finally, I think that the question "where are the 200 person shops who want to build big Java servlets and code in JSP, but can't add a server layer to their delivery architecture" misses the point a little. For many places there is no concept of doing hybrid Domino / Java web development. If they put in a JEE server or something like Tomcat then they would not integrate that with Domino, just do straight java web development. It needs to be easier to get the benefits of java web development without dropping domino.

    26Henning Heinz  05/29/2007 7:45:20 AM  Remember Garnet ??

    There is a lot wrong with multiple products except when you run a consulting business.

    Six years is a lot of time. If it is Tomcat I would use it but I am not sure if people were patient enough to just wait for IBM to rethink this decision. Many have probably moved forward (or backward if that fits better).

    I do smell Websphere Community Edition (the thing formerly / also called Apache Geronimo) here and I am not sure if I like that. I tend to vote for make it really big then and use WAS for this kind of stuff then.

    27Nathan T. Freeman  05/29/2007 9:05:45 AM  Remember Garnet ??

    "There's nothing wrong with multiple products to do the work, as long as the integration is good."

    followed by...

    "There is a lot wrong with multiple products except when you run a consulting business."

    Henning, if the integration is good, then there's no need for a consultant to be involved. That's why I set that caveat.

    28Jack Dausman  05/29/2007 9:24:50 AM  Remember Garnet ??

    I am not concerned about backward compatibility, even though there are several Domino applications running servlets. Our shop is pretty much (1) legacy Domino and (2) BEA/WebLogic. So, redressing Domino with current J2EE standards would go a long, long way in bringing it back to the attention of our developers.

    Is there a Back to the Future theme, here?

    29John Head  05/29/2007 9:47:22 AM  Remember Garnet ??

    @25 in most large organizations, few of them would let their application server be on the same physical box as the data server and web server. So even if they were to build Tomcat into Domino, most orgs would not let it run that way. As for the SMB world, many of them are running LAMP on a box with Domino or Exchange an another. Why could they not just connect to the LAMP server for the application server piece? What I want is the ability to configure my Domino server to point to an application server and have them tightly coupled.

    @26 Wait, your using Tomcat right? That means you are probably using LAMP .. which is multiple products/pieces. Seeing as how many people with single desktops are running LAMP, the dig at consulting businesses seems a little flat

    30Hans-Peter Kuessner  05/29/2007 10:02:02 AM  Remember Garnet ??

    Yes, this would be a very useful feature!

    We are doing a lot of web app development on Domino, but we never used the old servlet engine. The reason for that is that the admins of our customers do not want us to put files in the servers' file systems, and they dont want to do it themselves - because they know very little about J2EE/servlets (being Domino admins) and of course because it's a pain to put files to (e.g.) 2 clustered staging servers and 2 clustered productive servers (in the DMZ, where you have no access to!) and restart the HTTP task just to update a servlet.

    We have used WAS with Domino (which is free when used only to serve Domino stuff), but that's also a pain:

    - you have to install this as a separate server software

    - you have to configure it (which is difficult, requires a different skill set and is not very well documented!). Normally we run WAS and Domino behind an Apache HTTP server, which seems to be the only stable option (at least from our experience). So you have to install and configure TWO additional servers just to scale your java agents.

    We - as consultants - are happy with this, as it'c complicated enough... but our customers don't like the idea and normally would just go to some other solution instead of using Domino for those crititical web apps.

    As the agent approach is not very scalable, we would love to be able to just use the pre-installed, standard and default setup of a Domino server with the new, shiny servlet engine - it would be a lot easier to convince the customer's admins to let us do this:

    - No additional installation necessary

    - No additional skill set necessary (ok, you have to upgrade your know how for the new release, but it's still Domino you're configuring!)

    - We can provide a new template of our web app and it will be replicated and installed throughout the intranet servers and/or into the DMZ.

    So we believe it would help not only to sell Domino better, but also to keep customers from using other web application servers for their more crititcal (scalable) apps.

    31Jeff Gilfelt  05/29/2007 10:09:34 AM  Remember Garnet ??

    @29 - I'm confused. Since when has Tomcat (or any JSP/Servlet container) had anything to do with the LAMP stack? I thought the 'P' in LAMP implied the use of PHP, Perl or Python to implement the application business logic. Apache (web server, not Tomcat) is used to serve the pages.

    32John Vaughan  05/29/2007 10:40:54 AM  Remember Garnet ??

    seems to me the biggest problem with the COSE was that you had/have to think about security. the domino ltpa stuff doesn't just appear magically like it does within the context of a domino database. i don't remember now if garnet solved that problem out of the gate, but if you can give us an easy way (emphasis on easy - i know its possible today but was difficult to put together) to get the domino session information, then yeah its a no brainer, this would be great.

    i could see a day when we are working in domino designer in eclipse, and deploying domino applications to the web via Son of Garnet (hehe). groovy...

    33Brian Miller  05/29/2007 11:05:39 AM  Remember Garnet ??

    I'm just thinking that my biggest problems can be solved by this effort.

    If you use JDBC (I haven't tried to get Hibernate or similar to run in the Domino environment - not worth the ajita for me), you can't just instantiate the class and keep referring to it from an agent. The Java security context changes because each agent is completely unloaded by the Agent Manager when it's finished. If we could "fix" this issue by being able to create a Java entity that is persistent as long as the server is up (much like a servlet or jsp), and can be referred to by an any agent at any time, that would totally unb0rk the issues that I have making Domino play nicely with enterprise data. I could even do cool stuff like actually using Oracle's connection pool management when talking to Oracle servers. Imagine that! :)

    So, if you can create servlets, make sure that agents (Java, LS, or otherwise) can talk directly to them, that would be awesome.

    As for the initial thesis, yes - I'd love for the return of Garnet. As well as "LSPs" from above. And, Ruby integration, too. I know that I'm reaching, but if you're going to set the Java core straight within Domino, you may as well do it right.

    Lastly, I have to disagree with John Head (@15, etc.) on this. Everywhere I've worked, Domino has been considered "dirty". People don't like allowing us to integrate with their servers, and we can't put up boxes/instances of our own to use different products. Basically, the only opportunity that we get to use beneficial new technologies is if they not only come with Domino, but they require no configuration and run by default out of the box, as part of the same server instance.

    As a side note, I suspect that this is at least part of the reason why the DB2 integration was such a flop in terms of user adoption. Just a thought.

    34Richard Collette  05/29/2007 11:32:49 AM  Remember Garnet ??

    Definitely!!! Don't worry about compatibility with the older servlet spec or the way Domino supported it. The devil is in the details though. Again, lets try to get towards common designs that work on both the client and the server with a robust development environment.

    1) Include the JEE container on the client side. This sounds like workplace/expediter and IBM is going to fight the seemingly redundant functionality but not from a Domino shop perspective

    2) Include enough JSF, note JSF not JSP, tag functionality to get the job done but without creating redudundant tags. I definitely want a rich text field tag, with the options for rendering you mentioned in a previous post. I don't need things like iterators, ideally, because Domino should be implementing standard collection/iterator interfaces. Shouldn't I just be able to bind other "standard" JSF form components such as checkboxes, fields, etc. to Domino data? One would hope. Perhaps newer features in the resultset/rowset/dataset interfaces added since Garnet would allow for this? Wouldn't it be great if an interface designer could create Domino based interfaces with very little ramp up time.

    3) Include a robust JSF page editor, which may be a no brainer with the work that Mary Beth is doing, hopefully, with Eclipse and Designer. Opening different toolsets and cutting/pasting code into Domino the way we have had to do traditionally with Java/JSP is not a reasonable implementation.

    4) Please consider bundling facelets "awareness" in the designer so that we don't have to deal with the impedance mismatches of JSP and JSF, but you'll have to include JSP to remain container compliant. I know the components team went ahead and created their own JSF engine (not sure if engine is the right terminology here) but facelets was already there, gaining momentum and it works.

    5) Make sure the java environment stays started, loaded and/or cached to avoid penalties of reloading libraries

    6) Use "standard" class loaders. Java applications should be completely unaffected by and unaware of (except where they want/need to be) the loading of class libraries from a .nsf

    7) Allow the class libraries to be shared across databases.

    8) Provide the same kind of "compile all" functionality that we have with LotusScript.

    35Maureen Leland  05/29/2007 11:57:57 AM  Remember Garnet ??

    @34 - I'm not Mary Beth :-)

    The LCD team did create an JSF editor for its XSP format, which is effectively JSF that has been detached from JSP and that supports JavaScript (server side as well as client side). The LCD runtime will also run client side in the fullness of time. And we have/will have better Domino integration than pure JSP, which should make it easier to use.

    So I'm not sure Domino Designer really needs a JSP editor, since in a world where LCD and DD coexist in the same Eclipse, we have the right function anyway. And with Domino Designer in Eclipse, anyone who truly wants a pure JSP can just switch to the Java perspective.

    Make sense?

    36Kerr  05/29/2007 12:29:28 PM  Remember Garnet ??

    @29 "in most large organizations, few of them would let their application server be on the same physical box as the data server and web server."

    You just described Domino; application, data, and web server all on one box.

    The point is that if it's a built in feature of Domino then I can expect to deploy the feature in an nsf. Quite what the server does with it at that point is only of academic interest to me.

    "So even if they were to build Tomcat into Domino, most orgs would not let it run that way."

    Well I can see that if you've got a bunch of mail servers you're not going to turn on the http or diiop tasks on them. So what? Does that mean that the diiop and http tasks shouldn't be in Domino? No. Similarly I'm not going to run my Domino app servers as mail servers. This is common practice. If the Garnet like task is presented as "Install Domino. Now install Tomcat" then you are correct, it's not going to go anywhere. But that's not what I think is being proposed. It's just another feature that can be turned on. Turn it on on your web app servers, not on your mail servers.

    "What I want is the ability to configure my Domino server to point to an application server and have them tightly coupled."

    In your scenario that might be the best way to do it. Great, I hope they have the ability to specify any external java app server for those that can do that and can get benefits from that architecture. All I'm saying is that there are a great many places where that architecture won't get off the ground, either because it's more complex to set up or because they would be managed by entrenched admins that don't talk to each other.

    37Nathan T. Freeman  05/29/2007 1:43:31 PM  Remember Garnet ??

    "because it's more complex to set up or because they would be managed by entrenched admins that don't talk to each other."

    I know there's some degree of precedent here among users of IBM software, but why is this always the assumption when talking of multiple-server technologies in the Lotus world?

    I mean, if MICROSOFT can figure out how to get IIS to front-end for Sharepoint in an Active Directory environment in a "click this checkbox" format, surely so can IBM, right?

    We ask for everything under one package because we assume that integrating the multiple packages is a big nightmare. But it's only that way because IBM doesn't make it a priority to make the integration totally turnkey. Microsoft DOES make it turnkey, which is why customer don't mind the prospect of installing 10 different servers. They object when they see the invoice for 10 platforms, not because it takes time and expertise to connect them.

    38Hans-Peter Kuessner  05/29/2007 2:08:42 PM  Remember Garnet ??


    I don't think that the complexity of settings up several products to work together is the problem. Even if this would function in a "click this checkbox" format, it still would require someone to install a separate software on one or another server.

    And from my experience most admin's won't do this ("that's not my business" / "that should be done by...."), and/or the companies' IT strategy state some other software as the standard to be used, or the IT wants to discuss what the standard is or....).

    On the other hand, if you just have to enable the separate feature we don't have to argue about this that much.

    As said by Brian above (33): Domino is considered to be "just e-mail" and/or "dirty" at a lot of IT departments. As soon as we have to install additional software products those IT departments tend to use "a 'real' database/app server/whatever" for the solution instead of Domino. So these projects are either blocked or done using other technologies (e.g. SAP/Netweaver etc.). Sadly that's no theory, but has happened to us more than a few times. Even for customers who rely on Domino for critical apps.

    39Axel  05/29/2007 2:32:49 PM  Remember Garnet ??

    It certainly would help integration at the server side. As NSCO.jar is quite slow. Thats the real problem with Domino/Tomcat integration. I have seen one hack to connect with local RPCs directly to a Domino Server. This saved a not small project. I heard rumours that certain blogger who receives a lot of comments gave the tip as a consultant btw. The performance gain can make a huge difference in yes-no decisions like "Should we use Domino for this app".

    Like others I think that 2007 just using Servlet/JSP would be a half hearted solution. The world of Java Web Frameworks has moved and is moving all those years. Some will disagree, but from my pov it hasn't moved without a reason. I have seen JSP monsters and struts1 monsters. Now I am coding an app with JSF and its way better than I feared. Maybe Lotus could think one step further and also offer some extra-Domino add ons for one of those really usefull existing Webframeworks out there? JSF or Struts2 as Wicket, Tapestry3, Tapestry4, Tapestry5 or Grails might be too bleeding edge concept-wise.

    Those frameworks are not for fun, but they bring real productivity gain for the code producing man.

    And once started you may also create some Dependency Injection framework as that can't be a bad idea.

    Just with some free-willy-web-scripting facility be it JSP or LotusScriptServerFaces it becomes very easy to create hard to maintain code and that might result in more work & frustration than to learn a bunch of new concepts in Lotus-managed doses. You should not become interface21 with new annotation based aop-ish concepts every 3 month or so, but I think that a few proven innovative frameworkesque elements are needed to compete with ASP.NET and others.

    The Webservice story is also important. For example Axis2 certainly is again a progress in productivity and performance. Would be also great to have that in Lotus possibly with some fancy LotusDocumentToSoapMessageBodyBinding.

    40Kerr  05/29/2007 3:33:34 PM  Remember Garnet ??

    "As NSCO.jar is quite slow." Does anyone know if this is still the case in ND8? I had to drop remote corba access on a project like a ton of bricks when we found just getting a handle to a (large) view was taking several seconds and also tying up other access to the server to boot.

    @nathan, "but why is [it being complex] always the assumption when talking of multiple-server technologies in the Lotus world?"

    Well it will be, even if it's pretty straight forward by IBM standards. Unless you limit to a very specific app, like for the DB2 integration, then there is choice. If there is choice then you have to configure options, the more choice the more complex it gets. Microsoft gets away with it by limiting choice or by offering an illusion of choice.

    Still, if it could be made painless then that would be great, but it only solves one half of the problem. I live with the problem of having to deal with two sets of admins that don't talk. Unless this can be made to work in such a way that the Domino admins don't have to touch the java app server and the java app server admins don't need to do anything funky, then it's not going to fly.

    Going back to Axel, "I think that 2007 just using Servlet/JSP would be a half hearted solution. The world of Java Web Frameworks has moved and is moving all those years."

    You, my boy, have hit the nail on the head. Just having Servlets/JSP on the server does not give anything like the integration that we need. What features would I like to see? Well that's a whole other post and I've not thought about it in enough detail to really work it out, but I think it will involve completely rethinking how serious web application development is done with Domino.

    41Nathan T. Freeman  05/29/2007 4:08:58 PM  Remember Garnet ??

    @the last 3 responses...

    So who administers the IIS and Sharepoint servers in an MS shop where these are tightly coupled? Are they different people who never talk?

    It just seems weird to me to advocate a weak architecture simply because IT departments have lousy business practices.

    42Craig Wiseman  05/29/2007 4:33:28 PM  Remember Garnet ??

    @41 - advocating a feature-rich, integrated, single-server environment <> weak architecture.

    43Pejman  05/29/2007 5:48:32 PM  Remember Garnet ??

    What a surprise to hear again the Garnet word. Your commitment is the best signal to us and I hope that Domino will be seen as a real web app platform in few years.

    To not fall in the pitfall of the J2EE world, we should take a look at the key points of the Domino platform :

    - easy install (less since db2 integration)

    - fast dev / easy deploy (ui oriented dev platform)

    - and many built-in functionalities : security, replication, directory, archiving, messaging, transparent persistence...

    The J2EE world is exactly the contrary :

    - too complex (long learning curve),

    - not integrated (many frameworks)

    - verbose (thousand lines of code)

    Example : When a Domino developer creates a Form, he is not focused on the presentation framework or the data mapping. This is transparent. He is more focused on "what to do" than on "how to do".

    But simplicity is not enough and a lot of critic app had needs than Domino could not provide :

    1- relational database

    2- complex business implementation

    3- layer separation capabilities : same app split between separate machines (HTTP>EJB>JDBC). sometimes a pre-requiste in some bank web infrastructure

    The support of JSP and Servlets are very interesting but having extra capabilities (see below) will be important to provide (as easily as the Domino world!):

    - a real UI oriented dev platform (not writing all the code of a JSP)

    - an easy way to control app flow like struts or spring mvc

    - easy data mapping and transactional capabilities (hibernate, spring...)

    - have a very low coupling level between layers by integrating a kind of AOP

    - To have access to a lot of pre-defined presentation components (like sweetdev framework)

    44Jeff Gilfelt  05/29/2007 5:57:26 PM  Remember Garnet ??

    @41 - I don't see this as a weak architecture at all. What IS weak is the Sharepoint - IIS analogy. IIS isn't so much an integration option for Sharepoint but a requirement for the product. As far as I'm aware it will not function without it.

    45Ian Randall  05/29/2007 9:48:45 PM  Remember Garnet ??

    I think that it would be brilliant if IBM reintroduced Garnet, as it would send a clear message to the market (and to the Domino community as a whole) that IBM considered Domino to be a strategic Web development platform again.

    I would also like to see IBM make Domino a viable server for Connections, Quickr & Activities or integrate the WebSphere Application Server into the Domino if you must.

    If IBM is serious about increasing their focus on the SMB market in the future, then the option of a single server offering for entry level SMB's would be a clear marketing advantage.

    Also offerig the choice of more losely coupled integration with Tomcat and WAS should be also considered for larger shops, as you don't want to alienate organisations and developers with a preferece for these platforms.

    Backwad compatibility is an issue to consider, as any erosion of this will open Lotus to competitive criticism and hurt their loyal user base.

    Finally providing a kick-ass Integrated Developmen tEnvironment that incorporates state of the art web development tools will complete the picture and alow developers to take full advantage of the new Eclipse platform. (We need something more than we have to justify all those extra oveheads in the Notes 8 client).

    But by all means keep the Garnet name. New users won't care what you call it, and loyal Lotus users will appreciate the subtle message even more.

    46Nathan T. Freeman  05/29/2007 10:50:13 PM  Remember Garnet ??

    Well, I guess a tightly coupled, single package server with 3-4 year major upgrade cycles was considered out of fashion these days, but I guess I was wrong. I guess it's the loosely-coupled, standards-based, cross-platform, cluster-scalable architectures that we want to avoid.

    Thanks for clearing that up, gang.

    47Craig Wiseman  05/29/2007 11:43:14 PM  Remember Garnet ??

    @46 - Looking at the Sametime RTC gateway, Commonstore, Workplace Services, etc. I see little to make me believe that IBM can deliver your vision in something workable and palatable to Smbs.

    Looking at Notes/Domino, I see a lot to make me believe that IBM can deliver something like Bob's vision that is palatable to Smbs.

    Cynical or Practical? I'm not sure.

    48Russell Loewen  05/30/2007 12:30:43 AM  Remember Garnet ??

    I thought I would add another voice to the JSF support I have seen. Until a year ago I always felt there was a huge gap between the speed of development on Domino based web projects vs. the estimates my java-bigoted coworkers would toss around. That has changed, and Spring, Hibernate, and JSF/Facelets are the reason. We get work done almost as quickly as I used to in Domino, and it feels a lot less like we have to work around the parts that are locked in.

    That said, replication and security offered by Domino still beat the pants of anything else. If there was a JSF/Facelets layer on top of Domino I think it would be a real winner by comparison again.

    49Sylvain Galineau  05/30/2007 1:49:10 AM  Remember Garnet ??

    Garnet never was politically incorrect, except to those who used it as a tool for their own - largely internal - ends. What a waste of time.

    50Michael Bourak  05/30/2007 2:28:37 AM  Remember Garnet ??

    An update to the servlet engine would certainly help (for the sametime next gen to not require a WAS/DB2 backend for exemple) but I'm not sure Servlet and JSP should be the "next" or "new" way of developping Domino apps.

    JSP support, a jsp designer ! I'm more with Maureen there. If LCD became supported on runtimes other than portal (I mean Websphere app server or Tomcat), then we have our "designer" for the J2EE world

    What I think is much more important is to improve the robustness and performance of the Java API (remove the local thread init /term, built in a datasource and a connection / object pool etc...) and provide tighter integration with free (Tomcat) and IBM (WAS) app servers.

    I agree with Pejman, please do not bring "J2EE" complexity to Domino but enhance Domino to be more powerfull by itself (NSFDB2 integration is a great step...a major effort in this area for V9 could bring even more power, remove some domino limits etc...) and cohabit more with J2EE or .Net infrastructures via powerfull, fast and rock solid APIs.

    On a related topic, some J2EE features could be mimic in Domino. For exemple, J2EE filters. I know that in Domino you have DSAPI but they require C coding which is ...well...providing Domino filters in LS or Java could be extremelly valuable. Same goes with the ability in J2EE to have session to store object. I would love to have a @SetSession("MyObjectName" ; "MyValue")...To make the long story short, we have many "good" ideas to borrow from J2EE but implement them in a Domino way.

    51Axel  05/30/2007 3:09:55 AM  Remember Garnet ??

    Some thoughts about what helps to make development in new frameworks more productive:

    - Model View Controller separation of concerns.

    From what I've heard that was missing in Workplace Services. Theoretically it would be "easy" to compose and send an email straigth from some scriptlet in a LS-Server Pages, but that very easily will create headaches later on as its bad separation of concerns. To my suprise this works well for me in JSF. Define declaratively the pageflow in faces-config.xml and the rest of the controller functionality in action, actionListener methods of the backing beans (mostly 1 backing bean per jsf page).

    - a set of good designed set of tags. I admit that its kind of annoying to learn those tags (and their hidden secrets), so there shouldn't be too many of them but a set of effective ones. Maybe offer some facilities for developers to create their own. Developers might catch interest to create aditional libraries openSource.

    People will still come up with "please no new language" and "this takes away flexibility" arguments, but I can assure you that people will shoot themselves in their shoes when you offer them a full blown LotusScript or Java scripting facility based on Server Pages.

    - well thought, declarative binding of the controllers to the backend code. Dependency Injection has proven to be highly successfull for that task. Its not only Spring or Guice but JSF and EJB3 have adopted Dependency Injection features for good reason.

    - some easy to use facility for integration testing in the IDE.

    - easy deployment.

    - I am sceptical about huge efforts in areas for which Domino isn't designed for (transactions).

    52Michael Bourak  05/30/2007 3:33:55 AM  Remember Garnet ??

    @51 Sorry, but all these "artifices" (Dependency injection, etc...) are all there BECAUSE of the J2EE complexity. About all of the frameworks goal is to simplify J2EE dev which, without them, is tedious and slow.

    So no, I don't want this to happen to Domino. I think we can deal with much more mature and well "thought" features (instead of running the "we have EJB3.x support race that all J2EE app vendor tend to follow). We, as Domino developpers, have to keep concentrating on the application we build, not on complexity of the infratructure we develop on or the hundreds of xml files we have to manage to keep Spring and Struts working together.

    PS : that does no my I don't like J2EE or want tighter intégration between Domino and J2EE (see my previous post). But the productivity and simplicity of Domino should be kept as a number on goal, otherwise, Domino will always be "in late" compared to Websphere, Tomcat etc...if we run the "feature" race.

    PS2 : a good exemple of this is if you look at the administration UIs of Domino and WAS. In Domino, all (or much) of the adminsitration forms contains fields that are "self explanatory" or at least deal about a "business" feature. On the opposite, WAS admin terminology is all technically oriented and has become a Frankenstein over the years ("enable EJB3 transaction support using XTP protocol V2.3 over managed transaction beans").

    53Tony Tipping  05/30/2007 3:44:42 AM  Remember Garnet ??

    When IBM did a U-turn and pulled Garnet I was so furious I came within a micron of retraining as a Microsoft developer. If you (or anyone else) breathes life back into this, then a lot of developers will hold you (or whoever) up as a hero.

    If I get to be able to write JSPs within Domino, especially with a framework such as Struts (stop that tutting) or JSF, then I'll be delighted. In fact, I'll be so delighted I will personally buy a bottle of champagne for the Lotus/IBM person that implements full J2EE in Domino. (That's just the ONE bottle.. ;-).

    Of course if IBM dangles this as a promise and then takes it away a second time, there'll be no hiding place...


    54Andrew Price  05/30/2007 4:13:36 AM  Remember Garnet ??

    I think Pejman nailed my own point of view nicely in @43. Well said. :)

    55Jeff Gilfelt  05/30/2007 4:33:50 AM  Remember Garnet ??

    I don't think Bob or anyone else is advocating that out of fashion J2EE constructs like JSP should become the focus for Domino devlopers. Domino's strength is rapid and visual application development and enhancements in this area have already been hinted upon in this blog.

    But at the end of the day, Domino needs a mechanism for back end scripting that offers persistance, muti-threading and high performance. Agent manager is almost completely inadequate in this respect. I think including a JEE spec servlet container would solve a lot of problems people are currently having add real value to the product.

    56Fredrik Stöckel  05/30/2007 5:24:04 AM  Remember Garnet ??

    @50, I agree. Borrow and implement great features from other technologies into domino but do it "the domino" way (I really like your @SetSession example)

    The current servlet engine isn't "good enough" and is very outdated in my opinion, it truly deserves an upgrade. But I don't know if it's a good idea to re-introduce the complete "Garnet" jsp/application development paradigm from within DD (even if a replicating J2EE environment is kind of cool and unique).

    I’d like to see better functionality for building web-applications in Domino such as

    - Support for Writable/accessible session objects,

    - “low” level data only API for web-applications

    - Some sort of “application” Definition Directory

    (these nsfs are members of this application and each member know to which application it belongs to and know about the other members).

    - Better support for 3:d party integration (Tomcat/WAS etc)

    and so on...

    57Pejman  05/30/2007 7:16:35 AM  Remember Garnet ??

    @52 >> Sorry, but all these "artifices" (Dependency injection, etc...) are all there BECAUSE of the J2EE complexity

    Michael, I agree with you but it gonna be quite hard to hide this complexity and staying in a open standards

    IBM / Lotus succeeded to integrate the relational capabilities in Domino, they have now to go further....

    It's a huge challenge !

    58Axel  05/30/2007 7:52:44 AM  Remember Garnet ??

    .NET and Java/J2EE copy their competitors ideas all the time. For example JSF borrows heavily on ASP.NET and annotations in java have a precursor in .NET. I only want to see Lotus steal more pratice-proven ideas and - of course - adapt it Domino friendly to its own environment.

    Dependency Injection is actually a simple and at the same time effective idea well known for its broad applicability certainly not confined to the "complexities of j2ee". Look at the bottom of that page -> { Link } . I actually have used programmatic dependency injection for a Lotus Script class for Domino 6.

    59Bob Balfe  05/30/2007 8:09:57 AM  Remember Garnet ??

    To go even further, it would be great if we had alignment with Portal also. Including the Portlet container (as we do in Expeditor) would mean Domino could host full blown composite applications that include local portlets and remote portlets.

    60Charles Robinson  05/30/2007 8:55:17 AM  Remember Garnet ??

    "@9 - Re: IIS and ASP, I could rant about how they really only make it *seem* easier, by hiding complexity at the cost of runtime performance and security...but I won't."

    I don't know enough about IIS or ASP.Net to comment. However I do respect your experience enough to take that at face value so I won't argue with your assertions. All I'm saying is that from a developer's perspective all I have to do is focus on the solution at hand when I'm using ASP.Net, and I do everything in a graphical and easy to approach manner. With the current Domino implementation it's not quite so user friendly. So whatever you do, you need to reduce complexity while you're moving things forward. And if you can give us the ability to program whatever this new thing is with LotusScript, so much the better! :-)

    I'm with many of the other people here in that I've stayed away from Java (particularly J2EE) because it's just so complicated. Paul Calhoun said during the Java Jumpstart at Lotusphere that a LotusScript developer should expect it to take 6 months to get comfortable working with Java and a year to be proficient. I'm still not convinced it's worth the effort, particularly since Java isn't very well integrated into Domino. If I were using WAS and/or Portal it would definitely make sense, but I'm not. There are lots of developers like me out there who would like the functionality offered by something like Garnet but we're resistant to learning another language at this point in time.

    61Michael Bourak  05/30/2007 9:02:30 AM  Remember Garnet ??

    @59 Provided that we have a MUCH simpler way to deploy apps and a MUCH slower growing list of required & recommended fixes , I agree ;)

    PS : ok, I admit, my experiences with XMLAccess & ReleaseBuilder are not the funniest of what happened to me recently...I'm too tainted with "Replace Design" simplicity to return to batch mode and ant scripts ;)

    62Pete Lyons  05/30/2007 10:53:19 AM  Remember Garnet ??

    Boy do I ever. It was the first time I ever had working code ripped away from me for political reasons. Sadly, it was the first of many such disappointments of my IBM career. I still think Garnet was a good idea, but then again I though the Workplace mail server was a good idea too so what do I know.

    63Felix Binsack  05/30/2007 12:49:48 PM  Remember Garnet ??

    Yes, yes, yes - please do so

    (and continue to work on the http task and rich text / mime issues)

    64NeilT  05/30/2007 12:51:04 PM  Remember Garnet ??

    I'm sure we all know the phrase "Popcorn Notes" and where it came from. Well J2EE has about as much to do with a bowl full of broken glass as Notes does with popcorn. They are chalk and cheese. One is a back end enterprise solution for high performance websites and the other is designed to get the bulk of your deparment workflow done with no fuss and little developement.

    Naturally it is horses for courses and Domino has come a long way from it's roots. However it is still an ultra RAD delivery environment which gives exceptional value for money (if you use it instead of whinging about an expensive mail system).

    However when you get to the enterprise level you have some gotcha's like the project where we found, after the customer had started buying $10M Z990's that Domino would not correctly interact with websphere. Run a servlet under WAS and use the Websphere connector and when a webqueryopen was called, Domino spawned a new JVM of it's own which could not interact with WAS. Nasty. Domino running HTTP stack which crashed regularly and on the junkpile awaiting a Websphere replacement.

    If Garnet is going to happen it needs to happen in a Domino way. Point and click servlet genearation which will seamlessly work in Any environment that Domino connects to.

    Otherwise it'll be yeat another anachranism.

    Play to it's strengths, don't try to wrap it into some arcane model which has 5% of the ability for 950% more effort.

    The discussion raises hope though. However, the way that it is implemented will tell us whether this is a real extension to Domino to give it life and scope, or whether this is yet another path out of Domino in the long run.

    I'd prefer the former thanks.....

    65Richard Schwartz  05/30/2007 3:20:17 PM  Remember Garnet ??

    @13: The evolution of VB.Net was indeed a gutsy moved on Microsoft's part. The brilliant part was keeping the name "VB". That's what got past the resistance of developers to learning "a whole new language", even though with VB.Net they actually did have to learn all the new concepts that a new language would have required them to learn! More importantly, though, it got past management's resistance to paying for developers to learn a whole new language. A lot of managers wouldn't want to pay their VB developers to learn Java, because they'd be afraid that their VB developers would jump ship or want a salary boost once they become Java developers. And I need to point out that MS has not done badly at all with VB or VB.Net, despite the fact that it is one of the "proprietary aspects of the platform".

    66Curt Carlson  05/30/2007 5:29:33 PM  Remember Garnet ??

    Just do it!

    67Bob Congdon  05/30/2007 7:31:23 PM  Remember Garnet ??


    A few more details: Domino 4.6 got its original servlet engine from the IBM ICS web server code. It was based on the very old servlet 1.0 spec. When we were working on R5, the ICS servlet code was dead and there weren't any real options to upgrade to the 2.0 spec. Rather than let servlet support die, we invested a few weeks of dev and test to redo the servlet engine to support the 2.0 servlet spec. It was a very small part of R5, never really intended to live beyond that.

    The Domino WebApps work in R6 that eventually got called Garnet was done in parallel with a rewrite of the Domino HTTP stack. The new stack supported a plug-in module architecture that was very similar to Apache so it was easy to build a connector for Tomcat. That's what appeared in the Beta. At some point a decision was made to switch from Tomcat to Websphere's servlet engine. But this was no trivial effort. Websphere's engine was not particularly modular. I think this was Websphere 3.5 which was pretty unwieldy code. Trying to merge Websphere's engine into Domino was very costly -- one of the factors that got Garnet cancelled. Some of the other factors were political. The whole thing was handled badly and some of the public statements about Garnet being some sort of "Frankenstein" were silly.

    I had the onerous task of disabling the Garnet code and porting the old servlet engine into the new HTTP stack for R6. I think it was my last Domino code submission -- not my proudest moment as a developer.

    I work for those "other guys" now so I'm probably the last person to give advice about what you should be doing. I think it's long overdue to upgrade the servlet engine to something modern. Beyond that, I'd be careful what J2EE technology to embrace. The XSP/JSF runtime that Maureen mentions in @35 could be easily integrated into Domino through a new engine.

    68Bob Congdon  05/30/2007 7:56:42 PM  Remember Garnet ??

    @65: VB is coming back. See { Link }

    Dynamic languages including VBx, IronPython and IronRuby are supported by the Dynamic Language Runtime (DLR) in Silverlight. Very cool stuff.

    69Ed Brill  05/30/2007 9:02:16 PM  Remember Garnet ??

    @67 I don't want to argue the details in public, but your version of what happened doesn't entirely match up to mine. We agree that there were political factors and as such, it's likely that I was kept at distance from some of the engineering details (and likewise, you would not have been aware of some of the brand management aspects). I never heard of any effort towards merging WebSphere's engine into Domino, for example.

    The word "frankenstein" was not my invention to characterize the project, but one that made sense based on what I knew.

    70Ed Brill  05/30/2007 10:11:17 PM  Remember Garnet ??

    As a follow-up, I want to make it clear that I'm not trying to question Bob C, who as an engineering lead would obviously know that the team was working with the WebSphere engine. It was just news to me -- five years later, through a blog.

    71Turtle  05/30/2007 10:51:42 PM  Am I allowed to say "sh*tstorm" on here?

    Bob, I remember well the fecal hurricane unleashed when it was announced that Garnet wasn't gonna be part of the next Domino release. Honestly, I think that one announcement was the biggest single boost to, as the outraged rushed to hack a replacement. Bruce can argue with me on this one, but I remember talking with Nate in the CLP Lounge at length about it and if nothing else, it got everyone all worked up and from those bones the NotesOSS, later OpenNTF effort really got its steam up.

    By the way, I publicly announce here that the current iteration of Weightless Dog will be the last one using IBM/Lotus Domino.

    I have seen the future, and it is LOLCODE!

    { Link }


    72Bob Congdon  05/31/2007 12:18:41 AM  Remember Garnet ??

    @69: Ed, I mentioned the WebSphere servlet engine effort because Bob Balaban had mentioned that lots of people assumed that it would happen. The decision to move to the WebSphere engine added substantial risk to the R6 schedule. It certainly wasn't the only factor that went into the decision to drop Garnet from R6. (I know more than I've said but I'll leave it at that).

    My objection to the word "frankenstein" (I believe the term came from here { Link } ) is that it was used as a pejorative to dismiss Garnet as some horrible hack. On the contrary, it was a merger of two cool technologies.

    No one called the Domino web server a "frankenstein" because we merged Notes and web technologies. No one is calling the Notes 8 client a "frankenstein" because it merges the Notes client code with Eclipse. Adding Garnet to Domino wouldn't have turned it into a frankenstein any more than adding servlet support, Web Services support, agents, etc. did. It was just another set of tools to allow customers to build Domino web apps.

    73Mike Meister  05/31/2007 3:44:52 AM  Remember Garnet ??

    I would be happy to find a "fully functional" servlet engine in my domino environment. And it would be the second good idea after "going to eclipse" with R8. But it would also be nice if someone could get all the recycling problems handled


    Hope the Garnet implementation improves the Domino Object Handling for standard objects like Document, View and Database.

    Let's see what the future brings.

    74Michael Gollmick  05/31/2007 3:51:11 AM  Remember Garnet ??

    I remember that September and your DNUG Workshop in Frankfurt very well.

    I have to admit - that times, I did not really get the scope of your ideas and demos. However I was deeply impressed what's going to be possible. And then? All we got was COSE.

    Having a J2EE Container in Domino is still a wonderful idea. And yes, I would really like to have it. Not only to just get the final step to really use Java in Web applications but also to have a more stable and much more controllable http output. I think of such wonderful opportunities like url-rewrite, html-parsing, even html-converison, even my own implementation of a request cache could be possible. Having such a feature would be a quite wonderful idea indeed. Well, maintaining existing servlets may be useful but in fact I don't expect it to be. Possible solution - let the Administrator decide between COSE and TCAG (the codename after Garnet), if that's a possible way? We have used COSE in R5 times and had one server stil using it on D6 - however at the moment we're not using it. For me personally it would be fine to remove COSE support in a future release.

    Well, the idea of storing the code in .nsf would be a perfect solution for distributing applications - from the ISVs view it is simply so easy to have the option to putt your whole application into an .nsf for distributing, installing and maintaining it even on a couple of servers.

    75Tim Siney  05/31/2007 11:24:27 AM  Remember Garnet ??

    Never mind J2EE containers in Domino, I'd be happy if we could have more that 32k of text in a field. Its 2007 people! ;o)

    Anything which makes developing web applications in Domino more straightforward and robust has to be welcomed, I wonder if it is to little to late though - domino as a web-dev platform does seem like a dead duck compared to other products out there. If this is to be succesful it needs to be implemented soon, and not 2 or 3 years down the road. But like I said, definately a step in the right direction.

    76Sean Murphy  05/31/2007 11:28:02 AM  Remember Garnet ??

    Sure do remember Garnet as well as the firestorm that followed.

    Call me crazy but we built and still run a few large hybrid domino nsf and servlet apps and it has been no small development and admin challenge. It would be nice to have debugging :)

    77Pejman  05/31/2007 11:46:15 AM  Remember Garnet ??

    We should also take a look on ESB solutions for integrating some of their services

    { Link }

    78Nathan T. Freeman  05/31/2007 3:27:24 PM  Remember Garnet ??

    "I'd be happy if we could have more that 32k of text in a field."

    You can. NotesItem.Summary = False

    That's been possible since R4.

    You just can't display that field in a view.

    79Craig Wiseman  05/31/2007 3:36:12 PM  Remember Garnet ??

    @78 - Exactly. Then do a computed field that calcs the first 30k of the other field and IS summary. That way you can display the first 30k. And I really hope you don't want to display more than that in a view....!

    80Axel  05/31/2007 4:25:56 PM  Remember Garnet ??

    @77 excelent point. Or even better create a Websphere MQ Lite for Domino. Or integration to ActiveMQ. The Geronimo/WAS community edition guys use it (why not Domino?).

    Once I sat in a project in an organization with excelent MQ Series experts. It was a good solution to integrate with mainframe systems. There are plenty of uses for messaging solutions.

    Why not add some easily administratable JMS connections into Domino? The icing on that cake would be a Message Driven Beans like approach to keep clients automatically informed if something interesting for them happened asynchronously in the backend.

    Of course with a modern Servlet Engine openSource aficionados could add some jars and code some stuff to connect to such an messaging infrastructure.

    And as Bob said the Webservices story... Domino6 and Domino7 has made it really easier to write Webservice consumers (clients) in Domino. Still its a bit of a black art where you end up using lots of low level Java stuff like reflection, sax parser, jakarta httpClient. What if there were simply axis2 available and on top of it some JAXB like LotusScript-objects-to-SOAP binding framework for webservice consumers and producers (clients and servers)?

    81Heiko Voigt  06/01/2007 1:42:25 AM  Remember Garnet ??

    Bob, a very long discussion about how to deal with J2EE in Domino. I think, times have changed a lot since the drop of Garnet. Thinking again about it seems a good idea to me but in talking about all the discussion about how to integrate J2EE components with domino I have only one basic wish for you as the "Kick-Ass Application Development Environment Builder":

    Fix that NCSO.JAR stuff (especially Corba Session Handling) !!!

    I am doing intgeration projects with J2EE since Domino 4.6 and this is what (drove my nuts) was and still is a huge lack in stability and integration capability for Domino in J2EE projects until Domino 7 Web Services came along.

    Fixing NCSO.JAR will help me with Tomcat, WAS, WebSphere Portal , BEA, SAP, RAD, Expeditor, Domino JSP-TagLib, Portlet Factory and Component Designer (which for me is the perfect tool to create JSP/Servlet Components without having to know a lot about JSPs - why not opening it up to just need a Servlet/J2EE Container than a whole portal ?).

    82Kerr  06/01/2007 5:47:14 AM  Remember Garnet ??

    @78, Buzz, incorrect answer. ;) Sorry, I'm being a pedant here, but this is one of my pet feature requests.

    You can't have a *Field* with more than 32k. You can set an *Item* to be non-summary, but there's a subtle difference. You need to access it programmatically and it's a colossal hack dealing with them. And they still can only hold 64k. (Lets not mention the bug in 6.mumble that wouldn't let you put more than about 15K in from a java agent.)

    What I'd like is a new Field type or an option on the Text Field preferences that allowed for any amount of text. In the backend this could work like a Rich Text Field without the formatting, so no access from a view, and it could be split into multiple items when you look at doc preferences, but from the Domino API and on any forms it would behave exactly like a Text Field. Oh and lets not be having any of the spurious new lines or paragraphs that get added to Rich Text when you put large amounts of text in there.

    While we're at it could someone also fix my related pet bug? It's the java newline bug (SPR: PMOL4H8TMS { Link }

    )? ;)

    83Jeff Gilfelt  06/01/2007 7:53:21 AM  Remember Garnet ??

    @82 - I am reminded of a project that I was (fortunately) only superficially involved in that was almost completely derailed by that particular Java newline bug. The workaround? ...write a Domino extension manager using the C API to substitute the appropriate characters on the fly. Not pretty. Hopefully fixing fundamental issues like this have priority over new features.

    84Nathan T. Freeman  06/01/2007 9:11:06 AM  Remember Garnet ??

    @82 & 83 - Wow, all that work just so you don't have to store your >64K of data in a compound document structure that was specifically designed to, y'know, store more than 64K.

    I suppose I could go out on a limb and say "make more than one item with the same name" since this is basically what an RT item does anyway. Why did you think we had getFirstItem and getNextItem?

    Kerr, if you want to be pedantic, you could just point out that you can't have a Field with data on it at all. A Field is a UI construct, not a storage construct.

    I am flabbergasted that anyone would call setting .IsSummary=false to be a "colossal hack." If that's a hack, I would shudder to see what constitutes clean code.

    But hey, don't let that stop you from complaining about matters that have any one of a number of workarounds and are well-documented! 'Cause there's nothing that will move the platform forward faster than focusing on pet issues instead of serious rethinking.

    Oh wait... this is a thread about Garnet... so we're pretty much stuck with pet issues, aren't we?

    85Pejman  06/01/2007 10:59:56 AM  Remember Garnet ??

    @84 right, this is not the right thread.

    let talk about future :)

    Be able to trigger transactional tasks on an event

    on document deletion :

    1) delete some docs

    2) update some others

    3) send an order to application A

    4) send an email to mister X asking his authorization

    if everything ok -> commit

    if not -> roll back

    86Kerr  06/01/2007 12:06:28 PM  Remember Garnet ??

    @84, Aaah, It's all clear now. If I just set summary=true or use a Rich Text field then all my problems with large blocks of plain text will be solved. Or not.

    Nathan, I'm very glad you're not dealing with any of the use cases that highlight the problems with handling large blocks of unformatted text, but please don't assume that the problems are trivial and that feature requests that would remove the pain are some how irrelevant and beneath consideration.

    And why Jeff (@83) deserved to fall foul of your rapier wit for daring to suggest that he hopes fixing bugs are high on the priority list is beyond me.

    87Axel  06/01/2007 12:56:55 PM  Remember Garnet ??

    I still vote against transactions.

    Next time you wish to make the new transaction manager to be 2phaseCommit-ready :-)

    This might be to costly.

    Where's the target market of Lotus Domino?

    Quickly to plan and create department solutions.

    J2EE - because of its many services and the strictly layered architecture of the typical applications - has its strength in applications which are scalable and easy to maintain/extend. This involves a bit more knowledge about apis, patterns and architectural principles from the experts. The initial costs to build an J2EE app might be higher than that of a Domino app. So for department apps Notes has its place. Or prototyping, which might be seen as 2nd class at first sight, but its definitedly a creative process.

    I am all for copying some ideas and specifically better backend integration services, but it shouldn't copy any J2EE feature.

    88Richard Schwartz  06/01/2007 1:15:36 PM  Remember Garnet ??

    @84 Nathan, it's a hack because it does not stick. Its a bundle of hacks because that's what it takes to assure that it does stick, or to assure that you don't have to worry if it doesn't stick. I've done more than enough of this hacking to recognize it for what it is: colossal.

    A checkbox on a text field that just says "Store as non-summary" would make it not a hack, so that you don't have to worry about front-end saves, compute-with-forms, etc.

    And why not rich text? Because it's far too slow and far too limiting. Because when you need a bigger hammer, you don't necessarily want a 50 pound sledge hammer.

    89Craig Wiseman  06/01/2007 1:32:48 PM  Remember Garnet ??

    @88 -

    >> Because when you need a bigger hammer, you don't necessarily want a 50 pound sledge hammer. <<

    ...that pretty nicely much summarizes my thoughts on this thread.... To garnet or not to garnet....

    90Nathan T. Freeman  06/01/2007 2:24:56 PM  Remember Garnet ??

    @86 - Yes, because of course I've NEVER dealt with large blocks of unformatted text in Domino. Nope... that wasn't me.

    @88 - Why am I making this editable on a form, where I need to care about how it resaves as summary vs. non-summary.

    @85 - Ah... stored, triggered procedures on NSF that happen at an API event level, like Trigger Happy does. Now THAT would be simply marvelous. And transformative, too.

    91Jeff Gilfelt  06/01/2007 2:59:12 PM  Remember Garnet ??

    @90 - Unless I'm very much mistaken (to quote a famous F1 television commentator from these parts), re-saving a doc in the UI always clobbers the non-summary flag whether the field is editable or not.

    92Luke  06/01/2007 4:02:17 PM  Remember Garnet ??

    @87: Database transactions are completely seperate from J2EE. To me, any database worth its salt needs to support them - there are a lot of cases in Notes/Domino programming where you need to enusre that multiple documents are updated, or none at all and atomic transactions are the only way to accompish this.

    93Axel  06/01/2007 5:53:49 PM  Remember Garnet ??

    Luke, sorry but I've never said that database transactions are something J2EE specific. J2EE supports 2phaseCommit transactions where you can span transactions over 2phaseCommit-able transactionmanagers of >1 datasource. This synchronization of the transaction managers of the database in kind of a super-transaction manager is defintively part of the J2EE specification and implementations out there.

    Domino lived many years without transactions. And we all don't know how costly it is to add it as an afterthought. Does Domino really need it? Transactions might first appear easy, but if you ever tried to use it in a trading platform with concurrent write access of >1 client the synchronization becomes complicated. There is a trade-off between transaction isolation and the scalability of the application. In the rdbms world you have those optimistic & pesimistic locking strategies, but its not trivial and a compromise.

    94Pejman  06/02/2007 11:06:53 AM  Remember Garnet ??


    Up to IBM to hide the complexity behind !

    commit or not commit ?

    95Kerr  06/02/2007 6:37:51 PM  Remember Garnet ??

    @90. You see, I didn't say you had never dealt with large blocks of text, I said that "you're not dealing with any of the use cases that highlight the problems". You're not having any problems dealing with this stuff are you? I am. Rich is. Other peope are. Now I'm quite happy to admit that you have done some of the most impresive work I've ever seen with a Notes Client, but either you've got some trick that the rest of us mere mortals don't know about or your not seeing the same issues we are. Solving all of the problems and knock on effects is not as simple as just saying, set summary=true or using rich text.

    So if you've got some tip I'd love to here it. I'll check your blog on Thursday ;)

    96Erik Brooks  06/02/2007 10:19:57 PM  Remember Garnet ??

    @88 - "A checkbox on a text field that just says "Store as non-summary" would make it not a hack, so that you don't have to worry about front-end saves, compute-with-forms, etc."

    Yup. That would do it. Or at least an @Formula that does something such as @IsSummary("MyItem"; @False)

    It's not just large blocks of text that are troublesome. It's large text *lists*. And large number lists. And large date/time lists, etc.

    That being said, you quite commonly can work around the problem, though it is a pain. I can definitely live with 32K limits for now if it means some of these big-ticket items will get developed.

    97Axel  06/03/2007 3:34:57 AM  Remember Garnet ??

    An issue with offering a "raw Tomcat" without build in framework is security:

    Regarding potential cross scripting attacks Domino hides automatically escapes problematic user input. Its Web security allready build into Domino. Frameworks like struts or spring does offer save methods too, but raw Servlets/JSP do not.

    As Domino developers are saved from this kind of problems, they might not know enough about them. Potential aditional security issues should be analyzed by Lotus and there should be highly visible information about those issuess.

    98Axel  06/04/2007 1:29:54 AM  Remember Garnet ??

    Rod Johnson, the lead developer of the highly successfull Spring framework, points out as most important reason for the massive adoption of Spring in server side Java, that the J2EE Spec commite knew more or less well about services like transactions, persistence, concurrency, distributed objects, asynchronous messaging, Timer service, naming and security,

    but they had less knowledge about a simple to use application development framework. People from the community, like the programmers of the Spring framework, provided that later. They simply had more experience in application development than the spec members. And their effort made coding, designing and architecting real J2EE applications much more simple.

    Along those lines. If you offer a J2EE Web Container for Domino, it shouldn't stop there. To be effective there must be an application development framework to make coding safer, less redundant and more efficient. And its not so much the language. Simply offer a LotusScript-to-Servlet-Compiler is not the solution. You need a framework which a) shields the developer from certain Web specific complexities and b) integrates as seamlessly as possible into a Domino backend.

    Currently on the Java side there is an interest in Domain Specific languages embedded in Java, xml, Ruby or whatever. The reason is, that such specific languages might be simpler to tackle problems in a certain domain space than to use a good-for-anything language like Java.

    So it might be problematic, too, to declare LotusScript as the ubicutous language to solve anything. This won't necessarily result in simplicity.

    99John Foldager  06/04/2007 7:19:38 AM  Remember Garnet ??

    Super! We really need some kind of JSP/Servlet container - wether it's a 'Domino', 'Geronimo' or the like.

    a) A customer upgradable JVM would be great.

    b) Possibility of creating a custom language syntax (it can be done in JSP pages).

    Still... something that I need A LOT more than this is for IBM to get totally rid of the 64 K limits! --- sorry... I know this isn't "the topic" for now... :-D

    100Kerr  06/04/2007 9:31:45 AM  Remember Garnet ??

    So getting back to the main topic, I think we have two camps here. There is one group that would prefer to see better integration with external Servlet containers / full JEE app servers and there is another group that would like to see more embedded features in the core Domino server.

    I don’t think that these are mutually exclusive; it's just a case of prioritisation and positioning. What would we like to be able to do with an integrated external Servlet container and what would we like to do with more embedded features? Is an embedded solution a Servlet container at all, or is it just a set of new development features?

    Efficient web development does not work like Notes client development and it never has. The laudable goal of write one app and have it work on both Notes and the web only works for the most trivial applications that look horrible. Once you start to want to get more control over the out put you need to do a Notes version and web version, or more likely make some features Notes only and some web only. So do we need to keep using the same design artefacts for both web and Notes development? Do we need, or want, a whole new model for doing web development with Domino?

    I'd like to see an embedded solution that is more comprehensively integrated into Domino than the Garnet of ND6Beta. I'd like to see long running processes and user sessions so that I don't have to load up and initialise business objects again and again. I like the idea of providing a JMS interface within Domino itself, with applications being able to listen for and publish messages to queues, interacting with external systems or other applications.

    You could argue that the features I'm talking about are not what Garnet was about and is not what Bob is suggesting now. That's fine, I'm just trying to stake out some ideas.

    Better integration with external Servlet containers is defiantly a good thing. There are many situations where we will want to integrate JEE apps with Domino. This is a different use case though, from wanting to just use Domino to build a web app. What would we like that integration to look like? As has already been discussed, the CORBA interface is too slow in certain circumstances, making it of limited use. It is also only for use talking from the external app to Domino. Domino has no easy way of talking with the Java Web app. In 8 you will be able to use client web services, but there is nothing symmetrical with the style of the CORBA interface.

    Another thing that has been mentioned but has not been expanded upon; how would this fit in with WebSphere Portal? Assuming WebSphere Portal is gong to be a feature we are going to see more and more of. How will any features being discussed here integrate with it?

    101Tim Siney  06/05/2007 7:21:23 AM  Remember Garnet ??

    I wasn't intending to move this discussion off-topic with my original comments regarding 32k limits, but one of the biggest issues I have with notes/domino are those limits. They are everywhere and seem to pervade everything I do with the product. I can't remember a time when they haven't made themselves felt in some way or another whilst I've been developing a solution using domino. It just seems bizarre that we are talking about cramming more and more functionality into the product when there are simple changes which desperately need to be made in order to make it a viable web-dev platform, yet seem to be universally ignored by IBM.

    Back on topic, I see domino best used as a datastore in a J2EE environment. Currently, there aren’t many non-relational databases which can match it. Perhaps the best way to go is to improve and extend the current CORBA interface which Java apps can use to talk to domino. It seems to me that if IBM implement a J2EE style container within domino, they will just be duplicating what is already out there in the form of Tomcat/JBoss etc with no real benefit to the developer. Those products are also open source and have a large developer community based around them. I think IBM would have a hard time keeping an app sever embedded in domino up to date compared to offerings such as these.

    102Henning Heinz  06/05/2007 1:22:36 PM  Remember Garnet ??

    The original Garnet implementation was based on / using Tomcat so maybe this was more a case of embracing open source than competing against. Garnet offered at least a possibility to broaden the scope of usable applications (commercial and open source).

    I am not sure about a full J2EE stack as this in some way already exists with the Websphere entitlement and its integration (that I admit to have never tested).

    For the comments about stuff like Spring Framework. Depending how IBM would have done a Garnet implementation enhancing the functionality with frameworks like Spring would have been possible.

    While I have been a big fan of the idea of Garnet it is possibly not a solution for notes customers that have a growing budget for Microsoft and .Net.

    103Lars Olufsen  06/08/2007 7:49:48 AM  Remember Garnet ??

    Building tightly integrated functional stacks ... isn't that complete AGAINST the trends of modern Information Technology?

    @77 & @80 ... Are you seriously talking about including an Enterprise Service Bus in Domino? Does that make sense?

    An ESB is a platform to support a highly distributed service architecture. Including the Bus in another product seems a stab in the back of the architecture a Bus is meant to support.

    Imagine having 1 million users accessing webapps that need to make all service-calls through Domino to get to the legacy logic. It's not like Domino has ever been designed to handle large-scale transactional use.

    It would be much more interesting to modularize Domino and Notes in a way that would expose well-defined service layers, ready for enterprise-wide reuse, and automate publication of services to a service registry for use through a Bus.

    Make the J2EE stack a "pluggable" option, so that users can choose to use existing implementations in their organisation, be it BEA/WL, WAS, Tomcat or others.

    Do the same with the HTTP stack (that is more or less done already).

    Make the interfaces available in a standardized form to make the Domino functionality a better player in the "next-generation" Service Oriented / Event Driven environment.

    After all, Domino has always been about supporting business processes, and Notes is currently being touted as the "Client for SOA" by IBM.

    In my mind, that would make a lot more sense than tightly adding featuresets to the platform.

    104Axel  06/09/2007 2:07:02 AM  Remember Garnet ??

    Lars, I more or less second your ideas.

    1. Better integration with WebsphereMQ (a lot of bigger organizations have it) and ActiveMQ (its open source). So the reliability of those Messaging products can be used as a transport option.

    2. Support for axis2 to use Domino as a Webservice consumer and producer. Axis2 means real progress in ease of development and performance compared with axis1.

    3. Support for xml->LotusScript-Obects binding like JAXB. As the business logic has to be shielded by xml-parsing and generation. If people start to use "simple" Dom parsing or XPath inside their business logic, things are getting inevitably nasty. I talk from experience :-). In a java project this year there were no option to use such existing binding framework. I created my own with reflextion and SAX. Took 4 days. Astoundingly a lot of not so experienced developers think that xml is as easy and safe to handle in business logic as objects. This is not true. In most cases you need an extra xml-processing-layer. It would be great, if Lotus could provide that (similar to JAXB or some such).

    A Garnet-like solution could help even customers who invest in .NET to keep their Domino applications in use as it would help to modernize the Webservices story inside Domino. Webservices are a good way for integration with .NET.

    As a datastore in J2EE its important to have a possibly even 2phaseCommit ready transaction manager. I think its very expensive to build that ex-post into Domino. A lot of J2EE developers talk a lot about non relational solutions like db4o, oracle.sleepycat.BerkeleyDB or xindice. But its not often used and all this products have their own quirks.

    The most concise, detailed and real-world text discussion about Websphere-Domino integration I know is in the recently published german book by Thomas Ekert "Java unter Lotus Domino". This guy clearly knows what he is talking about and its not perfect. No integration is perfect. Why not base new work on J2EE integration on a wider range of j2ee application servers?

    105Axel  06/09/2007 3:42:22 PM  Remember Garnet ??

    A better Webservice story especially for Domino as a Webservice consumer (client) might help also for SAP access. The SAP J2EE server does support webservices very well. They can generate a webservice automatically from an existing RFC.

    At least in Germany the SAP developers are allways separated from the rest of the developers. From what I hear in a german forum they often distrust SAP access libraries. Now Webservices offers a very well documented (wsdl) and loosely coupled way of integration into the platform they are responsible for. This should result in high acceptance of Webservice way of integration from the SAP crew.

    106Jason  06/14/2007 7:35:32 AM  Remember Garnet ?? - Yea, and I want to forget it.

    @9 - I totally agree. I've been developing in C# and VB.NET in VS2005 for over a year now and although I miss certain things in the Domino environment, developing an APS.NET site is wickedly cool and amazingly powerful. The IDE is really an I-DE, and makes so much easy on the developer...drag and drop components, a real Intellisense, a real class creation environment for real OO development, design time changes before deployment (like changing the CSS and the effects showing up right in your dev screen without previewing), integrated support for XML development...the list goes on and on and on. Oh, and web services. Holy crap it's so easy to create and CONSUME web services in .NET. I swear it's a different world. So why am I going on and on about it? Because I've developed professionally in Domino, Websphere Studio and VS2005 and feel I have insight on what would make Domino arise from its antiquated state. Reviving Garnet is not it. Instead of giving Domino little bits and pieces of things that other platforms have fully, why not revamp the IDE completely and make it something really competitive? If you cannot do that, then merge the Domino Designer fully into the Eclipse IDE. Developers want tools that let them focus on business logic, not having to create clever workarounds. So many articles and demos and even products for Domino exist only because they are workarounds for stuff that Domino lacks. Just compare the full suite of Rational and Visual Studio to Domino.

    107Nick Radov  08/16/2007 12:47:42 PM  I remember

    Dropping the Garnet feature was the worst product decision Lotus ever made. The Domino web server itself isn't suitable for building enterprise applications, so we were forced to build on top of Apache Tomcat running as a separate application. That made integration and deployment much more difficult. Now we are in the process of moving from Tomcat to WebSphere Application Server to take advantage of improved scalability and reliability.

    At this point there isn't much value in the Domino development team reinventing the wheel and building in another web container. Rather I would suggest inverting your idea and looking at ways to better integrate WAS with Domino. You could follow a similar model to what Lotus did with the DB2NSF feature and include a limited WAS license with every Domino license. And then enhance WAS so that it can access JSPs and other web application components from a Domino NSF database rather than from the file system. That would really give us the best of both worlds.

    108Jérôme Deniau  08/16/2007 5:30:07 PM  Remember Garnet ??

    Yes spent 1 week to build a demo for the French users Group before Rnext was officially launched and Garnet taken off it.....

    Same feeling than Nick (@107) should be great IBM bring somethng back into Domino, many people just want Domino to do it all, because they do know how it works.

    109Djilali  09/16/2007 6:11:51 AM  Remember Garnet ??

    I have the feeling some folks at IBM have greater plan for Domino as web/application framework ...

    Don't you think the hype around J2EE as a universal framework is over? Today is truly about integration, deployment and instant service delivery: not so J2EE to me.

    Recently while giving a try to Django ({ Link } I've found some refreshing functionalities reminding me the good old times of Notes devs., although the setup was a little bit tricky.

    I am not comparing enterprise and web frameworks but more than ever, IBM/Lotus has some cards to throw in the game.

    110David  02/17/2008 8:48:09 PM  Remember Garnet ??

    Nice thread. I just installed Lotus 8, and, I have a third-party servlet that would be REALLY cool to run in Domino, only to find it only has 2.0 support!

    What a joke!!

    Somebody wake the Lotus/IBMers up!!!