Archive for category Cloud Computing
My first foray into learning Java is still on my mind and some of that effort have appeared here. However over the span of almost a decade a number of developments have happened in the Java eco-system and I thought I revisit that effort with more focus on the tool chain.
Java has been an interest platform since it’s inception and much of the interest is not necessary driven by the current owners of the core patents, but innovations spring forth from a wide community. However, the renewed interest in how I used to learn is not limited to IDEs because increasingly being cross platform requires a certain degree of savviness with command prompts.
A Little Context
- Java is at Java 8, with the imminent release of Java 9: these feature fundamental changes to how the platform works and runs.
- Cloud computing has becoming central to how platforms and architectures work;
- Open source Java eco-systems have had interesting contribution to how the official Java releases evolve over the years. A specific example would be the implementation of java.time.*
- Java EE is coming along nicely most of the time and the aforementioned open source community have some interesting innovations on top;
- When I was trying to understand JPA, xml configuration was all over the place and yes, tools like Netbeans seems to look more like evolving into VB 6 like IDEs
- With the popularity of Git and the supporting services, code sharing can be used as a teaching and/or learning tool; gradually and incrementally.
The new Technologies I am thinking of gradually building into this new take would be:
Within the context of the previous tutorials
- Built management tools like Gradle/Maven
- Version code control systems (mainly Git)
- Collaborative online efforts that uses multiple branches (when and if possible connecting to similar issue tracking systems), with Git at it’s heart.
As a summary, much of this can be described in a readme.md file of Git repository! How search engines discover interesting subjects for beginnings to fix a single line of code makes me wonder.
If you are a keen consumer of tech news and rumours then you are well into feeling buzz-word fatigue with regard to applications markets or stores or places for that matter. Every other day, it seems everyone is announcing a way for their end users to access applications from a centralized location, while also acting as transaction broker for developers who want to sell their applications. This is a model that has been popularized and successfully leveraged into the sale of millions of iPhones and iPod units by Apple. Now, every big player in the industry wants to create some kind of an App Store or some variant of the same model.
Interestingly, this is not a new thing at all – at least on the personal computer front, Linux and its many distribution have always come with a package manager that pulls down, as it were, whatever you want from a central repository; you even have the customization options to add additional repositories as your needs may require. Open source being what it is, didn’t push for the payment option of it which alas was perhaps one of those things that could have pushed the development model faster and farther. However, open source has a number of backers who may well benefit from this apps store craze. Having operated such a model since their inception, it is conceivable to think that Linux distributions like Ubuntu would have the requisite experience and expertise in managing an app store model as a way to earn revenue. More recent versions of Ubuntu have interestingly focused on making this particular variant of Linux more cloud friendly which would fit in the app store model since the cloud would form the foundational infrastructure to add more developer and consumer facing capabilities into the mix.
Within the last 24 hours, rumours of Windows 8 surfaced and one of the features rumoured to be in the works is a Windows App store. Motivations aside, but the more interesting question to ponder with regard to that rumour (if it ever comes to see the light of day) is: how would such a thing work in the Windows ecosystem? Windows is a versatile platform but one of the things that people have been used to doing is to hunt down software binaries to install on Windows. You either download them or buy them on a CD and then do the needful installation and then voila – you have your application. What kind of confusion would an app store course amongst more casual users of Windows. Windows has been popular in the corporate world and these are environment in which they exercise total control over the behaviour of the operating system then the question that would beg an answer is how does corporate IT deal with app stores? Where exactly do their policies go in such a mix?
I must admit that Microsoft is not without experience in managing such large scale deployments of software and their associated management though the experience that they have may not scale that well. As the overseers of the most widely used operating system on the planet, one must recognize the fact that distributing updates to millions of desktops and servers around the world requires administrative and organization capacity that would lend itself easily to an app store model. Contrasting this ability with what Ubuntu can brag about, then the only problem with Microsoft’s know-how is that fact that much of it is probably kept within Microsoft’s walls and/or require you to be more than just a casual user of the operating system. Distribution and deployment of Windows updates may not (at least initially) scale well to include third party applications that may have nothing to do with the core operating system in any case.
The apps store model does present a great opportunity for small and/or first time developers as the ability to reach a great number of users with a useful and critical application has become that much easier. While there are business advantages to the app stores, they also do raise the question of how to keep your wares up to date across myriads of app stores, may targeting different variety of consumers while maintaining feature and/or performance parity across all stores.
Hasn’t anybody ever mentioned that all the rage about cloud computing is like a return to the mainframe computing era? The principles are more or less the same (from a certain perspective) and it still remains an effective way of running and provisioning computing resources. Everybody is touting cloud computing this and cloud computing that but very few people actually see that we have been here before. At the just concluded JavaOne conference, Oracle made some product announcements around “cloud in a box”. How this is different from a mainframe is the question that begs an answer.
Cloud computing is as much a hardware paradigm shift (compared to the mainframe era) as well as shift in the way that software is accessed, run and maintained by users. However, cloud computing is also concerned with data and its accessibility to the public. With increased use of the internet, data silos have become great pointers to lost opportunities and even great potential for revenue stream expansion. Yes, the marketing department in the IT industry have an unbelievable ability to rebrand the same old stuff in some colourful words that essentially boil down to the same notion but please forgive them for they have to sell the next versions just as well.
The combined improvements in hardware, software algorithms as well as data explosion gave rise to cloud computing but like all nascent computing paradigm shift there remain great challenges. Data security that very well encompass privacy remains a key concern amongst customers but the lure of a large amount of data that can be analysed and sorted into bottom-line impacting outputs is too great to ignore. So, here we are back to the yesteryears of power existing away from the end user but making sure that shared resources and reasonably and reliably shared amongst all users at any given moment.
I can’t help but wonder if this is not the shape of computing as it was meant to be. The age of the personal computer resulted in a more powerful end user who is so empowered to the point that it would be acceptable to postulate the current data explosion is the direct outcome. There is no need to feel concern for the power of the end user as I would suspect most of them already realize that the power they wield has become too much to contain. We are more comfortable with search engines and would much rather consult with them before starting off looking for information. In any case, the very notion of knowing where to find your data is increasing a losing proposition; casual computer users are ever getting closer to terabytes range for their computer hard disk configuration and this is tantamount to having your very own provide mess of data for your pleasure.
Besides, I think the power of the end user is shifting more towards mobile devices than personal computers. It is not that personal computers will become obsolete but they would generally be those devices you leave at home or at the very least suffer the indignity of hauling a load about. However, the possibility exists that the next generation of end users may not be too interested in personal computers as their mobile devices adequately meet their personal computing needs. The lost of computing power therefore (as a result of the shift in personal computing form factor) needs to be be augmented with a cloud infrastructure.
By all means let us get cloudy but let us also remember that cloud computing is as much a shift (to yesteryears?) in data processing paradigm as a shift in data accessibility paradigms. Users want their data whenever they want it but also want it secure and almost always reachable. We are dealing with some pretty powerful users who would just as easily prefer to haul around their supposedly balky laptops than trust a cloud computing service provider that can not address their need for data access whenever they want it. If the story of cloud computing is data centric, perhaps we may want to keep an eye on the ever more powerful mobile phone, with ever increasing storage capacities.