Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

.... or "How Hard Can It Be To Find A Webdeveloper?"

.... or "How To Build A Full-stack Webdev in Two Easy Lessons"

.... or "How I Learnt To Stop Worrying And Love Javascript"

(Based on work from Innovation Week September 2017 at KB-Aarhus.)

Where We Are Now


Let's do it in two stages

Create a Service Layer For the NAS Backend

All communication between the NAS GUI and the backend system should be via a well-defined REST API

  1. Create new webmodule in the existing NAS GUI
  2. Configure its web.xml to scan for classes that expose REST methods

    Code Block
       <servlet-name>Jersey REST Service</servlet-name>

  3. Implement some methods

    Code Block
    public class Status {
        public JMXStatusEntry[] getAllStatus() {
            String query = "dk.netarkivet.common.logging:*,index=0";
            ArrayList<JMXStatusEntry> entries = new ArrayList<>();
            List<StatusEntry> entries1 = null;
            try {
                entries1 = JMXStatusEntry.queryJMX(query);
            } catch (MalformedObjectNameException e) {
                throw new RuntimeException(e);
            for (StatusEntry entry: entries1) {
                entries.add((JMXStatusEntry) entry);
            return entries.toArray(new JMXStatusEntry[]{});

  4. Profit!

Now Just Write a Modern Dynamic Interactive WebGui ...

On advice I started with jQuery.


None of which we have now.

So Where To Now

... or can I really ask the Steering Committee for permission to start a complete frontend rewrite?

The Good Stuff

  1. This is the result of three days' work by one developer, of which two days were on the backend. Getting started with this web-development stuff isn't as hard as I expected.
  2. We can leverage a universe of existing solutions to instead of having to reinvent the wheel.
  3. A clean API should make testing NAS much easier.
  4. This is already way more fun than hacking through a mess of servlets & jsp and should make it easier to integrate new developers in the project.

The Challenges (not all technical!)

  1. Known unknowns and unknown unknowns - we need a much longer pilot-program to be able to present a really convincing case. We haven't even looked at interactions yet.
  2. Is jQuery the right technology?
  3. How much reskilling do we need to do in the NAS developer group?
  4. What about "higher level" skills  - how to manage, structure, test, standardise a web-development project? These are not skills we currently have in NAS.