Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Build Management Is Critical to Developing an SOA Enterprise
The potentially greater number of vulnerabilities in a SOA makes it more important

Developing under a Service Oriented Architecture (SOA) is different from traditional development. A large set of business changes will now be funneled through a relatively small number of enterprise services. An inefficient or bad build system can impact a greater number of business changes. As services are exposed to more consumers and so to more potential threats having a robust and secure development environment is more important than ever. Centralized role-based control of builds and reporting of build activities is critical for incorporating a greater number of changes and managing the security and auditability of Web Services.

Build management is a critical operation for transitioning to an enterprise application environment modeled on SOA. Achieving a repeatable application lifecycle that is efficient and secure is strongly influenced by how well the build management system works. Instead of different client applications all connecting to different data sources to retrieve whatever bits of information they need, client or consumer apps under SOA will simply ask for a customer record from a service designed to provide a full customer record and nothing else.

The Service Model
Different consumer applications that need customer information will all request that information from the same service and that promotes great reusability. In practice, the number of these kinds of enterprise business services-facing consumer apps will be relatively small. And, compared to a single traditional application, developing these enterprise services results in a larger number of changes being made to the smaller number of services. Incorporating changes into the services is where build management comes in, and incorporating larger numbers of changes puts increasing demands on the build system.

The build process takes the application source code and translates it (compiles it) into a form suitable for running on a machine or application server. The build for an application typically involves several hundred source and resource files and dizzyingly complex dependency relationships that require certain steps in the translation process to occur in a certain order. The goals of a successful build process are that it be, in order, repeatable, auditable, standardized across applications, automated, highly performing (usually meaning as fast as possible) and able to produce reports and metrics for organizational performance improvement. A successful build process is highly dependent on good version control and is part of good overall software configuration management.

Loose Coupling
Another goal of a SOA is loose coupling between the consumer applications and the service. This means that the consumers are developed relatively independently from the services. This should drive down operational costs by creating smaller, more manageable application components. While it's everyone's dream to work independently and not be bothered by what others are doing, in an enterprise environment nothing happens in a vacuum and there always has to be coordination between teams at some level. This is very different from the situation of a service exposed over the Internet for anonymous public applications to consume. This shows that implementing an SOA in an enterprise environment will be very different from other types of implementation.

Loose coupling really boils down to not having a direct build dependency between the consumer and the service. This could allow (in theory) each consumer to merrily follow its own release schedule, independent of changes being made to the service. The reality is the consumer still has to know how to talk to the service. In a Web Services implementation of SOA, there's a WSDL file (Web Services Descriptor Language) that tells the consumer how to talk with the service without having a direct build dependency.

Considerations of performance and security have meant that some organizations have not been able to achieve loose coupling with their chosen technologies. This means that the build dependencies can be as complex as traditional apps or even more so. Changing the service could mean that every consumer app that uses it has to be rebuilt. This has an expensive impact on consumer applications' testing and release schedules, introducing risk to the production environment. As the technologies supporting SOA mature, it will be easier for organizations to move to loose coupling and simplify the enterprise build dependencies and other organizational benefits.

Security Concerns
There are a few general security concerns particular to SOA. By virtue of being a new methodology built on new technologies, security holes can easily arise in one of the technology products. One major industry analyst states that 70% of security holes addressed in enterprise environments will be reintroduced when moving to a services-based infrastructure.

One particular concern is that loosely coupling consumers and services means that tight, secure communication between the two can be a challenge. Another is that since services are exposed internally, anyone can theoretically write a consumer for that service in some implementations of SOA. For mission-critical business applications, you don't want just anyone accessing your customer record service however. A big investment in securing a SOA is required not only to thwart malicious use of the services, but to prevent an unintended impact of a legitimate consumer using a service in an innocent but inappropriate way.

Best-Practice Build Management
Before we can embark on a discussion of build and security issues of a SOA we need to cover the fundamentals that make up a good build management system. This was the stuff of articles of four or five years back, so if you're not covered here, your organization is not as competitive as it could be. (see Figure 1)

As mentioned, version control is a critical component of good build management and having a centralized source code repository as part of a version control or full software configuration management toolset is a fundamental requirement. You have to be able to control and identify precisely the application code going into the build. Centralization provides the standardization that reduces the overall number of processes and procedures and allows automation. Besides application code, you also have to manage the versions of third-party library sets that, say, provide database, messaging, and logging functionality.

