BizTalk Blog by Chris Han

System Design for Enterprise Agility,

  Home  |   Contact  |   Syndication    |   Login
  68 Posts | 9 Stories | 175 Comments | 79 Trackbacks

News

Article Categories

Archives

Post Categories

Image Galleries

BizTalk Bloggers

BizTalk on MSDN

Patterns & Architecture

SharePoint

Monday, October 04, 2010 #

Sometimes I just need to search and replace to add the CR/LF at the end of each line. Here's the solution I find from other's post. List here for quick reference:

Notepad++.

  1. Open your text file in Notepad++. Then navigate to menu View > Show Symbols > Show all characters.
  2. Highlight one of those squares in your text, then copy it to clipboard.
  3. Press Ctrl+H.
  4. Inside "Find what:" textbox, paste (Ctrl+V).
  5. Inside "Replace with:", type \r\n
  6. In search options, choose "Extended (\r, \n, \t, \0, \x...)".
  7. Replace All.
  8. Verify that now you can see each line ends with CR LF box.
  9. Navigate to menu View > Show Symbols > uncheck show all characters.
  10. Save your file if all worked fine.

This is the original post by yusufat:

social.answers.microsoft.com/Forums/en-US/w7programs/thread/663f1293-9e83-4683-9534-ff4b60612dbf


Wednesday, January 06, 2010 #

It all started with letting iTunes "organize" my video files. For some reason, it decided to create a subfolder for each of my files. Errrrrrr!

Now I'm looking for a way to copy the files in subdirectories back to a single directory. By some online searching and error-trial, here's my solution:

For /r %d "C:\source dir" in (*) do copy "%d" "E:\dest dir"

It's different than a suggested solution I found online something like:

For /r %d "C:\source dir" in (.) do copy %d\*  "E:\dest dir"

However the period character doesn't work for me. According to the explaination, the (.) means all subdirectories, so the %d\* means all files in each subdirectories. But reality is it added a \.\ in the fully path name of the source, the result like this:

copy "C:\source dir\.\video.mp4" "E:\dest dir"

while it should be:

copy "C:\source dir\video.mp4" "E:\dest dir"

Any way, this format works for me, hopefully, same you some time.

For /r %d "C:\source dir" in (*) do copy "%d" "E:\dest dir"

 


Tuesday, November 24, 2009 #

What is Ontology?

Quote from Wikipedia "is the philosophical study of the nature of being, existence or reality in general, as well as the basic categories of being and their relations....ontology deals with questions concerning what entities exist or can be said to exist, and how such entities can be grouped, related within a hierarchy, and subdivided according to similarities and differences"

Quote from other web-site "In ancient times, Ontology referred to study of Being and fell into disrepute in modern times, but Edmund Husserl revived the idea of the study of different forms of Being and Phenomenology and Existentialism have given rise to a new concern with Ontology, the central problem of which is the age-old problem of Mind and Body."

Quote from Zachman web site  "a theory of the existence of a structured set of essential components of an object for which explicit expressions is necessary and perhaps even mandatory for creating, operating, and changing the object"

What is Typology and Taxonomy then?

I fund so far the best explaination is from the web site http://www.marxists.org/glossary/terms/t/a.htm:

Taxonomy and Typology are two opposed methods of classification. Typology classifies according to the sensuously given attributes of the thing; Taxonomy classifies objects according to the genesis of the thing.

At a given stage in the development of a science, when as yet the genesis of the object is not known, typology is the only possible method of classification. Classification into types and classes aids sensuous perception. Once a notion of the genesis of the object is gained, the types must be re-ordered and objects which appear to belong to the same type, fall into different species and genre of the new taxonomy and vice versa, objects of different type are found to be of the same species.

Typology and taxonomy are necessary stages in making sense of the world, which aims to revealing the inner connections between things.

My Conclution:

Typology and Taxonomy are the types of Ontology. You usually start with Typology by observing the world and you can only confirm that your Typology is a Taxonomy when most of people conclude that it's true.

Analyzing the objects and classify them in a Taxonomy is always the first step we build and operate on their 'right' perceptions - the architecture of a enterprise system and even a software system.

