Looking out my window, I can see fluffy clouds floating by. I find myself wondering how I would feel if I knew my applications and data were stored in some great electronic nebula, a cluster of computers far away, possibly scattered around the globe communicating through thin copper and glass connections. Makes you go…hmmmm.
Thanks for indulging my philosophical moment. Cloud computing is classically categorized into three areas: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). SaaS and PaaS have been popular for quite some time; just look at Google Mail (SaaS) and Salesforce.com (PaaS) for great examples.
I think that the real excitement is Infrastructure as a Service (IaaS). I had recently attended a Gartner conference on Application Integration and enjoyed a fascinating presentation by Werner Vogels, CTO of Amazon, on how his company is not only virtualizing servers but also virtualizing relational databases and networks. Continue reading
Switching the EBI Developer Studio from a homegrown client to using the Eclipse platform will require changing how EXTOL developers implement everything related to the GUI, including how to access help from within the product. One of the projects I was assigned to do for EBI 3x was to look into the Eclipse help system. I enjoyed working on that project because the Eclipse team did a fantastic job producing a very advanced help system that we will certainly be taking advantage of. Continue reading
One of the reasons that we have chosen to use the Eclipse RCP framework for the next version of EXTOL Business Integrator is that it promotes modularity. A modular application is a system comprised of smaller, simpler parts (modules). As things grow in size and complexity this becomes necessary. Automobiles, for example, are modular, comprised of numerous subsystems — power train, exhaust, brakes, electrical, etc. You, in fact, are modular. This principle from nature has long been understood in manufacturing: that the best way to design and build a complex thing is to first see it as an assemblage of smaller, less complex (and therefore more manageable) parts. Divide and conquer. Modularity also makes possible the division of labor, the modern assembly line, and with it the move from a culture of craftsmanship to mass production and economies of scale.
Designing modular systems tends to require more thought and planning up front but pays huge dividends down the line. Not only are they easier to build, they are easier to fix and maintain. Consider the problem faced by the U.S. government in the 18th century in provisioning firearms to its army. Each gun was unique and made by a different gunsmith, so if a single piece broke the whole thing needed to be replaced or needed custom repairs. The government hired famed inventor Eli Whitney to address the problem, and he proposed replacing traditional methods of gun manufacture with a system based on the use of interchangeable parts. So, if a part fails, swap in another that is identical.
Unfortunately, too much software is still manufactured like an 18th century musket: highly-customized, one-off creations built by craftsman programmers (‘codesmiths’); handcrafted works that may be beautiful to behold, but are a real bear to fix and maintain in the field. Continue reading
Those of you who attended the EBI 3.0 preview session at the recent EXTOL University learned that EXTOL will be switching to an Eclipse-based development environment for the next major release of EXTOL Business Integrator (EBI). For the rest, I’d like to explain what that means, and why we’re so excited about it here at EXTOL development.
Eclipse is a software framework for building integrated development environments. Huh? What’s an integrated development environment (IDE)? An IDE is a concept well understood by software developers. Building software is a complex activity involving many tasks: writing the source code, compiling it to runnable software, building user interfaces, testing, debugging, etc. In the past, developers had to use many different tools to accomplish these various tasks. These tools composed the programmer’s development environment (their “toolkit”). Continue reading
On Friday we discussed redundancy as a universal attribute of highly available (HA) components. See “’High Availability’ 101 – Redundancy.” This time we’ll explore data replication, an application of redundancy that is common in many HA systems.
Often, the first hurdle in creating an HA component involves accessing data in a highly available fashion. Unfortunately, it is also one of the most complicated and expensive problems to solve. Applying the principle of redundancy introduced on Friday, highly available data means redundant data. Redundant data requires the act of copying it to redundant locations. This copying is sometimes referred to as ‘replication’. Highly available data requires some form of replication. Complications may result from the potential overhead of this operation, and maintaining consistency between the disparate copies. Consistency is especially troublesome if the data is capable of being read and modified concurrently. Continue reading