Jul 22 2010

First Report Down 3 More to go

Today I received my first report review. And I am pleased to say I passed the first hurdle. So far the MSc is going well. I will find out from UNISA if I can publish the report here for everyone to read. So far I would say the experience has been great, even though I have struggled to articluate all my thoughts on Enterprise Architecture.

Now the down side. You give up alot of weekends and read non stop, and then re read articles you have already read because you have not read them correctly or alternatively have forgotten what the content was about. To save yourself from this dilemma I suggest that anyone attempting to pursue a M degree where a literature review is necessary, use a repository manager.

So far I would recommend a MSc to anyone.


Jul 22 2010

Read an Oracle Stored Procedures Cursor using Spring

I came accross the problem where hibernate is restricted in the way it can access an oracles stored procedure that returns a reference cursor. In hibernate the reference cursor should be the first parameter in the stored procedure. Now working with stored procedures writted differently you could always just extend the “org.springframework.jdbc.object.StoredProcedure” abstract class, if you are using spring that is. 

Since my blog is all about the samples here it is:


package com.bayestech.sampleprocedure; 

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types; 

import javax.sql.DataSource; 

import oracle.jdbc.driver.OracleTypes; 

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure; 

import uk.co.pruhealth.admin.communication.notificationengine.PolicyLinks; 

/**
 * This class reads a stored procedure named 'sample_procedure' which has the following usag:
 * call sample_procedure (? <= p_Number_Input, ? <= p_String_Input, ? <= p_Date, ? => Pr_Returned_Cursor, ? => Pr_Error_Code, ? => Pr_Error_Message)
 *
 *
 * @author Kevin Bayes
 *
 */
public class SampleStoredProcedure extends StoredProcedure {

 /** Name of procedure in database. */
 public static final String PROC_NAME = "sample_procedure";�
 public GetPolicyLinksStoredProcedure(DataSource ds) {
  super(ds, PROC_NAME);

  declareParameter(new SqlParameter("p_Number_Input", Types.NUMERIC));
  declareParameter(new SqlParameter("p_String_Input", Types.VARCHAR));
  declareParameter(new SqlParameter("p_Date", Types.DATE));
  declareParameter(new SqlOutParameter("Pr_Returned_Cursor", OracleTypes.CURSOR, new RowMapper() {
   public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
    SampleReturnClass sampleClass = new SampleReturnClass();
    policyLink.setColumn1Name(rs.getString("COLUMN_1_NAME"));
    policyLink.setColumn2Name(rs.getString("COLUMN_2_NAME"));
    policyLink.setColumn3Name(rs.getString("COLUMN_3_NAME"));
    return sampleClass;
   }
  }));
  declareParameter(new SqlOutParameter("Pr_Error_Code", Types.NUMERIC));
  declareParameter(new SqlOutParameter("Pr_Error_Message", Types.VARCHAR));

     compile();
 }   

}

Once you have created the above class you need to execute it by setting the datasource and passing in the desired parameters like so:


public Collection getList(DataSource dataSource, Long inputNumber, String inputString, Date effectiveDate) {

	SampleStoredProcedure sampleStoredProcedure = new SampleStoredProcedure(dataSource);
	Map parameters = new HashMap();
	parameters.put("p_Number_Input", targetEntityNumber);
	parameters.put("p_String_Input", null);
	parameters.put("p_Date", effectiveDate);

       	Map m = SampleStoredProcedure.execute(parameters);
       	return (Collection) m.get("Pr_Returned_Cursor");
}

And that is all there is to it!


Jul 13 2010

When Did it Become About a Career

There was a turning point in my life, where I went from wanting to develope software to change the way we live to developing software to change the way we do business. This is why I am going to lay all my ideas down in the ideas page above. Read them and send me feedback….


Jul 12 2010

Enterprise Architectures Conflicting Definitions

