Design an AODB for a mobile server platform ?

5997469039_0736c09bd7_b

Mobile clients for AODB (Airport Operational Database) products running on tablets and mobile phones are a standard offering today. These clients allow convenient access to operational data while being on the floor, at the tarmac etc. I remember my first mobile AODB project more than 10 years back operating on a proprietary Nokia platform. Today it is not a major technology challenge any longer with current mobile hardware, platforms and libraries available at hand.
The remaining questions are often: How to design the app for a small screen landscape available, but facing a big amount of operational data ? What features does a mobile user really need, what info is key to be displayed, what updates need to be entered while being mobile ? How to simplify user interaction ? How to handle the data synchronization when being offline, aka in areas without wireless or mobile coverage ? Build a hybrid app or go native ?

I believe we at an interim stage of mobile computing at this moment, while current mobile apps replicate desktop applications (screen, mouse, keyboard) with the means of mobile interaction (touch, swipe, pinch,..), we still sorting out the next evolutionary step. Mobile computing on mobile phones, handhelds, wearable computing, smart watches, AR glasses etc. etc. Ruggedized devices became standard while smart watches are still not taking off.
The next (or this !) generation of mobile apps should make use of the mobile characteristics and sensors built-into most mobile hardware. A few ideas: Location awareness, the app should know where the user is at the apron and already open the relevant flight and information or support manual milestone recording. Depending on the users role, tasks should be highlighted to him/her, eg. a service manager that is closest to a problem location should be notified. NFC reader, barcode scanner and AR glasses should assist the user to identify cargo, baggage, vehicles, etc.

Putting aside this considerations, I like to engage in a little thought-experiment:
Can we run an AODB, aka the server, on a mobile phone (Android) ? (without using any external core service, eg. data storage or rule engine etc. Standalone only, allowing other clients to connect, simple interfaces only)
Lets play with pro and con argument and check on the feasibility.

Hardware

This topic triggered the discussion when comparing current hardware in mobile phones with server hardware 20+ years ago when the first generation of AODB products appeared. A standard server of that time was something like a Sun Ultra II with dual 200 MHz processors, 256 to 512 MB of RAM and maybe a SCSI rack with 3x 10GB diskspace, running Solaris, 32bit. Easily priced at 20.000 to 50.000U$ depending on configuration plus various commercial licenses.
Lets look at a current mobile phone like the Huawei P20, Octa-core (4×2.4 GHz Cortex-A73 & 4×1.8 GHz Cortex-A53) with 4GB of memory and 128GB of SD card space, coming at 600U$.

Operating System

Android is obviously not a server OS, it does not give us control over settings that we can rely on under Linux. We cant assign memory and priority, it is actually the OS that controls apps and services, going to the extend of terminating unused apps and similar. The only way of having a persistent app running is as service. Apps are living in sealed sandboxes, only a rooted device would give us more control.

Solution architecture

We cant build a multi-tier solution with the classical database, business logic and frontend layers. Android enforces monolithic applications, the only way to escape this is by building services and relying on ICP (AIDL, Intents, Binder). Anonymous shared memory is only available in Android 8+.

Database and Application/Web-Server

App-server ? Easy to answer, it does not exist. Maybe simple http server is possible.
Database ? Only a few solutions at hand, either the built-in SQLite, not really a DB known for performance, or some alternatives, mostly key-pair and relational DB’s and some NoSQL DB (Comparison chart here).

Scalability

We cant scale vertical, no adding of CPU’s or memory possible. Horizontal scaling would not be easy, unless we deploy more mobile phones to outsource certain services, but implementing a load-balancer would not be possible.

Availability

In terms of network connection we are limited to 1 wireless or (!) 1 mobile connection at a time, no redundancy. Power-failure is less of a problem, we have built-in battery that could last at least 1 hour under heavy usage. Android as OS is quite stable, it can run for prolonged periods, though it is uncertain if services running permanently with load create a problem.

Integration

Integration of interfaces with other systems is a bit more challenging. Though it is no problem to consume webservices, download from ftp server or receive emails as part of interface client, we will have a hard time to provide an interface, eg. to offer a webservice. There is no ESB running on Android.

Conclusion

It is definitely possible to run a very lightweight AODB solution without lots of fancy bells and whistles on a mobile phone, ideally to act both as server and client integrated into one solution (app). All under the premise to limit our requirements to a basic set of features like managing schedule, daily operations, milestone handling, simple resource management.
The longer I review this idea the more arguments I collect against this use-case, the platform is too limited to allow scaling, does not provide real server features and will not be able to run heavy services like rule engines, ESB, etc.
Maybe feasible for small scale operations at an airport with few commercial flights a day, some GA, few users and utilizing third party services in the cloud for billing, ESB, etc.

I suggest we rather invest our thinktank energy in building a serverless AODB by using orchestrated microservices and use the mobile platform solely as client.

Image: Creative Commons, National Library of Ireland on The Commons, “St. Albert at Dublin Airport, circa 1950”

Advertisements

The Forgotten Sourcecode