It's vitally important to separate actively changing code from base-line versions identified by the version control system. The best way to do this is to have an isolated build environment with limited access where the only application code introduced into the environment comes from the version control system and isn't copied over by a person or some external process. This allows tight auditing of the build and you should be able to identify the exact version of every file used in the build and trace it through the version control system to the person, time, and date of the change.

Having a build coordinator responsible for maintaining the security and integrity of the build is a widely accepted best practice. The developers' responsibility is to get coding changes out the door to the test and production environments as quickly as possible and this can be at odds with best-practice build management that provides carefully controlled conditions and precise library use. The challenge is to provide a build system and process that can serve both developer and corporate needs.

Build Considerations for a Secure SOA Environment
Library control in builds is more important than ever. Using the wrong version of a third-party library set can mean incorporating a published security vulnerability in your enterprise application. Because of the exposure of services to multiple consumers, vulnerabilities that previously had no impact in a traditional application may suddenly become important for an enterprise service.

Capitalizing on best-of-breed build management tools can really be a cost-effective way to extend your build management capabilities into detailed reporting and monitoring. These capabilities will help create a more agile and controlled build environment as demanded by the challenges of creating a service-oriented infrastructure. It's important to distinguish between tools that help you manage your existing build system (Cruise Control, AntHill, BuildForge) from tools that only control the translation process (ant, maven), and tools that can do both (Openmake, Serena Change Man Builder).

Detailed dependency reporting and analysis helps developers track down bugs, validates secure development, and provides a watertight audit trail. Dependency reporting should include not only the file use in the build, but associate those files with specific versions of code in the source code repository that can be tied to specific business change requests.

Builds can be done "continuous integration"-style and scheduled for hourly builds or triggered by source code repository change, or simply done on-demand as the situation requires. Branching the code base could put further demands on the build system. Make sure you can handle this since developing enterprise services can involve more branching so consumers can continue to use an existing service while a new version is developed at the same time.

Summary
Having a secure build environment with tight control over the library sets used in the builds and having a full audit trail of what code was used in the build is an important part of secure development. The potentially greater number of vulnerabilities in a SOA makes it more important and starting with a tight build control system will help you avoid vulnerabilities that may be reintroduced. In addition, capitalizing on the state-of-the-art build management tools that are part of a top-line build management system introduces new capabilities for a more agile development environment while maintaining tight, secure control over code use.

About Sean Blanton
Sean Blanton has worked for Catalyst Systems Corporation for over 8 years. He has been an onsite configuration management consultant and taken the knowledge learned from customers to help develop, support and sell Openmake build management software. In the course of his work with the services side of Catalyst he has helped over 100 companies manage software change processes and builds (particularly). He has a PhD in Physics from the University of Chicago and a BS from Columbia University.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
Can you bring services from the cloud to your customers faster and have them adopt it with ease of use or bring the power of bundled services to the fingertips of your clients without creating new rigid ‘apps stove pipes'? Do you want to prevent your business running away to publ...
OCZ Technology Group, a provider of high-performance solid-state drives (SSDs) for computing devices and systems, on Tuesday announced the Z-Drive R4 CloudServ PCI Express (PCIe) flash storage solution, designed to accelerate cloud computing applications and reduce operating expe...
Many organizations have embraced, or are considering, the benefits of cloud computing – speed, flexibility, increased expertise, shared workload, reduced costs, etc. The benefits are many – but so are the risks. What are the threats to cloud security? Which parties assume respons...
In August 2011, SHI Enterprise Solutions (ESS) division launched the SHI Cloud, offering reliable and cost-effective industrial-grade cloud computing platforms. That same division achieved an 82 percent increase in revenue over 2010.
SoftLayer Technologies on Tuesday announced the immediate worldwide availability of SoftLayer Object Storage, a redundant and highly scalable cloud storage service that allows users to easily store, search and retrieve data across the Internet, with optional CDN connectivity, or ...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE

Breaking Cloud Computing News

Alvarion Ltd. (NASDAQ:ALVR) a provider of optimized wireless broadband solut...