This is also the way called 'frame it' in the book 'THE MCKENZIE WAY'.


Monday, February 23, 2009 #

Michael zur Muehlen just posted an paper on The Business Process Analytics Schema:
http://www.bpm-research.com/2009/02/22/the-business-process-analytics-format-bpaf/

The state-oriented appoach makes perfect sense to me. It is a straight forward shema design you can easily incorperate into your own process exception handling framework. You can also extend it by adding more fine-grained sub-states for your process minning needs.

There is a minor issue I think can be improved to make it more elegant mapping between this schema and its object oriented representation. Here is the exact comment I left to Michael:

I think it’s better to move bpaf:DataElement node under an additional node called bpaf:DataElements - an explicit collection-type node. This way, we will be able to map this schema to a object model elegantly. You can easily model a class hierarchy representing that an Event class has a collection-type memeber called DataElements which consists of DataElement-type items. You can’t directly model an Event class that has an ambiguous number of DataElement described by maxOccurs=”unbounded” attribute. I believe this will ease the adoption of this standard in practice.


Tuesday, February 10, 2009 #

Anne Thomas Manes has an interesting post stated that SOA is dead.
 
Despite the dramatic eye-catching writing style, she does get a little bite on the issue. "Successful SOA (i.e., application re-architecture) requires disruption to the status quo. SOA is not simply a matter of deploying new technology and building service interfaces to existing applications; it requires redesign of the application portfolio. And it requires a massive shift in the way IT operates. Does this sound familiar to you? If not, let' see this part "The latest shiny new technology will not make things better. Incremental integration projects will not lead to significantly reduced costs and increased agility"
 
I hope Michael Hammer can tell her how the Business Process Re-Engineering didn't work out in the early 90'. Just to make a comparison: The Business Process Reengineering method (BPR) is described by Hammer and Champy as 'the fundamental reconsideration and the radical redesign of organizational processes, in order to achieve drastic improvement of current performance in cost, services and speed'.
 
The reason why I say Anne got a bite on the issue is because I did realized that SOA is not about technology. The point is well addressed by Eli. Goldratt in his interesting book "Necessary But Not Sufficient" - SOA as a way to enterprise illities is necessary but not sufficient. One of the reasons of many failed SOA initiatives is because the CTO/CIO is too exciting and busy to buy and build a SOAish system, and 'forget' to really think about the real value that the business ask for. I don't mean that they did create a business case. But how much the word like 'agility' mean to the business? Can you have an account of it on the book?
 
The interesting part is that at the end, Anne herself falled into a rush and easy conclusion that we need a radical change. Yes, as an engineer by education, I hope we have that easy button only technology will change everything from scratch. But people do live and work around us. The quick and dirty analysis and solution is the last thing we need here now.
 
So, enough big pictures. As an engineer by education, I'd like to provide my view on the technical problems in SOA implementation. My point is not fresh. It firstly traces back to the book I read in the college -  No Silver Bullet by Fred Brooks. My experience just confirmed his brilliant idea again.  His idea is that basically there are some problems (or complexity) we created our own and we can fix or automate; and there are certain problems we just have to deal with it, in a hard way. Brooks is talking about the software complexity. But it applies to any there in engineering in my opinion. The other part of my point comes from Eli. Goldratt’s Theory of Constraint – technologies elevate constrains, but it won’t eliminate them. With these two pieces of great ideas, I come up with this idea that on the way to achieve enterprise illities, SOA helped us to ‘open up’ our architecture and elevate us to a new design space, but there we are facing hard-problems or as Brooks described as ‘essential complexity’. Anne has line I quote here ‘Service-orientation is a prerequisite for rapid integration of data and business processes’. I give you an example I had on my journey: One of my projects is to integrate an accounting system and a reporting legacy. The network is no big deal, access control is all set, service on accounting system is up and running, ESB returned XML data to reporting system, the UAT passed, and a SOAish application seems a classic case study, until 3 reporting cycles later. Suddenly the aggregated numbers are getting off between two systems. What’s wrong?
 
