Archive for the ‘Uncategorized’ Category
Software Architecture: The road map to a successful customer experience
Software architecture is a concept in software development that conceptually defines the overall structure of a system.
The term software architecture can be more defined into 3 areas such as:
- Enterprise Architecture – The long term architecture and how it aligns with the business strategy.
- Data Architecture – Aligns how data is being produced and consumed and its interrelationships between other data objects etc.
- System Architecture – How the individual application is structured
You might be asking what the purpose of having a well thought out software architecture is, it’s pretty simple:
Software Architecture is the road map to a successful customer experience
Based on the number of systems an organization has and the number of services that these applications provide, it will determine the type of software architecture you need to implement. At the end of the day, what drives the architecture is the customer experience of the product. You want to make sure you look at both sides of the coin: the technical side and the business side. A well designed architecture that provides sub-par value to the consumer has no benefit other than creating an interdependent system that just sits there.
Here are some of the reasons why you want a durable software architecture:
1. Strategic Advantage - Having highly flexible and scalable systems allows a team to quickly adapt to competitive environments and market conditions. The more modular the system, the more you can align it with business objectives.
2. Designing better systems - When designing new systems you want to pay close attention and be careful about the architecture of the system. If it’s not scalable, flexible and does not perform well in high load business environments the product or service that you are selling to your customers will NOT be sufficient.
3. Enables re-use – A good architecture is structured into components that are easily reusable. If there is a function that is used many times it should be isolated. This lowers the cost to create additional functionality as well as it makes things easier to debug when resolving issues because the core functionality related to that function/service is on its own.
4. Controls complexity – Systems are complex, have different uses, interactions and integration points. To meet the demand of software systems today, this complexity needs to be properly managed and scoped out. If the system becomes too complex it will be prone to failure and upper management would be less inclined to touch the application and make changes to it at the risk of breaking existing functionality. Note: If you’re system is too complex, it is probably an indication that new design decisions need to be made to make it more robust and easily maintainable.
5. Enforces best practices – Developers and implementers have a wide array of options and strategies to develop one solution. There are industry standards that are well accepted and agreed upon by the general software community. Following best practices align with industry standards and objectives. The number one reason why a system is poorly designed is because it doesn’t conform to best practices.
Conclusion
Software architecture has been here for a while. Many system solutions have different requirements and therefore implement different architectures. In the service based economy, many companies today are converging towards a service oriented architecture approach to easily align with the strategy of the business. The most important thing to understand is that requirements and architectures continually evolve. One thing that worked well this year may not be the best solution in 3-5 years from now. Your customer changes dramatically and the architecture and software must adapt to meet their needs.
The transition from IPv4 to IPv6
Many users of the internet are oblivious to the standards that are behind the protocol that they are using. Did you know that their were different versions of Internet protocol (IP), the standard that is used to drive the internet? Well if you didn’t, now you know.
And I’m bringing this up because it’s getting an upgrade, from IPv4 to IPv6. If you’re wondering What Happened to IPv5, to make a long story short, Internet Stream Protocol(ST) was considered to be IPv5 by industry researchers, was scrapped. So we’re moving from the IPv4 standard to the IPv6 standard.
Why move from IPv4?
The number of current IP addresses is becoming scarce and they are running out. There are around only 17 million actual assignable addresses. As a result, more address space is required to meet the growing demands of consumers and businesses in the new economy.
What is IPv6?
IPv6 is the next-generation Internet Protocol version designated as the successor to version 4.
Links
There are many websites that go into the technical detail of IPv6, however, I won’t go into it here as they could explain it 10x better than I ever could. The main purpose of this blog post was to bring awareness to the IPv6 standard since IP versioning is pretty much transparent to the normal user.
Here are some blog posts to find out more about IPv6:
1. What is IPv6? – http://www.youtube.com/watch?v=IjV1Vo0_BRU&feature=fvst
2. The Difference between an IPv4 and IPv6 address. – http://www.computerperformance.co.uk/Longhorn/ipv6.htmhttp://www.computerperformance.co.uk/Longhorn/ipv6.htm
3 What is my IP address? What is IPv6? – http://whatismyipaddress.com/staticpages/index.php/what-is-IPv6
4. The move onto IPv6 - http://www.techworld.com/networking/features/index.cfm?featureid=1109
Grab RSS feed