You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Øyvind Jensen <oy...@tihlde.org> on 2008/08/11 13:23:17 UTC

Apache Derby Management Tool

Introduction

We're two graduates from South Trøndelag University College (Høgskolen I
Sør-Trøndelag, HiST) in Norway. We've developed an administration tool for
Apache Derby as a student project and would like to open it to the
community process and continue working on it.


Why we choose this project

For a number of reasons actually. All of the database management systems
(DBMS) out there has some sort of utility which enables you to administer
the system. Apache Derby has no such thing, not officially that is. We see
the demand for such a tool and we're going to try to fill that gap.

We're setting it free both because we're big fans of free and open source
software, and because Apache Derby is released under the Apache License we
have adopted the same for our code.

Finally because of the challenge. Trying to get the code accepted and to
gain acceptance as developers from a large community is a great challenge.
Especially when trying to make a user interface good enough and functional
for everyone which is a challenge in itself.


Basic functionality

Application programming interface (API)

-Start/Stop database (DB)
-Change port and DB default directory
-Run Apache Derby as network server and embedded
-Create tables and retrieve data
-Show server parameters and monitoring information
-Logging (client and server)
-Manage multiple instances of Apache Derby

Graphical user interface (GUI)
-Using above functionality
-Easy access to SQL query tool (ij)
-Tray icon (Gnome panel on *nix and task bar on Windows)

Status
Almost all of the functions in the API works and the GUI is coming close
to something usable.

Target users
Everyone! But especially new Apache Derby users and those who tries Apache
Derby out for the first time. To have such a tool easily available to
users makes it less probable for them to run away when they read CLI only
somewhere, and in the long run this may encourage more people to
participate in the Community.


Technologies and tools used

-Apache Derby
-Java Management Extension (JMX)
-Swing
-JDBC
-NetBeans IDE

We have set forth a goal to use as little outside of the JRE as possible
when running the tool. No need to install additional software and thus
make it easier to get started using it. The reasoning behind using JMX is
to ease the sharing of information between the running instance and the
client side API. A lot in Apache Derby has been instrumented as manageable
beans and we would like to leverage these capabilities.

We've chosen NetBeans as our IDE because we're both familiar with it, it's
easy to make a good looking GUI with NetBeans, and because there is a good
amount of developers out there using it.


Calling out to all Derby developers

We would like to know your opinions on including a graphical management
tool into Apache Derby. We're aware of the project details when it comes
to GUIs, but we believe there is no better place to host the code. It will
ease development and the tool will in turn potentially benefit the
community.



Our email addresses:
Øyvind Jensen - oyvindje AT tihlde.org
Håvard Barkhall - haavaba AT tihlde.org



Thanks,
-Øyvind J.


Re: Apache Derby Management Tool

Posted by Øyvind Jensen <oy...@tihlde.org>.

Daniel John Debrunner-2 wrote:
> 
>> Basic functionality
>> 
>> Application programming interface (API)
>> 
>> -Start/Stop database (DB)
>> -Change port and DB default directory
>> -Run Apache Derby as network server and embedded
>> -Create tables and retrieve data
>> -Show server parameters and monitoring information
>> -Logging (client and server)
> 
> I'm not sure what is being proposed here for the above list, Derby 
> already has api's to do all of the above, is this introducing new 
> alternate (non-standard?) mechanisms?
> 

The API is client-side only and includes the JMX part connecting to a
running Apache Derby instance. All functionality is implemented here. The
only reason for doing this is to separating out the swing specific parts
completely, if someone wants to make use of what we've done and implement it
with non-swing components. (See below for clarification on possible overlap)


Daniel John Debrunner-2 wrote:
> 
>> We would like to know your opinions on including a graphical management
>> tool into Apache Derby. We're aware of the project details when it comes
>> to GUIs, but we believe there is no better place to host the code. It
>> will
>> ease development and the tool will in turn potentially benefit the
>> community.
> 
> Such a contribution would require a software grant (see 
> http://www.apache.org/licenses/#grants ) which in turn requires that 
> belief from a PMC that it will gain a viable community. One concern is 
> that typically the overlap in interest and skills between database 
> internal folk (e.g. the Derby community) and GUI folk is small.
> 
> On the other hand it's possible that having a different community work 
> on an api for management would be confusing as the Derby community 
> starts to expose management itself through JMX.
> 

I've touched on this with Håvard. I do see things being done by the Derby
community making most or all of our API code obsolete in the long run, and
we have removed some chunks of code leading up to the 10.4 release. I guess
the API will be a transitional part only.
-- 
View this message in context: http://www.nabble.com/Apache-Derby-Management-Tool-tp18931716p18997186.html
Sent from the Apache Derby Developers mailing list archive at Nabble.com.


Re: Apache Derby Management Tool

Posted by Daniel John Debrunner <dj...@apache.org>.
Øyvind Jensen wrote:
> Introduction
> 
> We're two graduates from South Trøndelag University College (Høgskolen I
> Sør-Trøndelag, HiST) in Norway. We've developed an administration tool for
> Apache Derby as a student project and would like to open it to the
> community process and continue working on it.

