2
edits
| Line 74: | Line 74: | ||
* The [http://ez.no/doc/components/view/trunk/(file)/introduction_ConsoleTools.html Console Tools] component helps you with user interaction for shell scripting | * The [http://ez.no/doc/components/view/trunk/(file)/introduction_ConsoleTools.html Console Tools] component helps you with user interaction for shell scripting | ||
* The company [http://www.toolslave.com/ toolslave] [http://lists.ez.no/pipermail/components/2007-May/002435.html proposed] to contribute it's [http://instantsvc.toolslave.net/wiki/About WebServices] libraries to the components. This will give us SOAP and REST | * The company [http://www.toolslave.com/ toolslave] [http://lists.ez.no/pipermail/components/2007-May/002435.html proposed] to contribute it's [http://instantsvc.toolslave.net/wiki/About WebServices] libraries to the components. This will give us SOAP and REST | ||
== A Java Framework (#1a?) == | |||
Here's the rub with Java.. don't do GUIs with it, but by all means, make your business object and services layer with it. If you expose Bugzilla features through well-defined web services (ala WSDL) then anyone can: write GUIs for it (.NET, Python, Java, Ruby, Delphi, ...); script command-line clients; plug it in to their favorite IDE's; etc. Here's one FOSS framework/stack: | |||
* EJB 3.0 - a specification for Java application servers | |||
* JBoss Application Server 4.0.5 - an implementation of that specification | |||
** ''4.2 was released yesterday (11 May 2007)'' | |||
** Apache Tomcat - a Java-based web server, which also ships with JBoss | |||
*** Apache Axis - web services implementation, talks with EJBs | |||
** Hibernate - ORM implementation, which also ships with JBoss | |||
*** ''This lets you work with any database that hibernate works with.. which is most.'' | |||
That's it for objects and services. But if you want a kind of "reference" implementation of an interface, and something which works closely (locally) with the server-side objects and services, then you could use: | |||
* JBoss Seam - works closely with business objects and services to provide web interfaces, including some AJAX | |||
I call this a "stack" for the many options within each layer: application server, web server, persistence/ORM impelmentation (hence database), GUI, operating system, security services, etc., and that's just the server side. The whole thing is mind-bogglingly complex - too much to consider all at once, but if you build one tower of tools, have a clear domain model and services, pre-defined roles, and an eye for security, then it should build quickly. | |||
To address each point with this set of Java technologies: | |||
# '''Ease of Development''': It's not easy to ''learn'', but you can rapidly create new features without worrying about details, especially with EJB 3.0 annotations. | |||
# '''Ease of Modification''': Refactoring Java is a joy, and the tools are excellent (Eclipse). Java has long been exposed to agile programming methods, and benefited greatly from unit testing and other change-embracing practices. | |||
# '''Performance''': Should be good in normal deployment, but also very scalable. | |||
# '''Available libraries''': Your server-side stuff should be taken care of, but also GUI libraries, like for charting on a web interface. | |||
# '''i18n and l10n''': Solved for web interfaces. | |||
# '''Security''': Server-side security is well established, uses most common authentication and authorization services, and is built into the language. EJB 3.0 in particular uses role-based security for both declarative and programmatic access control. | |||
# '''Enforcement of Good Code''': The tools (Eclipse at least) do a good job. | |||
edits