Showing posts with label SOA. Show all posts
Showing posts with label SOA. Show all posts

2013-12-26

2013-12-26 Thursday - SOA ~ API Service Bus? Enterprise Governance Value?

Let me preface this posting with one important caveat: This was written from the perspective of having spent several years working within a very large multi-national software development  effort, within a highly regulated industry, with over 150+ developers, across multiple large-scale enterprise application domains, integrating with many different externally contracted service providers - as well as dozens of internal applications (bespoke systems, as well as heavily  customized COTS packaged software)

The buzz-trend headlines of today's pundits assume we should move toward a Point-to-Point API strategy for integrations both within and without the enterprise.

An oft repeated line of argument that arises when pundits relish their prognostications of the death-knell of Service Oriented Architecture (SOA), revolves around the notion that the world-wide-web doesn't have a centralized service bus - and therefore, by inference, any corporation that has the temerity to think that they might need to provision an Enterprise Service Bus (ESB) - is implementing something that is foolishly wasteful,  extremely heavy-weight, and probably overkill.

This argument is probably quite right in many cases.

However, within any enterprise-level organizations of appreciable size - with many different applications disbursed across the organization (both politically and geographically) - there are common and recurring application infrastructure capabilities that will end up being re-implemented again-and-again within the endpoints of any Point-to-Point integration strategy, if there isn't some enterprise-class service bus capability established.

For example, does it make sense for every individual application to implement their own approach to:
- retry logic for guaranteed delivery
- exception handling
- monitoring/reporting/alerting
- caching
- fail-over routing
- implementing fan-in and fan-out patterns, with the inherent brittle dependency of canonical
mapping to each up-or-down stream application
- managed file transfers
- job scheduling
- data encryption (at-rest, and in-motion)
- complex event processing
- message queue management


The outcome of an absence of any enterprise service bus capability, cannot help but result in some trade-off decisions that have significant negative consequences for long-term maintenance, organizational agility, and software development costs.

