Saturday, July 2, 2011

Which definition of IT Architecture (EA) is correct?

Architecture is a governance discipline from COBIT (4.1). COBIT definition gives us:

Enterprise architecture for IT—Description of the fundamental underlying design of the IT components of the business, the relationships amongst them and the manner in which they support the organization’s objectives

From the father of Architecture Zachmann, we get:
A set of design artifacts, or descriptive representations, that are relevant for describing an object such that it can be produced to requirements (quality) as well as maintained over the period of its useful life (change).

The Zachmann framework defines IT Architecture in terms of its goals, the TOGAF framework defines IT Architecture in terms of its contents. A set of design artifacts, that are relevant for describing an object such that it can be produced to requirements (quality) as well as maintained over the period of its useful life (change). The design artefact describe the structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.

From the famous development frameworks TOGAF the Architecture has two meanings depending upon its contextual usage:

A formal description of a system, or a detailed plan of the system at component level to guide its implementation.
The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.

Wednesday, May 25, 2011

osCommerce is a popular Open Source online shop e-commerce solution


Nets business departments are already seeing the benefit of using a complete open-source application for customer use. The osCOMMERCE solution is an example of this. osCommerce is a popular Open Source online shop e-commerce solution that is powered by a dedicated, strong, and ever growing community, and is released under the GNU General Public License. With this software solution you can choose Nets Netaxept (call to Nettsentrisk NTS)and confirm your order. This application was selected by the Nets business department. This is a complete open-source application, not only a java library or tool. Nets have made an integration module which makes it possible for customer to interface the Nets system Netaxept.

Thursday, April 21, 2011

Open-source a new marketing channel for your company!

The open-source community can be a new market channel for your company. Do you want your product to get noticed? You can use open-source attributes when marketing your product. You don't need commercial support on your software products, but you can use the the open-source channel to reach new customers. Your software company don't need to follow success example like JBoss, MySQL, eZ Publish, ZOPE and Trolltech. What's important her is your new market channel and at the same time the possibility to give back to the community.

Tuesday, April 5, 2011

Our use of database tools