When we talk about integration, by my education and experience, there are three level of integration: connectivity, interoperability, and semantic confirmation. Generally speaking, internet/intranet, solve connectivity problem, XML, web service, ESB enable the great interoperability, but semantic confirmation of the information is the new problem in my case. Yes, we did data analysis, by ‘subject matter experts’. The business entities look and act like same in most of the cases across the accounting and reporting domains. But do you cover all the cased in your analysis? Even you did, do you have a procedure to govern the changes and manage dependants? SOAish applications provide a great flexibility and loosely coupled system of system, but the same ‘good quality’ open up a whole new can of worms for the architecture maintenance and governance.
 
That’s what I mean by SOA is not dead, the thing you need to kill again and again is the mentality of finding a silver bullet. SOA is rather a road map, a discipline.  Engineering is about solving problems step by step in a deciplined way. Unfortunately, there is a bunch of hype-driven marketing professionals competing with us engineers. Speak up, people!

Sunday, September 07, 2008 #

I was trying format my dropdown list to should the decimal numbers as pecentange. But the MSDN article is not completed.

It turned out that {0:P2} is what I'm looking for. Here is the full list regarding the string format:

Data Formatting for DataTextFormatString

Format String Description
{0:Cn} Currency. Displays numeric values in currency format with a leading dollar sign; n indicates the number of decimal places. If n is omitted, the default currency precision is two decimal digits.
{0:Dn} Decimal. Displays integer values; n indicates the minimum number of digits desired in the resulting string. If necessary, the number is padded with zeros to its left to produce the number of digits given by the precision specifier.
{0:Fn} Fixed-point. Displays numeric values in fixed format; n indicates the desired number of decimal places.
{0:Nn} Number. The number is converted to a string; n indicates the desired number of decimal places. Commas are inserted between each group of three digits to the left of the decimal point.
{0:Pn} Percent. Displays numeric values in percentage format; n indicates the desired number of decimal places.
{0} Text. Displays a text string.

Custom Format Strings string.Format

If the standard numeric format specifiers do not provide the type of formatting required, you can use custom format strings, in effect, drawing a picture of the format using special characters to indicate number positions and precisions. The characters used to build a format string are shown in the following table.

