Showing posts with label Standards. Show all posts
Showing posts with label Standards. Show all posts

Monday, March 03, 2014

Guideline presentation

In more than one occasions I've publish internal documentation to provides a set of standards, guidelines and best practices for ensuring the consistent architecture and implementation of SOA across solutions.

To convey the key message across the document are organised as simple recommendations using Always, Endeavour, Consider, Avoid, Never. Each guideline is described as either good or bad practice. The following table illustrates the recommendation keywords and their intended meanings.

Keyword Meaning
Always The guideline should always be followed.

Example: Always use Pascal casing for enterprise service and operations names.
Endeavour The guideline should be followed in most cases; however there are few edge cases where it makes sense not to follow the guideline or it is impractical to expect developers to follow the guideline all the time.

Example: Endeavour to follow the defined messaging patterns - sync, async, pub/sub, guaranteed delivery, etc.
Consider The developer should consider the guideline as an option for solving a particular problem.

Example: Consider using machine generated code.
Avoid The guideline indicates something that is not generally a good practice. In most cases; developers are expected to follow the guideline.

Example: Avoid comments that explain the obvious.
Never The guideline indicates something the developer should almost never do.

Example: Never use hardcode environment variables.

Saturday, June 12, 2010

Right angle bracket (>) in XML Specification

I like to close the discussion about the use of the right angle bracket (>) in XML document. Despite what the the claim "the greater than character is legal, but it is a good habit to replace it" by the w3schools, usage of the right angle bracket must be escaped! It clearly mentioned in the XML 1.0 Specifications:
The ampersand character (&) and the left angle bracket (<) must not appear in their literal form, except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section. If they are needed elsewhere, they must be escaped using either numeric character references or the strings " & " and " < " respectively. The right angle bracket (>) may be represented using the string " > ", and must, for compatibility, be escaped using either " > " or a character reference when it appears in the string " ]]> " in content, when that string is not marking the end of a CDATA section.

In the content of elements, character data is any string of characters which does not contain the start-delimiter of any markup and does not include the CDATA-section-close delimiter, " ]]> ". In a CDATA section, character data is any string of characters not including the CDATA-section-close delimiter, " ]]> ".
W3C Recommendation, Extensible Markup Language (XML) 1.0 (Fifth Edition), 26 November 2008

Tuesday, June 08, 2010

OASIS ebXML version 2.0 implementation

The Advanced Metering Infrastructure (AMI) project in Victoria, Australia is the world first (definitely the first in Asia Pacific) production implementation of OASIS ebXML v2.0. At the time of the post there is one one other client in Europe trialing this standard in pre-production status.

For those who worked in the VicGas market currently supporting ebMS v1.0, don't underestimate ebMS v2.0, because it has significant differences. Before you get started, I advise you to read the following documents:

ebXML Message Service Specification v2.0 - describes the concept, background, objective and core functionality. Two sections in particular are worth noting. First, ebXML with SOAP, this should give you the technical understanding the transport protocol of messages. Second, Reliable Messaging Module, these optional attributes provide guarantee delivery of messages.

ebXML Collaborative Partner Profile Agreement (CPPA) v2.0 - in ebXML v2.0, CPPA is mandatory, so here is one I prepared earlier.





There are currently two commercial adapters available in the market that supported ebXML v2.0:
The logical architecture of your implementation should follow this pattern.


If you have further questions, please don't hesitate to contact me.