I remember the first time I heard the term Public Domain software and Shareware somewhere between the late 1980′ and early 90’s. Towards the end of the Commodore C64 era, where software was almost solely commercial (and not affordable for the average secondary student) creating the vivid software “sharing platform” at the schoolyard as a solid first release of software piracy, I got my hands on my first IBM compatible PC running DOS. Soon after data CD-ROM’s appeared with Shareware, a legal way to use software. Magazines were published with CD-ROM’s attached and I remember regular visits to shareware shops selling nothing but legal CD-ROM’s, years before the internet was available to public. While Public Domain Software was totally free of any license and Shareware was more like a free-to-use model (sometimes under certain conditions or restrictions similar to today’s lite/free versions), it laid the foundation of what we know as Open Source today, in my opinion one of the most important elements of our software landscape. I recommend the title “The Cathedral and The Bazaar” by Eric S. Raymond, the 25 year old book describing the inner parts of open source, a lot of it still applies.

bazaar

The Cathedral and The Bazaar – 1999 Book by Eric S. Raymond

If you are keen to go on a time travel you can download the ISO image of a couple of these shareware CD’s from archive.org and have a hands-on session with 25 year old software, though I doubt you can execute all of them on current hardware and OS.

The640SharewareStudio

Shareware CD anno 1992 (archive.org)

Once the internet was in place platforms emerged where hobbyists could store the software repositories and releases of their software. One of the early ones I remember was Sourceforge which was launched in 1999, it still exists today (after changing ownership 3 times last few years). Few others were coming and going in the same space (BerliOS, Launchpad, java.net, Javaforge, Tigris.org, ..). Though not so dominating today anymore, due to number of alternatives, one of the most prominent is Github, Sourceforge still hosts a huge number of software, some of them quite prominent, it also was the starting platform of some rather known solutions (Pentaho, Firebird, Wireshark, Nagios, Notepad++,..). Over the years I created accounts for some of the platforms, and even forgot some of them, now I solely use Github. Recently I came across a simple tool that I created in 2008 to experiment with repositories in Java and noticed the tool is still there and it was downloaded over 2.300 times in the last nine years. Not that the tool does anything more magic than creating UUID’s and copy them to clipboard. It is just amazing to see, as long the platform does not disappear, the code lives on, no expiry attached.

2017-11-20 14_56_57-Download Statistics_ All Files

Do you have some old forgotten software treasures too?

2017-11-20 15_05_52-UUID Generator download _ SourceForge.net

MOOC – E-Learning on Steroids

Hardly any industry is moving as fast as the IT industry. While your operational experience and knowledge of the vertical domain you are working in, is growing naturally along your career, it is not the same for IT. For example the airport environment, the underlying basics and physics of handling aircrafts, planning flights, etc. are exposed to changes, innovations and challenges, look at the A-CDM program, it took quite some years to take off and become main-stream, that is a much slower than any new general IT technology or platform soaring. Though this industry is picking up speed too and the boundaries between the digital and physical world start to blur more and more, airports are running digital transformation programs, though passengers still flying in the physical world.

But on the IT side of things, the speed is way beyond breath-taking and it is hard to keep a minimal overview over many areas of IT concerns as well dive into specific topics. How to stay up-to-date and tune into relevant topics ? Books (ink and electronic versions) and forums are certainly the traditional approach, on top of that you join conferences and in-persons seminars and training (which comes at a cost and time spent).

Since the 2000’s online courses came into the picture, as the successor for e-learning, and allow a much bigger audience to learn new technologies, skills and more. The very positive part, there are lots and lots of free courses, most platforms offer free and commercial courses, sometimes free to participate and only charge a fee if you want to get an official certificate (one can argue about the value of such certs) but most important, you can learn and move forward and update your knowledge with the click of a button.

The big challenge though is to identify what you need or interested in, find the right courses and, most important, manage your time. Using your spare time you have to choose wisely, you can’t run for every course out there, even they are so many you are interested in and you are temped to sign up for a dozen of courses, only not to finish any of them.

Todays key-/buzzword for this is MOOC or Massive Open Online Courses. This is like e-learning on steroids, in the past you had to look at dull corporate slides pretty much by yourself, now we look at videos, reading material online and offline, interactions with the organizer, mentor, trainer or your virtual peers at various levels.

Not only the organizations that started online learning, like schools and universities, are into the game, as well companies operating specific online course platforms and now book publishing companies offering courses and finally professional social platforms like LinkedIn.

I attended online courses at Coursera and Udacity, which offer a broad range of topics, and now started with some specific courses on HCI and UX at Interaction Design Foundation which solely offers courses on UX, HCI, Visualization and related topics. Though the courses are unattended (except the rating of your text answers or comments) but repeating, you still have a motivation to participate and go though the lessons because you pay money and they help you pacing the whole course by releasing the lesson packages over time.

Stay tuned for the results.

Thoughts about Android

