IoT Goes Open Source With the Linux Foundation’s Zephyr Project

Linux is well-known for being the OS of choice by adept PC users. It is also widely deployed in Internet servers and industrial control systems due to its small footprint, operating efficiency and open-source legacy. Attributes such as these also make it a natural choice to be a driving technology in the nascent Internet of Things or IoT.

The Linux Foundation recently announced the Zephyr Project, which is squarely aimed at bringing the best of Linux to IoT devices in the form of a small-scale real-time OS or RTOS. The project is being supported by some big IoT market players including UbiquiOS, Synopsys, NXP Semiconductors and Intel.

Zephyr as an IoT Accelerant

One of the many obstacles hindering IoT growth is the lack of interoperability standards that can be utilized by IoT device manufacturers. Zephyr could be the answer to that as a single, unifying, highly customizable, scalable and secure OS if the project is successful at meeting the extremely tight constraints required of IoT devices.

Linux already has many “micro” distributions that are used in a variety of applications as a reliable RTOS that uses a minimal memory footprint. Zephyr proposes to take these features to their limit in the nano-OS world of IoT.

The fact that Linux is open source, i.e. free, is an additional incentive to its use. Its adoption could go a long way toward realizing full value from IoT as it drops device costs and communication barriers between products from disparate vendors. Furthermore, being open source enhances the security of Linux, since code is open for scrutiny by security experts. Security is one of the biggest concerns around IoT, which is why Zephyr will include a dedicated security group.

How Low Can You Go?