I have been reading a few articles and one thing has really surprised me…. There are so many definitions of enterprise architecture out there. Most of them have common themes though.

The immaturity of the field can be seen as a driver for the inconsistencies we see. After all Zachman (the father of EA) published his first article in 1987 [1]. The immaturity has lead to the below definitions surfacing from multiple sources:

  • “EA are conceptual and methodological frameworks used to depict and align the organization’s strategy with its business processes and resources”[2].
  • “Enterprise architecture is an integrated and holistic vision of a system’s fundamental organization, embodied in its elements (people, processes, applications, and so on), their relationships to each other and to the environment, and the principles guiding its design and evolution (IEEE Std 1471-2000 IEEE Recommended Practice for , IEEE, 2006)”[3].
  • Enterprise Architecture is “a descriptive representation of the basic arrangement and connectivity of parts of an enterprise (such as data, information, systems, technologies, designs, business processes)” [4].
  • “An EA is a conceptual framework that describes how an enterprise is constructed by defining its primary components and the relationships among these component”[5].
  • “The enterprise architecture is the organizing logic for business processes and IT infrastructure, reflecting integration and standardization requirements of the company’s operating model. The enterprise architecture provides a long term view of the company’s processes, systems and technologies so that individual projects can build capabilities – not just fulfill immediate needs”[6].
  • “Enterprise Architecture is the continuous practice of describing the essential elements of a sociotechnical organization, their relationships to each other and to the environment, in order to understand complexity and manage change”[7].
  • ”EA management is a continuous and iterative process controlling and improving the existing and planned IT support for an organization. The process not only considers the information technology (IT) of the enterprise, but also business processes, business goals, strategies, etc. are considered in order to build a holistic and integrated view on the enterprise” [8].
  • “Enterprise architecture (EA) is about much more than technology; it is the process of translating an enterprise’s business vision and strategy into effective enterprise change. EA enables an organization to change and adaptively evolve in a dynamic, unpredictable environment” [9].
  • Enterprise Architecture is “a detailed description of of all key elements in the organization and the business interrelations between them”[10].
  • “Enterprise Architecture (EA) is a comprehensive model of an enterprise: a master plan, which acts as a planning, structuring, and integrating guideline and force for an organization. EA covers business structure and context, information technology dimension and organizational structure, and workflow dimension in achieving the organization’s goals and strategies. It seeks to promote synergy between the various dimensions, aligned with achieving overall business purposes”[11].
  • “An EA program is to guide an enterprise’s business processes and the associated IS towards a common goal and to integrate business, data, information, and technology” [12].
  • “The Office of Management and Budget (OMB), in Circular A-130, asserts: ‘an enterprise architecture is the explicit description and documentation of the current and desired relationships among business and management processes and information technology’. We see enterprise architecting as the scaling of system architecting to the enterprise – to a system of systems”[13].
  • Enterprise Architecture is “the analysis and documentation of an enterprise in its current and future state from an integrated strategy, business and technology perspective” – Bernard, S. A.: An Introduction to Enterprise Architecture, Author House, Indiana (2004) as stated in [14].
  • “Enterprise Architecture (EA) is a comprehensive framework used to manage and align an organization’s IT assets, people, operations, and projects with its operational characteristics”[15].
  • EA is therefore understood as the fundamental organization of a government agency or a corporation, either as a whole, or together with partners, suppliers and / or customers (“extended enterprise”), or in part (e. g. a division, a department), as well as the principles governing its design and evolution . [16]
  • “Enterprise Architecture would be the total set of descriptive representations (models) relevant for describing an Enterprise, that is, the descriptive representation required to create (a coherent, optimal) Enterprise and required to serve as a baseline for changing the Enterprise once it is created” [17].
  • While all the above definitions are not consistent they all have common themes. Firstly, most acknowledge the different elements in an organization and the holistic representation Enterprise Architecture should provide. Secondly, most recognize the relationships between the different elements of the enterprise. Thirdly, most point out the importance of the relationship between IT and, business strategy and goals. And finally, that enterprise architecture is an iterative process that should evolve to a future state.

    Recognizing the most prominent themes in all the enterprise architecture definitions listed above it is fitting that most align, even to different degrees of precision, to the ANSI/IEEE Standard 1471-2000 definition of “fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution”[18].

    References

    1. Zachman, J.A., A framework for information systems architecture. IBM SYSTEMS JOURNAL, 1987. 26(3): p. 276 – 292

    2. Zacarias M., et al., Adding a Human Perspective to Enterprise Architectures, in 18th International Workshop on Database and Expert Systems Applications. 2007, IEEE. p. 840 – 844.

    3. Hanifa Shah and M.E. Kourdi, Frameworks for Enterprise Architecture. IT Pro, 2007: p. 36 – 41.

    4. Shirley Gregor, Dennis Hart, and N. Martin, eds. Enterprise architectures: enablers of business strategy and IS/IT alignment in government. Information Technology & People. Vol. 20. 2007, Emerald Group Publishing Limited. 96 – 120.

    5. Rood, M.A. (1994) Enterprise Architecture: Definition, Content, and Utility. IEEE Volume, 6

    6. Jeanne W. Ross, Peter Weill, and D.C. Robertson, Enterprise Architecture as Strategy : Creating a Foundation for Business Execution. 1 ed. 2006, Boston, Massachusetts: Havard Business School Press. 209.

    7. Dr Alta van der Merwe, et al. Enterprise Architecture Definition. 2010

    8. Alexander M. Ernst, et al., Tool Support for Enterprise Architecture Management – Strengths and Weaknesses, in Proceedings of the 10th IEEE International Enterprise Distributed Object Computing Conference. 2006, IEEE. p. 1 – 10.

    9. Burton, B. (2008) Understand Enterprise Business Architecture to Realize Your Future State. Volume, 1 – 12

    10.Dankova, C.A.P.P., Main Aspects of Enterprise Architecture Concept. Economic Alternatives, 2009(1): p. 102 – 114.

    11.H. Michael Chung and G. McLeod, Enterprise Architecture, Implementation, and Infrastructure Management. Proceedings of the 35th Hawaii International Conference on System Sciences, 2002. 02: p. 2.

    12.Hjort-Madsen, K., Enterprise Architecture Implementation and Management: A Case Study on Interoperability, in Proceedings of the 39th Hawaii International Conference on System Sciences. 2006, IEEE: Hawaii p. 1- 10.

    13.Dr. Stephen H. Kaisler, Dr. Frank Armour, and D.M. Valivullah, Enterprise Architecting: Critical Problems, in Hawaii International Conference on System Sciences. 2005, IEEE: Hawaii. p. 10.

    15.Wang Xueying, Ma Feicheng , and Z. Xiongwei (2008) Aligning Business and IT Using Enterprise Architecture. Volume, 1 – 5

    16.Robert, W. and S. Joachim, Enterprise architecture governance: the need for a business-to-IT approach, in Proceedings of the 2008 ACM symposium on Applied computing. 2008, ACM: Fortaleza, Ceara, Brazil.

    17.Zachman, J., Z101 Master Class: Framework Foundations. 2007, Zachman International. p. 1 – 146.

    18.Society, I.C., IEEE Recommended Practice for Architectural Description of Software-Intensive Systems. 2000, IEEE


May 28 2010

Coming Together

Its all coming together nicely I hope. I am on to about 40 pages of content that needs to now be formatted and worded correctly. Hopefully in 15 days time I will have something concrete to give my supervisors. Which they will then read over and send back with loads of comments :-) .

The main thing here is that I am starting to see the bigger picture of the role and practice of enterprise architecture in todays business environment. I hope no one actually asks me any real questions as all my answers are based on personal opinions right now.


Error in my_thread_global_end(): 1 threads didn't exit