What is still missing in the market (the official Android Market) ?

  1. Language filter
    Now with a total number of apps beyond 150.000 it becomes harder by the day to find apps. Time to release a feature that allows to search apps in one (or more) languages. It does not help to browse through Chinese or Korean or Spanish apps (depending on your mother tongue).

    Language Filter ?

  2. Dates Added and Last Updated for apps
    There is currently no way to identify when an app was added or when it was updated last time. There are too many apps which are outdated or not maintained any longer (I have one app with 250.000 + downloads without an update since more than one year, despite obvious bugs). Maybe create an automatic flag “this app was not update for more than 12/24 months” so user dont waste their time looking at it, or even filter it out. Of course there are alos stable apps that dont need to be updated.
    PS: You can see the changelog with www.androidzoom.com, I guesss they maintain it independently.
  3. Sandbox for “Hello World” and “Test” apps
    Give the developer community a sandbox area where they (we) can do our tests and fooling around with features. The noise factor for the real apps gets higher and higher. OK, you dont search for “hello world”, but it would help doing the housekeeping.

    Test App

    Hello World

More statistics

Made some more statistics just by looking at the number of apps within one month (using the frontpage of androidzoom.com).
Of the roughly 175.000 apps, only 12% are games. There is a vast number of apps disappearing every month. Look at wallpapers and cards games.
I doubt many developers actively remove their apps from the market, so who else is doing it ? Are so many apps flagged by users or is Google looking at IP infringement at last ? (How many wallpapers can you count of movies and cartoons which are definitely NOT licensed by the respective owner?)
Look at it by yourself..

Homemadde statistics

Thoughts on Open Source Software

OSS has grown up, it came a long way from basement hacking by students to “openness” of software by multi-national enterprises that we have today, though luckily the first group is still there creating innovative, sometimes genius sparks, and sharing it with the world. In our company we fully tap into the OSS ecosystem and try to give back as much as possible by using OSS, raising bugs and giving feedback.
Still there is the confusion OSS means free (as free beer). I wan to raise this following the discussion caused b the change of license for the ZK Ajax Framework (GPL to LGPL, creating CE, PE and EE edition). If you use a library for your commercial projects and expect certain quality and support for it, you can’t expect the company behind it to work completely for free. Its business not charity work, and in this case you still can access the sourcecode, you can download all the editions and if you are happy with the community edition (CE) it is still perfect if you dont want to pay money.
On the other side, it shows it is smarter to start from the very beginning with a dual license scheme as a software shop, free and “less free”, then you never trigger a discussion about this at a later stage  !

Daily Thoughts 5

  • IBM to acquire SUN ?
    Its not really new that SUN is looking for someone with a big pocket to buy the whole shop. Among potential candidates are DELL, HP,.. and IBM, which seems to be more serious about the deal (link). What will it means ? I am not sure if I want to tune into the pessimistic mood, that you find in some forums (link). A lot of innovative and creative power will be grounded (or at least the financial backing of it). IBM has zero genuine interest in Open Source and IBM is NOT hip, they are old fashioned and ultra bureaucratic. Most of the (server) products will disappear (or merged into their websphere product line with usual high pricetags) and stuff like Netbeans will turned down (in favor of eclipse), aka “opened” to the community but disappear in irrelevance after a while. We wont know. I hope that doesnt create another Microsoft in the srver world.
  • 456,520 downloads of Glassfish
    That shows the appreciation and adoption of the product in comparison to a number of other (propietary) products. Would IBM call it GlassSphere, Websphere Glass or whatever.
    Link
  • Google Chrome Beta
    There is another beta available for download (link). Despite the rumors Google would trash the browser is still taking up. Certain features I really like, I guess it could take some shares of the user distribution in future. I dislike the persistent update application running in the background with an option to disable it. I still favor Firefox because of the huge number of plugins. I dislike its getting slower to startup and eats memory.

Daily Thoughts 4

  • 100,000,000th JavaFX
    Last week Jonathan Schwartz celebrated the 100,000,000 download of the JavaFX runtime on his blog (link). I share his excitement about JavaFX technology out now to conquer the field of Silverlight and Flash. If not I would not invert time in picking it up ! But to paint a bit more realistic picture, there is no dedicated JavaFX runtime installer. It is included with the regular, actual JRE installer, or to quote from java.com “JavaFX runtime is integrated with Java download. During the installation of Java 6 update10 (jre6u10), users will also be installing JavaFX runtime.” (link). JavaFX piggyback in a way (a smart way), but thats fine, this way as a solution provider you dont need to struggle with extra plugin installer, your customer or user already has it (at least with an up-to-date JRE).
    The JavaFX SDK has supposingly 100,000 downloads.
  • Netbeans 7 turns 6.7
    Release was initially the next release planned to hit the community, but the development team decided to release a version 6.7 in June (milestone release in next few weeks) and 7 at a later stage. I guess JEE6 support is among the reason to wait for 7. More info at netbeans.org (link).
  • Android versus JavaFX
    The more I read about the background of the 2 technolgies, even they are very close relatives, the more I doubt there will be a JavaFX running on Android anytime soon. My personal guess: Some folks will offspring a project on Kenai or Sourceforge to get it running.
  • Buying Android in Singapore
    One day after I ordered the dev phone from US, Singtel started to sell the HTC dream, which is an Android phone, here. Guess like the T-Mobile G1 it is locked. Good timing though. Lets see what is the retail price without contract (maybe not available).