There are at least a dozen small footprint Linux distributions made for PC users. One of the smallest is Tiny Core Linux [http://www.tinycorelinux.net/] with a six megabyte image that runs from removable media such as a USB pen drive. It even includes a GUI desktop. Others have taken Linux “distros” down to 200KB of RAM for storage and one megabyte of flash for OS execution.

Such a minimal footprint is not small enough for IoT devices controlled by relatively simple microcontrollers that use no more than 10KB to 100KB of memory for storage and OS. Furthermore, in that sparse space, an IoT device is expected to operate in real-time. These constraints are formidable obstacles. The highly collaborative, community-based effort of Zephyr is an ideal approach to solving such problems.

Zephyr Goals

Zephyr is dedicated to producing both micro-kernel and nano-kernel versions. These are initially to be based on the contribution from Wind River Systems of its Rocket RTOS kernel. The nano-kernel project aims to run in no more than 10KB of RAM using a 32-bit processor.

More specific goals are stated for Zephyr as well:

  • It will be independent of CPU architecture, although it initially supports only x86, ARM and ARC.
  • Supported platforms include Arduino 101, Arduino Due, Intel Galileo Gen 2, MinnowBoard MAX, Quark D2000, Quark SE and the NXP FRDM-K64F Freedom board.
  • It will be modular, scalable and highly secure.
  • Connectivity support includes Bluetooth, Bluetooth LE, IEEE 802.15.4, CoAP, IPV6, and NFC.
  • Powerful development tools are part of the package with the kernel and select components open source under the Apache v2.0 License.

Long-term Impact of Zephyr on IoT Development

Despite IoT’s small-scale granularity, extreme scalability and potential for millions of new apps, its lack of standards and plethora of proprietary solutions have posed a significant hindrance to it being a hotbed for innovation. Diminishing such barriers, therefore, may be the Zephyr project’s greatest contribution to the growth of IoT.

By definition, open source platforms enable thousands of developers worldwide to invent new use cases, new apps and unique solutions. If the platform is inadequate for them to implement their solutions, they are free to modify the platform itself. This aspect will provide an enormous stimulant to IoT expansion. Zephyr’s primary goals to create an OS that is extremely flexible and scalable fits hand-in-hand with the open source development paradigm.

Conclusion

The Zephyr project will be seen in hindsight as a major inflection point in the progress of IoT. It is a boon to developers, enterprises and ultimately for consumers who will enjoy a much higher degree of interoperability, reliability and security among the IoT devices that inhabit their daily lives. Given that open source Linux is already utilized in a majority of enterprise networks and computational infrastructure, Zephyr adoption should be relatively smooth sailing as compared to a fragmented world of one-off OS solutions.

Internet of Things (IoT) Predictions for 2016

This year, nearly every major intelligence gatherer/analyst is jumping on the IoT bandwagon making forecasts about where IoT is heading in 2016 including Gartner, IDC, Forrester, WEF and Machina Research. We did the same thing to bring to you what we think are the best-of-the-best predictions for IoT trends on 2016.

IoT Enterprise Adoption Reaches a Tipping Point

The major thrust for IoT continues to come from the enterprise side versus the consumer side of the markets. According to Forrester, over half of businesses are already utilizing IoT or will within the coming year. Most of these enterprises are leveraging IoT to optimize use of company assets or as part of a transition from discrete products to product-based services. Further accelerating this trend will be the emergence this year of end-to-end IoT platforms that will go a long way to reducing the potential complexity of creating IoT apps and services.

Consumer Awareness Is on the Rise

On the other hand, 2016 is a marker year in IoT consumer awareness as most customers are now explicitly inquiring about the number and types of sensor/communication technologies that are embedded in new products from kitchen appliances to home security systems to automobiles. Companies this year are more than ever touting their products’ “connectedness” and home insurers are offering discounts to smart house homeowners.

Semiconductor Companies Are Jumping In

Intel especially has come to recognize that IoT is a hugely expanding market for them that could offset their shrinking sales in the PC market. IoT was a major consideration in their acquisition of semiconductor company Altera last year. This year they are developing complete IoT devices including sensors, embedded CPUs and communications. They are putting strong focus on applying their newly-found IoT expertise in the retail sector as evidenced by recent partnerships with SATO and RetailNext.

IoT Player Consolidation

Other big-tech companies are positioning themselves for IoT growth by acquiring smaller players, and that will accelerate in 2016. Cisco bought out IoT analytics company Parstream in late 2015. More recently, they acquired the largest IoT platform provider in the world, Jasper. Sony is acquiring chip company Altair Semiconductors, which is a leader in modern chip processes and cellular technology.

Keep your eye out for several rumored acquisitions coming this year including FireEye, Proofpoint, Fortinet and CyberArk.

The Numbers Continue to Astound

If the previous predictions seem a disputable, here are some hard numbers predicted by Gartner for the coming year:

  • 2016 will see 6.4B “things” connected worldwide
  • Over 5 million of these “things” will be connected every single day
  • Between consumers and enterprises, IoT hardware spending will exceed $1.4B
  • IoT service spending will be 22 percent higher than last year and total $235B
  • The downers are that there will be a multi-billion black market spawned that sells fake IoT data, personal privacy breaches will increase and the vast majority of IoT projects will take far longer than planned.

Public Sector IoT Accelerates

Smart Cities, Smart Grids, Smart Buildings are all areas that are accelerating this year, especially in Germany and Scandinavia. Finland, for example, uses trash can sensors to reduce the costs of garbage pickup by 30 percent. Although the trend in public sector IoT began in Europe, it is accelerating in the Asia/Pacific region as well as in North America.

This year governments across the globe are starting to implement IoT rather than just talk about it. They are connecting motion sensors to streetlight to save energy, distributing smart parking apps that monitor when spaces free up and are employing IoT to optimize the use of and to share public services assets such as road equipment and transportation.

Conclusion

Underlying mega-trends continue to pump juice into IoT, such as cheaper sensors, processors, bandwidth, the long-awaited move to IPV6 and various types of wireless coverage in every nook and cranny.

A few holdouts still see IoT as nothing more than an already flat fad given that the IoT equivalent of “flying cars” is still not on the horizon. However, in the face of the numbers and moves by some of the biggest tech companies, it is hard to take these critics too seriously.

So far, the reports of IoT’s demise are supremely exaggerated and many past predictions have been exceeded already. IoT will surely experience bumps and jolts along the way to the prediction by IDC that IoT spending will surpass $1.7 trillion by 2020, but for this year and beyond it appears to be an unstoppable wave that is far from cresting.

How IoT Impacts Your Organization

Increasingly, companies across all business sectors are realizing they need to adopt an Internet of Things mentality, or Internet of Everything as some put it, in order to keep their business expanding in the right direction. In many cases, IoT is only understood as a newly coined buzzword without a full comprehension of how it will impact the business from inside and outside. We look at a few of the most important ramifications for your business to become IoT-ready.

The Prerequisites for IoT Participation

If your business has even a hint of being behind in terms of technology, one of the first orders of business should be a full evaluation of your current machinery, network and computational capabilities. The main question you have to ask is how well-connected your current infrastructure is to the Internet, and does your business’ infrastructure have the capability to communicate with itself and internal business processes.

Upgrading your technology capability for IoT might be done piecemeal, but it is more likely to require a full overhaul over the next few years. The basic rule of thumb here is to make sure that any new equipment and its software is designed to connect to the Internet.

Get on the Cloud Now

As part of your technology capability evaluation, think about how your activities, processes and machinery can be moved to the cloud. Not only can use of cloud infrastructure and cloud-based services reduce capital costs, it is an ideal way to make sure your company keeps up with IoT developments and other technology improvements. It also enables the business to scale up and down seasonally or permanently as the business grows or new markets are entered.

Invest in Your Employees

Even if you personally are not fully conversant in IoT and its value relative to your business, it is time to start educating your employees. You may find they already know a lot more about the topic than you do. They probably will provide a wealth of ideas about improving the business’ IoT readiness. This is especially true of Millennial employees as they are more than likely to already “get it” with regards to IoT.

Brainstorm Taking Advantage of IoT

Once you and your employees understand the business is adopting an IoT-centric viewpoint, it is time to imagine ways to leverage it to increase sales and profits:

  • Look for ways to reduce operating costs with IoT. This can be done by using IoT products to reduce electricity or fuel consumption, improve asset management, perform more efficient machinery maintenance, increase operating uptime or make employee life-work balance more effective.
  • Seek out ways to use IoT to improve your customers’ experience. This is especially applicable to retail outlets, which can utilize closed wireless networks in stores plus downloadable apps that provide customers a higher level of connection to products and offers. Done correctly, this connectivity acquires data pertaining to customer preferences and buying habits.
  • Invent new, connected customer-centric services by leveraging the plethora of sophisticated, but easy-to-use, IoT development platforms available these days. These are new products or promotional collateral that will keep customers connected to your business throughout their daily activities.
  • Ask how to make your existing products more IoT-friendly. IoT-capable appliances, tools, electronic devices and other products are increasingly including IP-addressable components that allow them to be monitored or controlled remotely by customers or maintenance services. The majority of customers now expect to find such capabilities in all manner of products. If your products lack them, they may be at a competitive disadvantage.

Readiness to Handle Big Data Flows

Larger businesses, especially those with a broad portfolio of IoT-enabled products, need to prepare for an onslaught of data flowing from an expanding deployment of IoT products that growing at a 30+ percent rate per year.

Regardless of whether your enterprise is moving to a cloud infrastructure or not, these data flows require upfront planning, ongoing monitoring and resource allocation. Especially if your business is planning to take advantage of real-time data analytics from thousands or millions of IoT components, you probably need to invest in higher performance hardware, software and expert training.

Conclusion

The Internet of Things is no longer a future concept. It is happening right now and accelerating at a phenomenal pace. Every business, whether in the technology sector or not, needs to educate themselves regarding the prerequisites to participate in IoT, and what it means to their business operations, to their customers and their product portfolios.

IoT might require a complete re-thinking of your organization’s structure or it could be approached in smaller steps, but the time to start thinking about how IoT impacts the business is today.

IoT and Enterprise Security Risks

In one sense, the Internet of Things has been around since the early days of the Internet. The geekiest of early Internet users found that it was child’s play, for instance, to discover and interact with – unauthorized of course – thousands of unprotected Windows PCs and their peripherals. The IP addresses of these devices were easy to find on public hack lists.

The State of Today’s IoT Security

Unfortunately, for much of what constitutes the IoT today, security is hardly better. In fact, there is a website, Shodan, that lets anyone search for networked devices, many of which are unsecured, across the globe. The majority of these are webcams, but there are many scanners, printers, control devices, routers, ftp sites and more that are exposed.

Clearly, if IoT is to meet growth expectations and survive a series of inevitable high-profile hacker attacks along the way, it needs to start looking a lot less like a sitting duck.

Steps to Improve Enterprise IoT Security Now

The current paucity of IoT security means that enterprises must augment IoT vendor security with some common sense precautions. The first step is for IT to use the network management system to scan for all exposed IP addresses and set alerts when new ones are detected.

Additionally, it is good practice to verify that each device is actually what its network profile says it is and determine if it should be network accessible at all. Its authorization protocol should be evaluated for sufficiency compared to the asset being protected. It is common, for instance, for network device username/password pairs to have never been changed from their defaults.

Imagine the Problem Scaled Out Exponentially

A quick survey of enterprise IoT devices may cover dozens, hundreds or even thousands of devices. Now, imagine this task at the scale of the 10s of billion connected IoT devices expected to be in place by 2020.

To extract additional value from IoT, there will be layering apps that aggregate data and control streams from a large diversity of such devices to look for patterns that might legitimately be useful for predicting, say, the weather or the velocity of a particular market sector. Illegitimate uses of such data that violate the privacy of individuals and groups of individuals in this manner are not difficult to imagine however.

Such a scenario is bad enough, but it gets worse. Future IoT edge devices will collaborate among themselves through data sharing and behavior modification of fellow edge devices, which may come from different manufacturers. Robust communication and API standards will make this possible and it is generally a good thing. However, such inter-device activity makes an already humungous hacker attack surface exponentially bigger.

Approaches to a Secure IoT

Best practices, standards and technology with regard to security are already in place for the computational, storage and networking resources in the Internet, but these will need serious upgrades in the context of IoT. One hundred percent security will never be achieved, but applying risk management techniques will mitigate the potential for catastrophe.

As IoT matures, manufacturers of edge device packages, network providers, middleware vendors and analytics software producers all must contribute expertise and tools:

  • Privacy and security measures must be built into all layers from sensors to dashboards. Since IoT devices are essentially nano-computers, more security must be built into the hardware. A full-stack approach will provide defense-in-depth that could contain attacks within any single tier.
  • Analytics must take into account security risks in addition to business algorithms. This additional functionality should be aimed at detecting unexpected or suspicious network behavior. This ability could, for instance, detect malicious traffic indicative of a distributed denial-of-service attack.
  • In much the same way that lost or stolen devices in an enterprise BYOD environment are handled, IoT endpoints that have “gone rogue” should be disabled. Of course, a disablement interface must be managed as a security risk also.
  • End users at both the edge and the analytics tier must be thoroughly educated in how to protect their privacy, which behaviors to avoid and the signs to watch out for that may indicate a security or privacy breach.

Conclusion

As with any new technology, there are benefits and there are risks. In the case of IoT, it seems that both sides of the coin are equally gargantuan. Until IoT security standards and practices catch up to the impending explosion of networked edge devices now being deployed, individuals and organizations have to be the first line of defense in ensuring reasonable security and privacy through the use of IoT.

IT security teams need to review their own security best practices and update them to account for the new world of millions or even billions of independent, connected, smart devices that are able to communicate with one another and are delivering torrents of unstructured data back to the enterprise.

How to Develop Apps for the Internet of Things

Analysts are generally in agreement that the Internet of Things will generate an enormous amount of economic value. They only disagree on how big the wave will be. Indications are that 10s of billions of IoT edge devices will be in place over the next few years and that over half of homes in developed countries will have IoT incorporated into their daily lives via their cars, home automation, appliances and wearable technology.

One of the key enabling pieces for IoT expansion is the growing presence of IoT-ready development platforms coming online. Some are offered by tech giants such as SAP, Microsoft and IBM, but many smaller players exist that offer all the tools a company needs to develop their own IoT contributions rapidly and cheaply.

The Three IoT Development Tiers

Edge Devices

The endpoints of IoT are as diverse as they are plentiful. They mostly consist of sensors packaged with a low-power microcontroller, real-time OS and wireless networking capability that outputs its data via an Internet gateway. The majority of IoT hardware platforms have no screen, but provide an HTTP or other common protocol interface through which they are managed.

The types and classes of IoT sensors are virtually endless including thermometers, light meters, tachometers, manometers, cameras, GPS receivers and more. The applications built on top of these sensors are equally numerous. Most are engaged in monitoring activities in health care, farming, manufacturing management or keeping track of more mundane things such as your refrigerator’s efficiency.

Data Ingestion Tier

IoT device data are sent to a second middleware tier of software and server infrastructure that provides an in-house or public cloud processing service. This tier provides IoT edge device vendors or users a way monitor and update devices en masse. It also aggregates, organizes and pre-processes the relatively unstructured data streaming in from the edge.

End-User App Tier

The topmost tier in a typical IoT hierarchy applies sophisticated analytics capable of providing real-time insights into how an enterprise’s products are performing and being used. This software feeds directly into automated business decision processes that, for instance, regulate supply chains. It often provides real-time, interactive dashboards with several tabs of graphical and customizable data displays.

Leveraging IoT Platforms

Assuming that your organization is software focused and is leaving the innovation and manufacturer of edge devices to hardware companies, your activity will be concentrated in the ingestion and end-user tiers. Leave it up to the big manufacturers to continue pumping out increasingly cheaper and more able IoT edge devices.

Rather than taking a painstaking, do-it-yourself approach to creating the software in the top tiers, there are plenty of ready-made IoT development platforms of which you can take advantage. Many of these, such as SAP, Oracle and others, provide a complete end-to-end IoT platform that includes middleware and analytic APIs to which you add your customized app layer. There are also a number of startups whose products can spin up your IoT development in a hurry.

ThingWorx

ThingWorx is a highly flexible IoT development platform that can even be used by non-coders. Their Composer™ tool models all three tiers, which simulates a complete mockup of your IoT app including program logic, storage, security and visualization.

Their drag-and-drop Codeless Mashup Builder pulls together apps, dashboards, and mobile interfaces without any code to create a complete solution. Bringing on a new sensor type is simply a matter of writing a JavaScript connector to incorporate it with the ThingWorx platform.

ThingWorx also provides device management utilities that monitor and interact with all the connected things in your app. Their Business Process Manager enables analysts to create live process flows from single or multiple edge device inputs.

Xively

Xively apps are written in whichever development language your developers want. Apps integrate with their IoT API, via HTTPS or other communication protocols. Companies typically get their first IoT app prototype up and running in a week.

Their cloud platform includes everything needed for rapid IoT app development:

  • Secure handling of consumer and operational data
  • Real-time, secure messaging and routing protocols
  • The ability to customize permissions based on group or object properties
  • User and device management via a sophisticated Web interface
  • Storage for data streams and archiving
  • The ability to build analyst dashboards, predictive analytics and automated business decision-making processes without coding

Xively’s APIs support data transfer and control via almost any protocol you wish including REST, HTTP, HTTPS, MQTT and more. They provide connector libraries that are installed on edge devices that pre-packages data of interest and transports it to Xively’s cloud platform.

Conclusion

Besides the myriad IoT development platforms already available, there is a growing body of code examples showing up in places such as GitHub and IoT forums. It is a dynamic environment, however, and lacking substantial standards, so it is probably a good idea to assign your IoT app development to your most innovative programmers. Alternatively, you could wait until the field is more fully developed, but then you risk falling behind what might be the biggest tech wave since the Internet.

Microservices vs Service Oriented Architecture (SOA)

At first glance, Microservice architectures appear suspiciously similar to software developers who are familiar with Service-Oriented Architecture or SOA. In general, they both provide solutions to avoiding the creation of inefficient, unwieldy monolithic or layered applications that are difficult to develop, modify and deploy. However, each has distinctly different approaches in terms of scalability, messaging and how services are coordinated. These differences govern the areas where each approach is most applicable.

SOA Today

The SOA architectural pattern evolved over decades. It is an approach to organizing complex amalgamations of enterprise-level software into collections of interdependent services. Most commonly, it uses Web Services technologies for service communication such as SOAP or REST. JSON is also a popular choice in service communication protocols.

SOA commonly relies on a shared data model with multiple hierarchies and complex relationships between dozens or hundreds of data structures and services. It uses a tiered organizational architecture that contains a centralized messaging middleware for service coordination plus additional messaging functionality.

Microservices

Microservices are a service-oriented architectural pattern as well for defining distributed software architectures. The pattern aims for better scalability, decoupling and control throughout the application development, testing and deployment cycle. It also relies on an inter-service communication protocol, which could be SOAP, REST, JSON, MSMG or a number of other technologies. Beyond these similar characteristics, the differences between SOA and Microservices become more apparent.

Decoupling of Services

Because SOA is based on a philosophy of sharing as much as possible between services, e.g. databases, it tends to create tight data coupling between services and other system components, which increases its resistance to changes. If, for example, the schema of data stored in a database shared by multiple services changes, any service built upon that schema, even if it does not access the modified data, must be re-tested to ensure the change has not negatively affected the service.

Microservices, however, are built upon a concept known as a bounded context, which leads to a self-contained association between a single service and its data. Although the sharing of services cannot be completely eliminated using Microservices, it is meaningfully minimized. Where sharing is required, it might be avoided by the replication of common functions across services rather than using data sharing. This inherent data decoupling facilitates more frequent deployments and reduces testing scope.

Coordination of Services

SOA typically employs a central hub controller to maintain an orderly execution of services. Microservices, on the other hand, rely solely on inter-service communication. Each microservice calls another microservice as required to complete its function. Furthermore, called microservices may call other services as needed in a process known as service chaining. Too much chaining, however, implies a non-beneficial degree of functional coupling, which should be avoided.

Messaging Middleware vs. API Layer

These distinct execution/coordination models result from fundamental macro-architecture differences between SOA and Microservices. SOA relies on a central messaging middleware layer in a 4-tier model, whereas Microservices use a non-coordinating API layer over the services composing an application.

Although SOA’s use of a centralized messaging layer enables additional capabilities such as message transformation, mediation and routing, it leads to increased complexity plus elevated data and functional coupling, which raises maintenance and deployment costs.

Microservices utilizing a relatively simpler API layer leverage it as an abstraction layer to the services consumer. The granularity of services or their internal data representations, for instance, can be easily changed without any modifications required of the requesting application on the other side of the API layer.

 

There are further distinctions between SOA and Microservices with additional implications in terms of their suitability for different kinds of applications and runtime environments. SOA was created to address the integration of an array of heterogeneous applications in sizeable, complex, enterprise systems where services are shared across applications and functions. It still serves well in this capacity.

Microservices are more appropriate than SOA for smaller, web-based applications that do not require explicit service coordination and have a minimum of shared components. They permit “goldilocks” adjustment of granularity and highly independent services. This model integrates well with continuous deployment models of software development.

Of course, the two approaches are not mutually exclusive. A Microservice approach enables an organization to quickly deliver an agile application, which, as needs require, can morph into an SOA-style architecture. Likewise, an SOA-based system may benefit in terms of maintenance and performance when applying Microservices principles to a re-factorization of its services or architecture.

Introduction To Microservices Architecture

The Motivation for Microservices

Separating the various components of a single application’s architecture carries a number of well-known advantages. For one, the components can be distributed among several members of a development team, which increases the ability to deliver the application more quickly. With well-defined interfaces between the components, developers and testers increase their focus and efficiency via a reduction in the scope of functionality with which they must work.

Componentization of applications also increases their robustness. Should one component fail, for instance, the remainder of the application can continue to function while the errant component is restarted. This generally has a very positive effect on the app’s user experience versus a full crash/reboot of a non-componentized application.

Another advantage is the opportunity to distribute the execution of the application’s components across multiple physical or virtual execution environments. Not only does this further increase resilience but it usually improves performance and scalability. Depending on what the app does and how the decomposition is done, it is possible to duplicate only particular components instead of the entire app to further improve efficiency.

Finally, microservices offer an opportunity that goes hand-in-hand with the goals of continuous delivery of software. They improve defect repair turnaround time and the ability to deliver rapid updates or new functionality by component replacements versus re-deploying an entire application.

Are Microservices a New Concept?

The overall concept upon which microservices are based is not fundamentally new. SOA, which shares many of the same characteristics and goals, has been in use for decades in one form or another. If you prefer, think of microservices as a refinement of SOA.

Microservices are typically produced on a smaller scale than SOA however. SOA is typically used to employ intercommunication between suites of large enterprise applications in an Enterprise Service Bus configuration, whereas microservices are more compact and utilize fast messaging for communication between themselves.

Microservices were developed to serve end users who increasingly demand that their apps and services be highly scalable, modular, responsive and adaptable than the typical SOA implementation. They are also more suited for today’s diverse mobile device environment to which wearables and IoT are quickly being added. Additionally, with microservices, new tools and techniques are being employed to deliver reduced development time and more resilient runtime operation.

Microservices Enabling Technologies

Besides a specialized approach to the fundamental concepts behind SOA, microservices projects typically utilize specific technological approaches including the preferred use of open source code and container technologies.

Small, component decompositions that enhance the ability to tweak apps on the fly makes dealing with licensed proprietary libraries impractical. Furthermore, due to the requirement that components carry their own API, sharing of components across applications becomes much easier, which would be negatively impacted within a backdrop of licensing issues.

Container technologies, such as Docker, are ideal tools for the microservices world. Containers essentially allow microservices to run as separate apps with their own allocations of CPU, memory and network resources independent of other microservices. Containers are not a requirement for microservice implementation, however, but they often improve portability across infrastructures.

More Than a Technology

It is important to bear in mind that microservices require more than just technology but a different development mindset too. The decomposition, for instance, of an application using microservices is more often based on business needs than architectural/technological concerns.

Rather than, say, dividing the app according to its UI, database and networking layers, it is a better, customer-oriented, approach to partition the app according to the functional requirements of the end user. Because of this characteristic and the small-size granularity of microservice development, their use often thrives in organizations using agile development methodologies and especially in DevOps environments.

Microservice development is not standardized, at least not yet. It is more accurate to call it an emerging architectural philosophy much as SOA was even before it acquired a name. They are changing the concept of what an application is. Microservice apps, which are more or less a framework for running the components that is built upon are a different animal than the single-block, monolithic apps of the past.

At the end of the day, the microservice concept simply makes creating robust, scalable and versatile applications easier. It also improves their resilience, testability and maintainability even post-delivery. The technique is particularly suited to continuous deployment processes that are required to compete in the fast-changing world of new devices and “things” coming online at an exponential pace.

10 Top Tech Priorities for CIOs in 2016

Results from multiple CIO surveys from the likes of Gartner, Deloitte and IDG Enterprise are pointing out clear trends and priorities this year reflecting CIOs’ efforts to increasingly digitalize their businesses. These are generating a number of spin-off effects for how business is conducted, the incorporation of new technologies and the evolving role and responsibilities of the CIO.

1. Digital Transformation Continues to Dominate

With an expectation that revenues from digital products and operations will more than double over the next five years, the creation of a digital-first business is uppermost in the minds of most CIOs. The transformation effort requires CIOs to create new stakeholder ecosystems to support new technologies, support systems and development strategies required to stay ahead of the curve.

2. Increasing Use of the Cloud

CIOs across the board will increase cloud use to lower capital costs and improve both technological and market agility through on-demand service models. There is still plenty of work to do in this area as a Barclays survey in 2014 found that enterprise workloads were still 81 percent on-premises, though that percentage is dropping albeit slowly.

3. Struggling to Close Skills Gaps

Almost a quarter of CIOs, according to Gartner, see the lack of in-house skills in big data, analytics, predictive technology and digital business knowledge as the biggest obstacle to the success of strategic goals. On average, IT organizations already face a 20 percent attrition rate and a resurging labor market in the U.S. places imposes additional pressure on hiring, training and retention plans.

4. Re-defining the Role of CIO

Surveys indicate that CIOs are witnessing an evolution of their current role as their organizations continue the digital transformation they themselves are driving. The key principles driving new approaches to efficiency and agility, such as DevOps, are blurring previously distinct lines of responsibility between information, business, marketing and production teams. This situation means that in 2016 CIOs feel they must develop a broader set of business-related skills.

5. The Rise of Bimodal Platforms

One of the key strategies being adopted by 40 percent of CIOs this year in the quest for digital innovation is the creation of bimodal business platforms. This separates more exploratory technology and business pursuits from established business lines. The approach enables new techniques such as crowdsourcing, agile methodologies, adaptive sourcing and multi-disciplinary teams to flourish within the organization with the least disruption to stable revenue streams.

6. Embracing IT Innovation

More than ever, in 2016 CIOs see a digital future filled with an array of leading edge technologies such as robotics, AI, and IoT. Each of these technology trends engenders a myriad of BI and security opportunities as well. Thus, CIOs envision less time spent on operations and more on innovation in support of an algorithmic approach to the business of the enterprise.

7. Where CIOs Are Focusing their Budgets

Overall, CIO budgets are stabilizing this year according to data from an IDG Enterprise CIO poll. Over 50 percent report that they are increasing their spending to support Business Intelligence and Big Data analytics. Other areas receiving increased attention and resources include security applications and predictive data analytics, which are seeing budget increases by 49 percent and 47 percent of CIOs, respectively.

8. Continuing to Prioritize DevOps

DevOps continues to be a top priority for many CIOs in 2016, although full implementation still escapes many organizations as they try to overcome conventional development, test, operations and production processes operating within silos. Most enterprises moving toward DevOps models have only reached the stage of establishing liaisons between disparate groups in an effort to increase communication.

9. Shared Responsibility for Digital Leadership

A strong plurality of CIOs consider themselves to be their company’s digital transformation leaders in the latest surveys. Furthermore, CEOs in 2016 are increasingly viewing their CIOs as trusted partners in pursuing the business’ digital strategies. However, CEOs are also open to increasing digital knowledge and leadership across the C-Suite.

10. Moving Business toward Data-Driven Decision-Making

CIOs are in a unique position to drive their organizations toward algorithmic-based processes that rely less on intuition, past experience and preconceived notions and more on what the data is actually trying to reveal. This year continues a growing trend of CIOs unlocking hidden data assets and installing analytic dashboards that share vendor, sales, operations and customer information across more departments and deeper into the organization.

As 2016 starts, CIOs continue to be at the center of their companies’ digital transformation efforts. As their efforts to digitalize the business bear fruit, they are adapting to shared responsibility at the executive level for their company’s continued success in this area.

They continue to prioritize the employment of new, innovative technologies that will enhance the use of BI, Big Data and reap the advantages of increased automation and the rise of the IoT. These challenges, along with the familiar problems of improving internal skillsets, business knowledge and better use of on-demand services, will make 2016 a challenging but exciting year for most CIOs.

Effective Project Management While Outsourcing Software Development

online-project-management Effective Project Management While Outsourcing Software Development

How to Manage the Outsourcing of a Software Development Project?

Choosing to outsource software development instead of managing it in-house is often a decision that takes a lot of work off your plate. At the same time, you need to be concerned with the managerial role that you adopt to handle an outsourced project. Here we look at some tips to help you do that.

Outsourcing the development of your software involves a lot of risks. Right from the integrity of your intellectual property to the quality of the finished product, you need to be constantly on guard with an outsourced project. Project managing outsourced software development is a bit different from in-house, in the sense that you have lesser control over the operational management of the project. The key to a good vendor-client relationship is good vendor management. The management process begins right from choosing the right vendor to successfully handling the deployment. We have already touched upon the key aspects of the software development outsourcing life cycle. Let us look at what can be done to make an outsourced project a success.

Strategize Your Outsourcing Requirements

A careful ROI analysis of your project will tell you which areas of developments can be outsourced to better fiscal benefits. Depending upon the strength of your in-house team and the expected development costs, strategize which processes need to be outsourced, automated or developed in-house. This is the first step.

Find a Good Match

Once you are clear upon which of your projects you wish to outsource, find a good vendor. This is easier said than done, but the key is to look for a vendor with whom you can start a mutually beneficial relationship. Look for a compatible match and make sure that the vendor has the required expertise, technology and integrity to handle your project.

Product Specification

This means a careful visualization of the structure and functionality of your intended product. Document all your mark-ups, right from the initial brainstorming phase to the more nitty gritty architecture. Your product is only going to be as good as you specify it to be. Make sure you own the key product decisions in your contract, like the version updation and perfective maintenance.

Involvement during Development

Be actively involved in the development process through iterative wireframing and strategizing. Even though you are not involved in the actual development process any more, you are very much the part of the timeline and budget related deliberations. Clearly specify your needs to the vendor in detail. One way of doing it is the so called ‘connextra’ format – ‘As a <role>, I want <feature>, so that <benefit>’. This makes sure that there is no discrepancy in what your goals are.

Deliverables and Result Orientation

Make sure you get timely updates and deliverables as specified in your contract. You can now afford to keep a result oriented outlook with respect to your project. Keep a clear track of the vendor’s progress and make regular assessments and tests to check ts credibility.

With a clear-cut and conscientious approach, you can be a good project manager for your outsourced software developments.Get in touch with OptimusInfo for help regarding your software projects. With years of experience and industry expertise in dealing with clients, we can make sure that your deployment is a success.

Is Scaling Up Quicker Through BaaS?

Backend as a Service is a relatively new concept that is catching on quickly in the industry. If used the right way, opting for BaaS instead of working on the backend in-house can make a huge difference in your profit margins and company success.

Advantages of BaaS

When we talk about mobile application development, we often focus on the actual customer-end device and pay attention to the app development and design process dilemmas. Sometimes we end up losing sight of another aspect that is crucial for the system to work – the behind-the-curtain processes that handle system requests, store data, manage users, support push notifications, etc. – the backend. BaaS provider companies offer these services and more using custom software development kits and APIs that give a cloud based support to your mobile application. Without a good backend service, your cloud based app is essentially as good as a cardboard cutout. Delegating backend responsibility to a outside source might sound like a risky decision but it takes an immense monitoring and maintenance weight off of your shoulders. There are many advantages of going with a good BaaS provider. Let’s look at a few:

Makes Developers more productive

BaaS providers essentially take over writing. deploying and managing the backend of your mobile application. This means that you do not have to go out and buy yourself a Linux VPS, write the backend code (in Ruby, Python, Java, etc.), choose a database and configure a permanent domain and URLs. BaaS will handle the bridge between frontend of your app and various cloud based backends via a unified API and SDK. This leaves your developers free to focus on other important aspects of the app like design, innovation and user experience.

BaaS is Extremely Elastic

BaaS brings a much needed flexibility to data access. This means that there is no rigid capacity that data must fulfill. Storage capabilities are fit-to-size, ie, they increase or decrease according to the data requirements negating wastage of space saving your money and resources. This extreme scalability of BaaS is especially crucial for small to medium sized startups who are looking for a long term solution to a growing product.

Save Time, Save Money

With BaaS, you save massive amounts of time and money that you would have invested in building your own backend – hiring and paying developers, spending days and weeks in backend development. Nor do you have to spend money towards a cloud service like Amazon. BaaS providers also manage data storage facilities. This means that your developers do not have to utilize time and resources in monitoring and maintaining data storage. BaaS provides high levels of security and risk management services, saving you from the extra burden of crisis address and data recovery in case of a problem.

Analytics and Disaster Recovery

Mobile application analytics are tough to gather by yourself, but their power cannot be underestimated. With BaaS, you have a ready system in place to gather your system metrics and analytics. This is precious data, because you can study it and mould your product for the better. At the same time, BaaS carries with itself inherent features that make it essential to protect data in case of disaster or outages because it mitigates the efficacy of disaster including agents.

BaaS is a novel way of getting ahead of the competition and scaling through to the next echelons of business. Contact OptimusMobility to get to know more about BaaS and its benefits. With quality resources and expert professionals, we can guide you through the process of making your mobile applications successful.