For application development for build, tests, and debugs PL/SQL packages, procedures, triggers, and functions we use TOAD (http://www.toadsoft.com/toad_oracle.htm).

The TOAD-application comes both as a freeware and commercial solution. With the TOAD application developer can create and edit database objects such as tables, views, indexes, constraints, and users. TOADs SQL Editor provides an easy and efficient way to write and test scripts and queries, and its powerful data grids provide an easy way to view and edit Oracle data. TOra (http://tora.sourceforge.net/) and SQL Nexus (http://www.codeplex.com/sqlnexus) are tools that help the developer to identify the root cause of SQL Server performance issues. TOra is open-source and SQL Nexus is commercial products. Both tools can dramatically reduce the amount of time spend manually analyzing data. TOra is definitely one of the most mature open-source applications TOra is defined as a multi-platform database management GUI that supports accessing most of the common database platforms in use. Today TORa is a well-known standard for Nets developers.

Monday, March 28, 2011

100% Open Source test environment?


With software testing we check the quality of our product. Our software model is Agile which often employ test driven development and place an increased portion of the testing in the hands of the developer, later it can reach a formal team of testers.

Before we used a more traditional model, where most of the test execution occurs after the requirements have been defined and the coding process has been completed.

Our test environment is based on open-source test libraries like JUnit, HtmlUnit, JMeter and others. For traditional functional testing we use Fitnesse and Selenium.

Wednesday, March 23, 2011

What do you use for version control?

Version control lets us track files over time. Nets old standard was CVS, today subversion is the standard. The GIT solution has been evaluated but is not formally approved by the architect forum. It is also important to note that Novell (yes we are using SLES Linux) at this moment does not support GIT packages. It's possible to download GIT packages from kernel.org and from Novell’s build cluster (software.opensuse.org).

CVS has been used longer than subversion, and no new projects are using CVS. Nevertheless you will see that the CVS disk footprint still is the biggest part.

Operation developers use subversion in some projects (where subversion/svn has been installed) running their scripts on the different NFS file servers. The code from the operation developers is also included with common source code tree.

Problems with license mangement?


In practice open-source software is generally free or cheap to acquire, and the licensing regime is not onerous either to administer or to fund. Commercial software, by contrast, does not distribute its source code, and generally requires ongoing payments in respect of licensed software, which must be administered and calculated according to the terms of the licenses. With commercial software you also lose your control over your business code. In most cases support and service is slower than support and service you may get from the open-source communities.

Tuesday, March 22, 2011

Which application server (java) should you use…?

We have seen that companies have based their IT infrastructure around two platform types:

Proprietary middleware stack (IBM, BEA, Microsoft, Oracle etc)
• Open-source software (often Linux, Apache, MySQL and Perl/Python/PHP; referred to as the LAMP).


We have had very negative experience with JAVA EE-application servers, like IBM WAS (WebSphere Application Server) and its ESB implementation (Enterprise Service Bus). JEE has traditionally been a path to vendor lock-in even though specifications are free and open. We feel this has led us to the recommendation to avoid application server dependencies. This, in turn, has led us to a server solution based on the open-source servlet containers Jetty and Tomcat. The idea behind ESB did not fit our demands properly and instead we based our architecture on a simple single database message poll solution, and various other integration techniques.

It has proven difficult to find an open-source project with a level of customization and functionality to match the requirements for this architecture. Therefore Nets has developed an Java library (core-proxy), and will in the future provide this as a contribution to the open-source community as free software.

Open-source code is not only for idealists!

Today we find the environment for open-source code is not only for idealists. A company using open-source also has the possibility to buy support and help using the software better. We see today a lot of wealth creation in connection with services based on open-source. For the different companies using open-source we see better control, less errors and better services

.

Thursday, March 17, 2011

Which IDE (Integrated Development Environments) are you using?


Java developers in Nets today are using Integrated Development Environment (IDE) tools. The main two tools in use are Eclipse and IntelliJ IDEA. Eclipse is a free open-source tool and IDEA is not. Since we use Maven as the build tool, every developer is free to choose which IDE he uses, since Maven will ensure that we have no dependencies on proprietary to build, package or deploy our software. Eclipse is the most used IDE, but IDEA is popular in some departments. We estimate that 80% of the developers use Eclipse, and the rest is mostly using IDEA.

Monday, March 14, 2011

76% of our code is open-source code

Over a six month period we (Nets=old BBS) analyzed usage of open-source (code) by collecting data from 12-14 large development projects based on Java. Most of these projects have been initiated in connection with the Stay project. We have extracted the following vital statistical data from these projects

The source code deployed:

In house developed source code (including libraries)
External open-source code (including libraries)
External closed source code (including libraries)

The result was amazing, data shows that approximately 76% of code is open-source code, less than 7 % is closed external code, and 17% is developed in-house. The external code is reduced day by day as we convert our old code from WAS (WebSphere Application Server, from IBM ) to Jetty.

Wednesday, January 12, 2011

IT strategy and IT Architecture Frameworks are too much based on Business strategy and Business Architecture.

Today both IT strategy and IT Architecture Frameworks are too much based on Business strategy and Business Architecture. One makes this as prerequisite architecture activity that needs to be undertaken, if not catered for already in other organizational processes (enterprise planning, strategic business planning, business process re-engineering, etc.). But is this smart when one expect that the business strategy will last much longer than the IT strategy?

Christian Wig has some interesting remarks:

“When people tell me that the IT strategy should be 'driven' by the business strategy, I normally tell them that their underlying paradigm is fundamentally wrong. Or I ask them to provide me with a business strategy having a 10 years’ time perspective, which - of course - never exists (and never should exist). Or, I tell them that if we meet again 10 years from now, in the same boardroom of the same company, that they will be highly frustrated by how the IT architecture of the 2020s actually prohibits business development - driven by the 'business-driven' IT decisions we made together back in 2010.

This paradox is a quite critical one facing most businesses today: The technology platform that supports their business areas, products and processes have a much longer life-span than the business strategies which the technology is supposed to support. And at the same time, no technological platform will be 'prepared' for handling anything that wasn't explicitly foreseen and planned for. So the ability to look around the corner, and actually plan for the unplanned, is what I really focus on.”

Monday, January 3, 2011

Is it possible to manage the enterprise architecture without implementing architecture principles?

From the Open Group (http://www.opengroup.org/architecture/togaf8-doc/arch/) we find the following definition of different principles. Depending on the organization, principles may be established at any or all of three levels:

Enterprise principles provide a basis for decision-making throughout an enterprise, and inform how the organization sets about fulfilling its mission. Such enterprise-level principles are commonly found in governmental and not-for-profit organizations, but are encountered in commercial organizations also, as a means of harmonizing decision-making across a distributed organization. In particular, they are a key element in a successful architecture governance strategy (see Architecture Governance).

Information Technology (IT) principles provide guidance on the use and deployment of all IT resources and assets across the enterprise. They are developed in order to make the information environment as productive and cost-effective as possible.

Architecture principles are a subset of IT principles that relate to architecture work. They reflect a level of consensus across the enterprise, and embody the spirit and thinking of the enterprise architecture. Architecture principles can be further divided into:

o Principles that govern the architecture process, affecting the development, maintenance, and use of the enterprise architecture

o Principles that govern the implementation of the architecture, establishing the first tenets and related guidance for designing and developing information systems

These sets of principles form a hierarchy, in that IT principles will be informed by, and elaborate on, the principles at the enterprise level; and architecture principles will likewise be informed by the principles at the two higher levels.

Is Maven still the best build tool?

We use Maven as build tool; it handles and centralizes all build, dependencies, reporting and documentation. Since we do not rely on restricted software and do not deploy our applications into a javaEE environment we can package our software with all dependencies included. Maven is configured to build a zip archive of our servers with all configuration included ready for installation on any server using simple Unix and Linux commands. Maven does not lay any restrictions on which IDE the developers use.

Search This Blog