Hi Carey,

Yes, I was aware the "guarantee" is not really guaranteed and have seen the 
odds prediction and already reviewed some of the information you provided below.

I also agree it's not critical that it matches but I also wanted to investigate 
the opportunity to maintain consistency.  I'd already planned to maintain the 
38-character size in the new system and initially planned to continue the use 
of our two-character prefix (we use a different one for each type we create).  
The original question was aimed at finding out if information on how the 
Application_Generate_GUID function generates them is freely available.  Based 
on the lack of responses in this regard, it appears not.

One big consideration is ease of creation and use.  It's preferable to create 
them in the "foreign" system going forward so I was basically looking to get as 
close as possible to the existing GUID being generated by Remedy.  Because we 
use these with direct access URLs, we also have to validate whatever is 
generated will not cause problems when being passed.

Prior to the response yesterday, I was not aware of the UUID function in MySQL 
so I need to do some research on that.  Odds are we can create something using 
that function that will work fine and can be passed to Remedy and stored in the 
38-character field.

Appreciate your well thought-out and informative reply.
Regards,

Craig Carter
Information Technology Manager, RSP

-----Original Message-----
From: Action Request System discussion list(ARSList) 
[mailto:[email protected]] On Behalf Of Carey Matthew Black
Sent: Thursday, December 31, 2009 10:03 AM
To: [email protected]
Subject: Re: Q: GUID Generation

Craig,

I hope this helps add some background (or maybe just some extra
academic thinking) on the topic.

I hate to, again, point out that acronyms suck. ( I really hate to
repeat myself. ) But "GUID" may not mean what you think it means.

Ref: http://en.wikipedia.org/wiki/Globally_Unique_Identifier
Ref: http://en.wikipedia.org/wiki/Universally_Unique_Identifier

I have often heard GUID vs GGUID used too.
For me:
 GUID = Guaranteed Unique ID (or IDentifier)
 GGUID = Guaranteed Globally Unique ID (or IDentifier)
  (You might call this a UUID.)

In spite of the "Guarantee" that these names seem to provide their
really is no guarantee when you have multiple systems generating
values without some kind of unique/specific context being accounted
for in addition to the values being used. There are some good
statistics/probibility math that you can find somewhere if you really
want to know the odds. But the details all matter to some extent if
you relay on just the GUID/UUID algorithms.

In other words, a given system can assert that it's ID's are unique to
that system (and actually know that it is true at a processing cost).
However when you start mixing data from multiple systems you run a
risk ( a very small one, but it is still there) that you could get the
same "GUID" (or GGUID, or UUID) from multiple systems for different
"things".



With that said I would quote the manual about what an AR System GUID's
should be relied on to be:
REF: Workflow-Objects-710.pdf   pg. 206
"
Application-Generate-GUID [ "<GUID_prefix>" ]

Generates a globally unique identifier (GUID). The prefix can be a
maximum of two characters, which can contain non-alpha characters
(although alpha characters are recommended). If you do not include the
GUID prefix, it defaults to ID.
"

And I note that the definition of an AR System GUID is:
REF: Form-App-Objects-710.pdf pg. 314
"
Data type: Character
Maximum length: 38
"

(Oddly similar to the "Universally_Unique_Identifier" article with two
extra leading characters... hum...)

While I can not say that "this was the plan", it seems reasonable that
the point of the two leading characters was to provide some kind of
"context" to the GUID value. ( A limited one, but a context all the
same.)



So if you do decide to never use a prefix of "XX" in your AR System
applications then you should be able to carve out a (sub) name space
of that total range of AR System GUID values and know that you will
never have a conflict. Then you can generate a GUID in the other
application and stuff an "XX" on the front of it. This approach seems
like a better design than trying to "make then look like each other"
to me. I think the only thing that you might want to try to keep the
same is the overall data type between the two systems. (Char, Length
"38": Note your other systems likely generate GUID values of Char 36.
They lack an embedded context value, IMHO. :)  )

Hope that helps.

-- 
Carey Matthew Black
BMC Remedy AR System Skilled Professional (RSP)
ARS = Action Request System(Remedy)

Love, then teach
Solution = People + Process + Tools
Fast, Accurate, Cheap.... Pick two.



On Wed, Dec 30, 2009 at 5:52 PM, Craig Carter
<[email protected]> wrote:
> We were primarily trying to keep consistency between the million or so 
> records we already have with the old format that will still be there.  We'll 
> investigate the UUID function on MySQL and see if that will work.  Having 
> never used MySQL, I wasn't aware that existed.
>
> Craig Carter
> Information Technology Manager, RSP
>
> -----Original Message-----
> From: Action Request System discussion list(ARSList) 
> [mailto:[email protected]] On Behalf Of Grooms, Frederick W
> Sent: Wednesday, December 30, 2009 2:24 PM
> To: [email protected]
> Subject: Re: Q: GUID Generation
>
> I'm not exactly clear why you need to use Remedy's GUID.
>  On MS SQL server you could use the NewID() function to generate a unique ID
>  On MySQL you can use UUID() function
> Either one of those will give you a "Unique" ID to work with.
>
> Fred
>
>
> -----Original Message-----
> From: Action Request System discussion list(ARSList) 
> [mailto:[email protected]] On Behalf Of Craig Carter
> Sent: Wednesday, December 30, 2009 2:57 PM
> To: [email protected]
> Subject: Re: Q: GUID Generation
>
> We're actually on SQL Server and they are on MySQL and we can't use a simple 
> sequencer anyway.  After reviewing GUID and UUID, there are several variances 
> on this and I'd like to basically duplicate what the BMC/Remedy function does 
> rather than have them call a Remedy web service and pass one back.  We're 
> basically migrating certain processes to another system but keeping them 
> integrated so it would be easier if their system could generate a like value 
> going forward.
>
> Craig Carter
> Information Technology Manager, RSP
>
> -----Original Message-----
> Date: Wed, 30 Dec 2009 21:28:07 +0100
> Subject: Q: GUID Generation
> From:         Craig Carter <[email protected]>
> To:           [email protected]
>
> **
>
> Anyone know if the actual code behind "Application_Generate_GUID" is 
> available anywhere?  We need to try and duplicate this functionality in a 
> different system for integration purposes and wondered if this information is 
> available anywhere?
> Regards,
> Craig Carter
> Information Technology Manager, RSP

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:[email protected] ARSlist: "Where the Answers Are"

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:[email protected] ARSlist: "Where the Answers Are"

Reply via email to