Integration strategies within many large-scale enterprise organizations must often adhere to a much higher threshold of rigor (such as audit traceability and monitoring) - and Point-to-Point integration strategies often result in duplication of code in places that could be more centralized maintained, managed, and provisioned via a service bus (note: I'm not saying One ESB to Rule Them All - an ESB might be logical, virtual, distributed, and quite often federated).

I'm not saying Point-to-Point is a necessarily a bad integration strategy in all cases, or that an ESB is a necessary component of an enterprise-class integration strategy. But to ignore the concerns raised above, or to burden application architectures with what should be common and reusable enterprise-level shared infrastructure-like capabilities - that results in the re-implementation and redundant maintenance of such common functionality - is something that should be questioned, and strongly challenged.

The challenge/questioning of whether there is a need for Enterprise Governance is another aspect of this discussion that is often dismissed as a needless overhead to the software development process. In my experience, this is most often argued most passionately by folks who have taken the idea of Agile to an unhealthy extreme - and who seem to use it as a justification for their genetic lack of enthusiasm for documenting their work. However, within any highly regulated industry, Enterprise Governance certainly has a proper and necessary place. The trick is to do it with the lightest touch possible. Without Enterprise Governance, without a guiding vision that has continuity (i.e. from a permanent Enterprise Architecture team) beyond the typically high turn-over of all-too-often mostly outsourced development teams  - development can become a Wild West, decision making is almost invariably short-sighted, tactical, and representative of silo thinking - without any broader / longer term strategic thinking evident -and becomes a function of the strongest personalities on a development team (at best) - and  (at worst) without any cross-application team communications of decisions, tools selection is made within a vacuum...devoid of any guidance from policies, standards, or specifications.

Some possible signs that your Enterprise Governance process may be out of control:
  1. You have more than [z] developers on staff, and you have no Enterprise Governance process, where [z] is greater than the size of a small garage start-up.
  2. You have no Policies, Standards, or Specifications established to guide your development teams.
  3. Your governance process stipulates the creation of [n]X additional artifacts than your design/development process produces.
  4. Your governance process stipulates [y]X more review checkpoints than performed in your design/development process.
  5. One or more of your developers has stated the following: "The code is the {design|documentation}"
  6. One or more of your developers has stated the following; "We don't need to write unit tests"
  7. Your code base has a high cyclomatic complexity rating
  8. Your design/development process does not include frequent peer reviews.
  9. You have no visibility into code metrics
  10. You don't have an automated Continuous Integration build process established
  11. You are not running static code anlaysis tools during your Continuous Integration build process.
  12. You have no reserve capacity in your development group to review and address the technical debt that is accumulating (as found by various static code analysis tools, e.g. Sonar task executed by Jenkins/Hudson)

2013-11-07

2013-11-07 Thursday - Suggested SOA reading list

A colleague recently asked what resources I might recommend for them to begin learning about SOA (he's recently been dropped into a large enterprise organization that has a complex existing SOA environment)

Here's the reading list I prepared...

First, check InfoQ for articles and conference presentations:
http://www.infoq.com/soa/

Next, check YouTube for recent videos:
http://www.youtube.com/results?filters=year&search_query=service+oriented+architecture+soa&lclk=year


There are 10 IBM SOA Tutorials linked to here:

TechTarget.com has some

This author’s tutorials may be of interest
http://tutorials.jenkov.com/soa/index.html


The best resource for quickly getting up to speed (with a holistic and comprehensive approach) would be to read Jim Bean’s book:
(there is a kindle version available too)

Next, I would direct to you read anything on the web that is SOA-focused by Arnon Rotem-Gal-Oz, as well as his book:
(he is one of the most clear-headed people when it comes to real-world, practical SOA.

Thomas Erl is one of my favorite writers on SOA – because he is meticulous in building a body of knowledge (some might criticize his writing for be repetitive, but I see it as reinforcing the concepts)

I would start with his SOA Design patterns book:

And perhaps then his SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST

If you think you still need more foundational information, then go back to his  Service Oriented Architect: Concepts, Technology, and Design

Or his SOA: Principles of Service Design

His most recent book, which I reviewed for Prentice Hall, is also worth reading: Cloud Computing: Concepts, Technology & Architecture

For a more technical deep dive discussion of SOA service contract versioning:


I also reviewed Robert Daigneau’s book: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services, which has a very light touch on RESTful service – but has some concise writing on service design patterns that may be of interest
http://www.amazon.com/Service-Design-Patterns-Fundamental-Solutions/dp/032154420X/

2013-07-27

2013-07-27 Saturday - Some New SOA and Cloud Links

SOA Community Blog by Jürgen Kress
http://soacommunity.wordpress.com/

An interesting new series of articles published by Oracle, entitled "Industrial SOA"

Oracle Practitioner Guide
Creating a Roadmap to Cloud Computing
Release 3.0
April 2013
http://www.oracle.com/technetwork/topics/entarch/oracle-pg-cloud-roadmap-r3-0-1940183.pdf

2009-09-25

2009-09-25 Friday

A busy week.

I'm working on growing my consulting practice - and assembling engagement teams to engage more clients simultaneously. I had three conference calls this week with potentially new clients...increasing the number of conversations per week - and thus increase my deal-closure rate.

Started working on a new client assignment today - the high-level design of a Service Oriented Application (SOA) extension to a legacy mainframe application - quickly sketched out the following in about 4 hours - using Sparx System's Enterprise Architect:

  • Requirements List

  • Use Case Diagrams

  • Domain Model


I also started working on the site navigation map and the object class model for a web based user interface for the new functionality that will be created.

This application will be deployed as an ASP.NET application - integrating with a NATURAL / ADABAS backend, leveraging Software AG's webMethod's EntireX - to SOA-enable the legacy application code base.

I happened to come across an interesting company today: CoffeeCup.com - they have an interesting business model - offering a number of products (66?) - at very reasonable prices. I was particularly impressed by the team they have assembled.

Interesting: Organization of Independent Software Vendors (OISV)

2009-03-27

2009-03-27 Friday - Ontology Development for SOA

A question was recently asked on the Yahoo service-oriented-architecture group - about how to develop an ontology for SOA.


Dave McComb of Semantic Arts is a good resource to tap for ontology design.
http://www.semanticarts.com/

The 2009 Semantic Technology Conference will be held in San Jose, June 14-18
http://www.semantic-conference.com/

An interesting tool for developing ontologies: Swoop
"SWOOP is a tool for creating, editing, and debugging OWL ontologies. It was produced by the MIND lab at University of Maryland, College Park, but is now an open source project with contributers from all over."


Protégé is another free, open source ontology editor and knowledge-base framework worth considering.

The following article resources may be of interest to others that are unfamiliar with Canonical models and ontologies.


IBM DeveloperWorks published a series of articles in 2007 that may be of some interest (in particular, "Web services and the semantic Web, Part 3: Understand RDF and RDFs" and "Web services and the semantic Web, Part 4: Create an ontology")
http://www.ibm.com/developerworks/views/xml/libraryview.jsp?type_by=Tutorials&search_by=The+ultimate+mashup+semantic+Web

Common Models in SOA: Tackling the Data Integration Problem
http://www.progress.com/dataxtend/resources/soa-common-model/index.ssp

Exploring the Enterprise Service Bus, Part 3: Four approaches to implementing a canonical message model in an ESB
http://www.ibm.com/developerworks/architecture/library/ar-esbpat3/


The information perspective of SOA design, Part 4: The value of applying the canonical modeling pattern in SOA\
http://www.ibm.com/developerworks/data/library/techarticle/dm-0803sauter/

Single Canonical form - not for SOA
http://service-architecture.blogspot.com/2006/08/single-canonical-form-not-for-soa.html


Erl's soapatterns web site: Foundational Inventory Patterns > Canonical Schema
http://soapatterns.org/canonical_schema.asp

SOA: Canonical "Data" Model
http://kjellsj.blogspot.com/2007/07/soa-canonical-data-model.html

SOA: Canonical Domain Model, Federated Canonical Domain Models
http://kjellsj.blogspot.com/2007/07/soa-canonical-domain-model-federated.html

ECDM Mediation: Esperanto vs Babel Fish
http://kjellsj.blogspot.com/2007/10/ecdm-mediation-esperanto-vs-babel-fish.html

Top 10 SOA Pitfalls: #4 - Incorrectly applied Canonical Data Model
http://blog.xebia.com/2008/06/02/top-10-soa-pitfalls-4-incorrectly-applied-canonical-data-model/

Information Architecture for SOA
http://www.opengroup.org/projects/si/uploads/40/17533/Information_Architecture_for_SOA.pdf


Updated 2009-03-28:

A Faceted Approach to Building Ontologies

Toward a Unified Ontology of Cloud Computing

An Ontology for Tactical Cloud Computing

Updated 2009-03-29:

Swoogle - semantic web search (over 10,000 ontologies)

OntoSelect Ontology Library

CO-ODE project
The CO-ODE project aims to build authoring tools and infrastructure that make ontology engineering easier. We specifically support the development and use of OWL-DL ontologies, by being heavily involved in the creation of infrastructure and plugins for the Protégé platform and more recently, OWL2.0 support for the OWL API.

Many of our collaborators have come from the life sciences community, but we aim to support as broad a range of users as possible - researchers, librarians, industry, and the Semantic Web community

In support of this work the team have also been involved in organising tutorials and workshops on OWL.

The project is supported by JISC and is a collaboration with Stanford University


Building OWL ontologies tutorial

OWL Pizzas: Practical Experience of Teaching OWL-DL: Common Errors & Common Patterns

2008-02-21

2008-02-21 Thursday

In response to a recent blog post by Loraine Lawson SOA Governance Tools Simplified , I provided the following post as a comment:

I have recently conducted some preliminary testing of some open source Registry/Repository type tools for a client - that could be helpful for organizations that are looking to experiment first before paying big bucks for some vendor solution.

Yelo
http://freshmeat.net/projects/yelo/
"Yelo is a standalone service catalog for SOA (service-oriented architecture). A service catalog is an important part of the business process of service-oriented architecture and seems to be available today only as part of a larger package. This application is meant to foster a "marketplace" approach to services within an enterprise. "

Opinion: Not bad for a simple catalog. Could be easily extended. Better than a spreadsheet being passed around. Does not appear to be an active project. .NET implementation.


WS02 Registry - 1.0
http://wso2.org/projects/registry
WSO2 Registry enables you to store, catalog, index and manage your enterprise meta data in a simple, scalable and easy-to-use model. It is designed around community concepts such as tags, comments, ratings, users and roles.

WSO2 Registry can be considered a structured Wiki designed to help manage meta-data in a simple and a business-friendly manner. In addition, the registry allows storage of unstructured data such as Word documents and Excel spreadsheets. Using this approach, you can build a catalog of enterprise information ranging from services to service descriptions.

WSO2 Registry can be deployed in application servers and accessed using the Web UI or the APP interface. It can also be embedded as a Java library within Java programs that can then be used as a resource store with all community features and versioning.

WSO2 Registry is released under the Apache License v2.0

Storing and managing resources and collections
Tagging, commenting and rating resources
Managing users and roles
Authentication and authorization on all resources
Resource/collection versioning
Tag based search
Advanced search
Activity log and filtering support
APP based Remote Registry
Media type handling support
Web based user interface with Web 2.0 look and feel

Opinion: Recently released (Feb. 11th 2008) - has a nice UI - but there are some bugs that the development team needs to resolve. Worth monitoring this one as it develops further.



freebXML Registry - Omar 3.1 (ebXML reference implementation)
http://ebxmlrr.sourceforge.net/
Packed with features, thick and thin clients supported, Java implementation.

Opinion: The UI is not intuitive, seems a bit cluttered....but might be worth the effort to customize the UI if a team wanted a robust, feature-rich, tool.



Summary:
If you want to share information for a small set of web services - a Wiki might be a better approach over a spreadsheet. I've recently adopted TikiWiki for team design collaboration for a current SOA project.

http://info.tikiwiki.org/tiki-index.php



Loraine's original interview article (Before You Buy: Understanding SOA Governance Tools) with Gartner analyst Frank Kenney, who co-authored Gartner's Magic Quadrant for Integrated SOA Governance Technology Sets, released in December 2007,

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.