Format Character Description
0 Zero placeholder. Displays a number in the position if one is present; otherwise, displays a leading or trailing zero. Significant digits to the left of a decimal point are always displayed in the absence of the placeholder.
# Digit placeholder. Displays a number in the position if one is present; otherwise, displays no decimal digit. Significant digits to the left of a decimal point are always displayed in the absence of the placeholder.
. Decimal point. Indicates the location of a decimal point in a formatted value.
, Thousand separator. Indicates the insertion of comma separators every three positions to the left of a decimal point.
% Percent placeholder. Converts a number to a percentage and displays percent sign in indicated position.
$ Dollar sign. Indicates position of a dollar sign to format currency values.
' ' Text characters enclosed as quotes are treated as literal strings and are inserted into the format at the indicated position.
Examples of using custom format strings to format numeric values are shown in the following table. For example, to use a format string for the ItemPrice BoundField in the above GridView, the specification can be DataFormatString="{0:$#,#.##}" to produce the same display as the standard currency string DataFormatString="{0:C}".
Value Format String Result
1234.567 {0:0.00} 1234.57
1234.567 {0:00000.0000} 01234.5670
1234.567 {0:#####.##} 1234.57
1234.567 {0:#.###} 1234.567
1234.567 {0:#.#} 1234.6
1234.567 {0:#,#.##} 1,234.57
1234.567 {0:$#,#.##} $1,234.57
1234.567 {0:$ #,#.##} $ 1,234.57
1234.567 {0:($ #,#.##)} ($ 1,234.57)
-1234.567 {0:#,#.##} -1,234.57
.1234 {0:#%} 12%
.1234 {0:Percent = #.0%} Percent = 12.3%

Wednesday, August 13, 2008 #

Beijing 2008 Olympic has started with a magnificent opening ceremony. All the doubt about the aggressive construction projects suddenly disappear like Beijing’s smog.
An article ‘(Projects) Made In China’ by Janet Carmosky and Bill Lonergan on March 13, 2008 describes how the projects were managed by Chinese project managers. They also state that the leaders of China’s major projects are “the world’s most intuitive managers.”
Chinese are definitely falling behind westerns at scientific management. But is $34 billion spending the only reason that Chinese people can put all these together in time for the Olympic?
I fund a different angel in an interesting article 'How corporate China is evolving' by Andrew Grant from McKinsey. It unveils how Chinese CEOs do business, quote:
'Because the career of a typical CEO of a state-owned enterprise usually straddles the corporate and political spheres, these chief executives pay careful attention to politics—in particular, to developments in the Communist Party...'

'What’s more, the symbiotic relationship between the enterprise and the state makes such CEOs sympathetic to corporate social and economic goals beyond maximizing shareholder value.'

These explain why Chinese can achieve higher level goals even with not so good technologies and managerial techniques.
I’ve been involved in many ‘enterprise transformation’ projects. I find that the most effective way to align the objectives of department/sub-unit to the enterprise goals is to design a career system that promotes the leaders who can not only perform well at their unit but also carry out the corporate policies. If you think of the nation as an enterprise, isn’t it what Chinese government has been doing?
Lots of people asked why it happened after 9/11 attack. How many intelligent agencies do you need to stop it? The common agreement is that it is a ‘system failure’. In English, it failed at interfaces between departments. Do you think add another Homeland Security department above all will solve the problem? Perhaps it will help to make it hard for terrorists to execute another attack. But does it make hates disappear? Or isn't there a linkage between foreign policy and internal security strategy? I think Chinese government and Communist Party did a wonderful job in designing their organization which can pass along their policies optimized at nation-wide level. It takes motivated people to get things done, not another layer of control.

Chinese may be lack of managerial skills, but they are definitely not short of system thinking and motivation. As a matter of fact, you can find this kind of system thinking in many forms in Chinese culture. For example, in Chinese GO game, the goal is not to win at one or two spots on a 19x19 grid board. It’s actually all about strategic planning and win at large.
Needless to say, Chinese have more then enough resources to generate the motivation, from cultural proud, economical benefit, to personal career development, you can feel it every where if you've been there.

Tuesday, July 29, 2008 #

Poka-yoke (mistake-proofing) is a technique for mistake-proofing in process design. It's trading the flexibility for less variance. There is a similar concept in software called defensive design or defensive programming.

Yesterday, I just experienced a good example of how important defensive design is. I was trying to plug my external hard-drive to my laptop via USB port. As you know the USB port actually has some sort of defensive design - the connectors in the metal enclosure is actually located only at the lower half. It supposes you can not plug the male connector into it at all if flips it upside down. The problem I see is the implementation of this defensive design on my laptop. The plastic connector is not strong enough to proof a determined idiot like myself. The consequence is serious – the laptop’s power unit is damaged. I guess I have to change the mother board or rather throw away the whole laptop.

Am I too 'Paka' to be a good user? If you use DFMEA method to calculate a Risk Priority Number (RPN) in this case, I'd say hell no. It gets a pretty high score on my calculation:

Severity: 10
Occurrence: 2
Detect and prevent: 5
RPN = S*O*D = 100 

Although it's highly unlikely happens, it is sure one of the failure modes both hard to detect and cause fatal damage. I like the IEEE 1394 (Firewire) socket better at this account. Like at it shape - reduced occurrence; and it's metal - hard to push through. 

 PS. I just realized that USB has a Mini version. It's much closer to 1394's design idea. It's better.


Friday, July 18, 2008 #

I was working a project schedule with MS project. I started by estimate the duration in 'months' using PERT, and later I decided to switch to 'days'. The I run into the duration format convertion trouble. I fund the set the 'Duration is entered in' drop down list in option menu didn't really do the job. See the full solution:

geekswithblogs.net/chrishan/archive/2008/07/18/123879.aspx


Wednesday, February 06, 2008 #

I guess we all had a 'aha' moment when fund out what our friends talking about was just something you'd call it differently which made you totally missed out the first half of the conversation.
I sure had one - when my friend pronounced SOA as sooooa like in Noah. But that’s just the different of pronunciation. We can still communicate by writing SOA down.
What makes it more difficult to communicate is the definition of taxonomy, which is supposed to be a map. Here is an example we are facing in BPM today. I map the two sets of taxonomy hoping it’ll help in understanding and communicating BPM idea and development.

Academia
Industry
Used-to-be Product
Collaboration-Centric Process Automation
Document processes
Portal
People-Centric Process Automation
Human-centric BPM
Workflow
System-Centric Process Automation
Integration-centric BPM
EAI

Tuesday, February 05, 2008 #

This is part of my school work at Steven Institute of Technology. The assignment is to come up with a definition of a system architecture by my own words. Here it is: 

A system architecture is the organization of a set of components forming up a system. It provides a plan that arranges the responsibilities of each internal component in the system and their interactions to each other as well as the interactions between the system and the external environment it resides and/or being operated in.

A system architecture also refers to a set of artifacts by which the plan of the system can be communicated to each other among stakeholders.
 
A complete system architecture includes a methodology guiding the instantiation activities of the system which also rendering a consistent style among system instances.

The last point about methodology is what I learned from my work experience, and inspired by the architecuture from civile engineering.


Monday, January 14, 2008 #

 

 

I haven't written any thing for a while. Part of the reason is because I'm now back to school - Stevens Institute of Technology.

As my career advancing, I'm more and more focusing on Enterprise Architecture and Business Process Management. Of course, as an EA, you'll never hand off on technologies. So as a Microsoft guy, I'm always curious about what Microsoft will offer to BPM.

I'm a little suprised when I talk to my professor Dr. Michael zur Muehlen (his blog: bpm-research.com). He sees Microsoft as just a vender of System Integration Solution. And it seems Gartner is agreeing with him. Check out this gartner BPM Magic Quadrant 2007(free with registered user). I also find that Sandy Kemsley had a chance to closely examine Microsoft's tech stack, and shared with on her blog column2.com.  

But I still remain curious on what are the commonly agreed criteria of a qualified BPM solution. I agree that BizTalk is not a complete business architecting to automatic execution solution, but can we at least say it's a workflow system than a simply EAI/ESB? I mean, it got BPEL engine, rule engine, BAM....

Is that because the lack of 'human-centric' features that BizTalk is not recognized as a BPM player? I'll find out, later.


Tuesday, October 23, 2007 #

Here is how you should play it:
1. Make sure your have both a SQL 2000 with latest sp and a SQL 2005 database
2. guess the result of the two 'print' command in the script below, write down the last character in the string on your mind
3. Run the script below in SQL 2000
4. Change the 3999 to 3998 and run it again on SQL 2000
5. Change the 3998 back to 3999 and run it on SQL 2005

 ---------------------------------------

declare @n varchar(4000)

set @n = replicate(N'z',3999)+N'i'

print @n

set @n=replace(@n, N'i', N'B')

print @n

-----------------------------------------

have fun


Thursday, October 04, 2007 #

It used to be a joke when there was some software design flaws caught at the test phase. It is amazing to see that the joke presents a truth by reading this new from MSNBC http://www.msnbc.msn.com/id/21112810/

If you put the hybrid car as an architect, one of the most important questions you should have asked yourself as an architect is 'how it will interact with the environment it resides?'

You thought the noise of the gasoline car is something unwanted? Think again. It is really depends on which stakeholder you are talking about. Blind people are in deed participating in the traffic - the architectural environment your system interacts with. To them, the noise indeed is a feature!

Now ask yourself, do you think vibration is a feature of the car or rather a technical constraint?


Saturday, September 15, 2007 #

I'm running 64 bit Visa and trying to install my new phone toos software 4.5.1c. After get this error, I have to exchange the 4.5.1.c with a 4.5.  After install v4.5 and let it update itself to 4.5.1.c online, everything works.

Hope this will help ohters Moto owners.