[snip]

Sounds interesting.

> Basic functionality
> 
> Application programming interface (API)
> 
> -Start/Stop database (DB)
> -Change port and DB default directory
> -Run Apache Derby as network server and embedded
> -Create tables and retrieve data
> -Show server parameters and monitoring information
> -Logging (client and server)

I'm not sure what is being proposed here for the above list, Derby 
already has api's to do all of the above, is this introducing new 
alternate (non-standard?) mechanisms?

[snip]

> We would like to know your opinions on including a graphical management
> tool into Apache Derby. We're aware of the project details when it comes
> to GUIs, but we believe there is no better place to host the code. It will
> ease development and the tool will in turn potentially benefit the
> community.

Such a contribution would require a software grant (see 
http://www.apache.org/licenses/#grants ) which in turn requires that 
belief from a PMC that it will gain a viable community. One concern is 
that typically the overlap in interest and skills between database 
internal folk (e.g. the Derby community) and GUI folk is small.

On the other hand it's possible that having a different community work 
on an api for management would be confusing as the Derby community 
starts to expose management itself through JMX.

As Rick pointed out demonstrating a community somewhere (Apache 
Incubator or elsewhere) would be a good first step, also having the code 
open might determine a natural split between the api (hosted within 
Derby) and the GUI (hosted tbd).

Thanks,
Dan.

Re: Apache Derby Management Tool

Posted by Øyvind Jensen <oy...@tihlde.org>.

Rick Hillegas-2 wrote:
> 
> Another approach might be for you to incubate your code as a separate 
> Apache DB subproject. Let me know if that's an appealing option. If it 
> is, I can start a conversation about this on the incubator mailing list.
> 

Indeed it is. We would really like to get this hosted in an Apache
repository. Subproject of Apache DB seems ideal if inclusion in Apache Derby
isn't an option. So if this is what the conversation is leaning towards
please feel free to start a conversation on the incubator mailing list.
-- 
View this message in context: http://www.nabble.com/Apache-Derby-Management-Tool-tp18931716p18997064.html
Sent from the Apache Derby Developers mailing list archive at Nabble.com.


Re: Apache Derby Management Tool

Posted by Mike Matrigali <mi...@sbcglobal.net>.
I would rather see the current derby project concentrate on the
engine and not have tools included in it's charter.  It would be
  great to see a separate
project formed for those interested in derby based tools such
as this and others.  Then this could go through the proper
incubation/legal steps.  Sort of how lucene is set up with a
base core project and multiple other projects that are built
on top of the base project.

This new project might also be a good place for database extensions that
are now possible and those that may be enabled in the future.   For 
instance I think sharing table function implementations could be 
valuable.  This might also be a place to collect libraries of user
defined functions usable in derby - I think one such set suggested in 
the past was those implementing spatial capabilities.


Dag H. Wanvik wrote:
> Rick Hillegas <Ri...@Sun.COM> writes:
> 
>> Derby may be the wrong place for your tool itself, however. I don't
>> want to discourage you but it seems to me that the Derby charter
>> pointedly excludes "Database GUI tooling":
>> http://db.apache.org/derby/derby_charter.html#Database+Technology I
>> hope that someone will correct me here if I am mis-interpreting that
>> part of our charter. I don't know why the charter excludes GUI
>> tools. I suppose the community could consider changing that clause.
> 
> When I read this wording I get the idea that the intention here is
> exclude general database tools, e.f. for constructing SQL queries
> based on existing tables etc. I am not sure the intention was to
> exclude a dedicated tool to administer Derby? But I can see it is at
> least arguable that exclusion is intended. Note that a command line
> based management tool would not be excluded...
> 
> What would it take to change to charter wording to allow an
> administration tool for Derby?
> 
> I think it would benefit Derby to make the threshold as low as
> possible for people wanting to contribute in this area, by allowing
> this to coexist with Derby.
> 
> Dag
> 


Re: Apache Derby Management Tool

Posted by "Dag H. Wanvik" <Da...@Sun.COM>.
Rick Hillegas <Ri...@Sun.COM> writes:

> Derby may be the wrong place for your tool itself, however. I don't
> want to discourage you but it seems to me that the Derby charter
> pointedly excludes "Database GUI tooling":
> http://db.apache.org/derby/derby_charter.html#Database+Technology I
> hope that someone will correct me here if I am mis-interpreting that
> part of our charter. I don't know why the charter excludes GUI
> tools. I suppose the community could consider changing that clause.

When I read this wording I get the idea that the intention here is
exclude general database tools, e.f. for constructing SQL queries
based on existing tables etc. I am not sure the intention was to
exclude a dedicated tool to administer Derby? But I can see it is at
least arguable that exclusion is intended. Note that a command line
based management tool would not be excluded...

What would it take to change to charter wording to allow an
administration tool for Derby?

I think it would benefit Derby to make the threshold as low as
possible for people wanting to contribute in this area, by allowing
this to coexist with Derby.

Dag

Re: Apache Derby Management Tool

Posted by Rick Hillegas <Ri...@Sun.COM>.
Hi Øyvind and Håvard,

Welcome to derby-dev! What you have built sounds very exciting and 
useful. We are definitely in the business of building JMX support for 
tools like yours and we can certainly use your help. We get a lot of 
requests for GUI admin tools and it would be great to be able to point 
those people at your project. I suspect that some of those people would 
even be willing to study your code and help you extend it. I could see a 
community forming around your contribution.

Derby may be the wrong place for your tool itself, however. I don't want 
to discourage you but it seems to me that the Derby charter pointedly 
excludes "Database GUI tooling": 
http://db.apache.org/derby/derby_charter.html#Database+Technology I hope 
that someone will correct me here if I am mis-interpreting that part of 
our charter. I don't know why the charter excludes GUI tools. I suppose 
the community could consider changing that clause.

Another approach might be for you to incubate your code as a separate 
Apache DB subproject. Let me know if that's an appealing option. If it 
is, I can start a conversation about this on the incubator mailing list.

Another option would be to open-source this code outside Apache but keep 
us informed so that we can point people at your project. Once your code 
develops a community, it will be more attractive to Apache.

Does anyone else have ideas about how we can help Øyvind and Håvard 
develop what sounds like a very useful tool?

Thanks,
-Rick




Øyvind Jensen wrote:
> Introduction
>
> We're two graduates from South Trøndelag University College (Høgskolen I
> Sør-Trøndelag, HiST) in Norway. We've developed an administration tool for
> Apache Derby as a student project and would like to open it to the
> community process and continue working on it.
>
>
> Why we choose this project
>
> For a number of reasons actually. All of the database management systems
> (DBMS) out there has some sort of utility which enables you to administer
> the system. Apache Derby has no such thing, not officially that is. We see
> the demand for such a tool and we're going to try to fill that gap.
>
> We're setting it free both because we're big fans of free and open source
> software, and because Apache Derby is released under the Apache License we
> have adopted the same for our code.
>
> Finally because of the challenge. Trying to get the code accepted and to
> gain acceptance as developers from a large community is a great challenge.
> Especially when trying to make a user interface good enough and functional
> for everyone which is a challenge in itself.
>
>
> Basic functionality
>
> Application programming interface (API)
>
> -Start/Stop database (DB)
> -Change port and DB default directory
> -Run Apache Derby as network server and embedded
> -Create tables and retrieve data
> -Show server parameters and monitoring information
> -Logging (client and server)
> -Manage multiple instances of Apache Derby
>
> Graphical user interface (GUI)
> -Using above functionality
> -Easy access to SQL query tool (ij)
> -Tray icon (Gnome panel on *nix and task bar on Windows)
>
> Status
> Almost all of the functions in the API works and the GUI is coming close
> to something usable.
>
> Target users
> Everyone! But especially new Apache Derby users and those who tries Apache
> Derby out for the first time. To have such a tool easily available to
> users makes it less probable for them to run away when they read CLI only
> somewhere, and in the long run this may encourage more people to
> participate in the Community.
>
>
> Technologies and tools used
>
> -Apache Derby
> -Java Management Extension (JMX)
> -Swing
> -JDBC
> -NetBeans IDE
>
> We have set forth a goal to use as little outside of the JRE as possible
> when running the tool. No need to install additional software and thus
> make it easier to get started using it. The reasoning behind using JMX is
> to ease the sharing of information between the running instance and the
> client side API. A lot in Apache Derby has been instrumented as manageable
> beans and we would like to leverage these capabilities.
>
> We've chosen NetBeans as our IDE because we're both familiar with it, it's
> easy to make a good looking GUI with NetBeans, and because there is a good
> amount of developers out there using it.
>
>
> Calling out to all Derby developers
>
> We would like to know your opinions on including a graphical management
> tool into Apache Derby. We're aware of the project details when it comes
> to GUIs, but we believe there is no better place to host the code. It will
> ease development and the tool will in turn potentially benefit the
> community.
>
>
>
> Our email addresses:
> Øyvind Jensen - oyvindje AT tihlde.org
> Håvard Barkhall - haavaba AT tihlde.org
>
>
>
> Thanks,
> -Øyvind J.
>
>