by community-syndication | Jun 9, 2011 | BizTalk Community Blogs via Syndication
One of the things that can be fairly useful in BizTalk maps is the ability to create global variables. These can be any .Net class that can be accessed from the map, everything from simple bool or int values to generic classes such as List<string>. You create these from within a c# scripting functoid and can use them from within the same or other scripting functoids.
A good place to create and initialize global variables is in a scripting functoid at the top of the map (or in another standardized location) so you always know where to look for them.
For any functoid to be triggered it needs to be connected to an output node, and it needs to contain (at least) one c# method. Yet the functoid containing your global variable initialization you often do not want creating output. To create a functoid that will initialize your global variables without creating output create a method that return a void. Such a method will not create any output, yet it will – when connected to node in the destination schema – be included in the resulting and called from the xslt. A good practice is to connect this functoid to your Root node, whatever that node might be named.
The following is an example of a map that creates and uses a global variable:
The functoids has the following content, from top to bottom:
string myGlobalString = "hello";
void InitGlobals ()
{
// you can do any initialization logic here
}
This code creates a global variable and has an empty method returning void to fulfill requirements yet yield no output. This is really the only snippet needed, the one that shows how to create a global variable, the rest simply show some examples of how to use it.
string GetGlobalString ()
{
return myGlobalString;
}
This method takes no input, but returns the globally available string that we defined in the first functoid and returns it – just to show that it’s available.
string UpdateAndReturnGlobalString(string s)
{
myGlobalString = s;
return myGlobalString;
}
This method takes an input, and then updates the global variable with that input, before returning it. This is just to show that you can do things to your variable – it is not a constant. For example, had this been a collection, you could add items to it.
This post, although something fairly well know within the community of seasoned BizTalk developers, is meant to illustrate how you can think outside the Mapper designer and the xslt box when developing BizTalk maps. I also created it for the purpose of being able to refer to it as I create posts that are more advanced in nature, without having to explain this concept in those posts.
/Johan
Blog Post by: Johan Hedberg
by community-syndication | Jun 8, 2011 | BizTalk Community Blogs via Syndication
This is a Part 5 of the Questions for interview articles.
Part 1: BizTalk: Questions for interview without answers
Part 2: BizTalk: Interview questions and principles
Part 3: WCF: Questions for studying and interview
Part 4: WCF: Questions for studying and interview: Discovery
Part 5: WCF: Questions for studying and interview: Routing Service
WCF, Routing Service
Q&A
What are the features of the Routing Service (RS): Protocol bridging; Message transformation; Content-based routing; Application pools; Dynamic configuration; SOAP processing; Service hosting; Error handling; Backup endpoints?
Which routing scenarios can RS implement: Service aggregation; Interface recomposition; Service versioning; Service chain; Priority routing?
Is it possible to modify the routing configuration at run time?
What is the RS doing if there is no match for a message routing?
Can we route to the mix of the one-way and two-way destination endpoints using a single service endpoint?
Do we have to create the implementation of the RS as a .NET class or an .svc file with “Service=”System.ServiceModel.Routing.RoutingService, ” plus a configuration file is enough?
What is it a SOAP processing? How it works?
Can it convert messages between Soap 1.1/Soap 1.2/Soap 2.0 and/or WS-Addressing August 2004/WS-Addressing 1.0?
What is it a Backup endpoint?
What is the maximum number of the Backup endpoints?
What is it a Protocol bridging?
What is it a Content-based routing?
How the Priority routing is working?
How we can host the RS?
Are there limits on using streaming for the RS? Where we have to buffer the messages?
How we can expose mex endpoints of the original services through the RS?
Can we use the RS as a load balancer?
by community-syndication | Jun 8, 2011 | BizTalk Community Blogs via Syndication
When determining infrastructure requirements for a client
often the question of whether to use BizTalk Standard or BizTalk
Enterprise comes up. If the client is a small enterprise with limited
redundancy and scaling needs the Standard Edition of BizTalk should
work fine. If the client requires any redundancy or scaling then
Enterprise is almost certainly necessary.
In other words if your requirements dictate that you require more than
one BizTalk server you will need the Enterprise Edition of BizTalk
since “BizTalk Server 2010 ENT is the only edition that supports using
more than one computer to share a BizTalk Server 2010 load.” As per the
BizTalk Pricing and Licensing FAQ athttp://www.microsoft.com/biztalk/en/us/pricing-licensing-faq.aspx
by community-syndication | Jun 7, 2011 | BizTalk Community Blogs via Syndication
http://blogs.technet.com/b/dataplatforminsider/archive/2011/06/03/fourth-largest-us-stock-exchange-direct-edge-looks-to-sql-server-parallel-data-warehouse-for-big-data-needs.aspx
- Recent tests on their data showed dramatic gain in performance, with up to 163 times improvement in query performance and data loading speeds of up to 1 TB per hour
- In addition, their testing data shows the solution generates reports in under 15 minutes, for what used to take over four hours
Also posted on information week – http://www.informationweek.com/news/software/info_management/229900133
Blog Post by: cvidotto
by community-syndication | Jun 7, 2011 | BizTalk Community Blogs via Syndication
I assume anybody in the BizTalk space would have known BizTalk 360 by this time. I though I’ll just give my view of the product here. BizTalk 360 tries to address some of the real challenges we face on a BizTalk environment, especially controlled environments like Production and Test environments. There are 3 core features […]
Blog Post by: Randal van Splunteren
by community-syndication | Jun 7, 2011 | BizTalk Community Blogs via Syndication
In this post we will see a scenario where customer who are using Microsoft BizTalk Server can maximize their investment by reusing the environment for multiple business units/departments or projects by taking advantage of BizTalk 360 fine grained authorization.
Scenario: Let us take a scenario, where Woodgrove bank has made a huge investment in Microsoft BizTalk Server and they got 3 core mission critical applications "Loan Processing", "Mortgage Processing", and "Personal Account"deployed in their environment as shown below.
After a while there is a new requirement to build 2 new BizTalk applications to deal with "Business Accounts" and "Credit Card Processing". But the challenge here is these two applications will be developed and supported by a completely different business units (Business accounts department). They also aware the new applications are NOT high volume, and the current production environments are capable of taking the additional load.
The biggest concern for them is on supporting the applications and making sure business units are not interfering or seeing each others data.
Here are the challenges and options the bank faces
1. The simplest option will be to build a brand new environment for the business account department to deploy these new applications. This will solve the problem but it comes with additional cost and managing additional environments.
2. Take the risk and deploy all the applications in the same environment and hope your support staff will behave nicely.
BizTalk 360 to the rescue:
BizTalk 360 tries to address this problem seamlessly by providing a fine grained authorization module. It allows administrators to setup customized user access policy as shown below.
You deploy all the applications in a single BizTalk environment (provided you got spare capacity or you know the applications will be used in different times of business etc) and set the user access policy appropriately. In this scenario the administrator will provide users with appropriate application rights based on the business units/departments as shown above. In addition he can set other access rights like (access to BAM, EventViewer, Global Query etc) making it really powerful. If required the administrator can provide only READ-ONLY access to certain users for the applications.
The administrator can view all the user access policy for the environment anytime as shown below via the admin module.
Administrator View:
Administrator will be able to view all the applications deployed in the environment. He/She can query against instances across all the deployed BizTalk Applications as shown below.
Users from Business Unit 1 (Ex: Personal Account):
Users from personal accounts department will only be able to see applications related to them. In this case that is "Loan Processing", "Mortgage Processing" and "Personal Account"
Users from Business Unit 2 (Ex: Business Account):
Users from business accounts department will only be able to see applications related to them. In this case that is "Business Account" and "Credit Card Processing"
Instances restricted at application level
Once the user access policy is setup, the users will be able to query instances (running, suspended etc) only at application level. They won’t have ability to see the instances for which they don’t have access to.
In the below screen shot you can see the query instance module restricted to "Loan Processing" application.
Social:
twitter: @biztalk360
facebook: http://facebook.com/biztalk360
support: http://getsatisfaction.com/biztalk360
Note: BizTalk 360 is a web based (RIA) application, built using Microsoft SilverLight. The above screens are accessible via browser. There is no necessity to install anything on the client PC except Microsoft SilverLight.
Nandri!
Saravana
by community-syndication | Jun 6, 2011 | BizTalk Community Blogs via Syndication
My new book will be released shortly and next week I’m heading over to the BizTalk User Group Sweden to chat about it. The book, Microsoft BizTalk 2010: Line of Business Systems Integration (Packt Publishing, 2011) was conceived by BizTalk MVP Kent Weare and somehow he suckered me into writing a few chapters. Actually, the […]
Blog Post by: Richard Seroter
by community-syndication | Jun 6, 2011 | BizTalk Community Blogs via Syndication
Released on MSDN - The Analysis Services 2008R2 Operations Guide
Blog Post by: cvidotto
by community-syndication | Jun 6, 2011 | BizTalk Community Blogs via Syndication
While on a journey of trying to dispell some of the unknown magic surrounding the Azure/AppFabric/ServiceBus and Web/Worker Roles, I was hit with a challenge of:
“How much will my ServiceBus Connections cost me? How is Cost calculated? is it
cost effective?”
Yes and No.
So – quick one on ServiceBus. It allows you to auto-create an cloud based endpoint
to your on-premise application (you can also control how client requests/messages
are distributed through your endpoint, direct, multicast and queued)
The costings……
Richard has a great article here and
there’s the updated
FAQ to guide you through.
Some key points:
– a ‘Connection’ is defined as either your application connecting OR one of your clients.
– a maximum of 2000 concurrent connections are allowed per ServiceBus namespace.
– you are charged on the average number of connections through the day/month
– # of connections are sampled in 5 minute intervals and
must be connected longer than 10 secs (as per the current FAQ)
– DATA Charges are EXTRA to above.
(This has the distinct feeling of early mobile phone plans where there were so
many moving parts and bits you paid for, that it was almost impossible to calculate
your monthly spend.
Azure definately needs caps and plans rather than sting you every step of the way)
So the situation I am currently facing is potentially a high volume public facing
port.
One solution to this is:
– use a webrole with it’s own endpoint the clients call into.
– Webrole talks to SB Endpoint
– SB endpoint talks to onpremise
Costs: DATA In/Out + Webrole + 2 SB Connections(for starters).
There’s a couple of cost calculators here:
– http://www.microsoft.com/windowsazure/pricing-calculator/
– http://azureroi.cloudapp.net/
Check them out,
Still unravelling the mysteries of the Cloud…
Blog Post by: Mick Badran
by community-syndication | Jun 6, 2011 | BizTalk Community Blogs via Syndication
After the unexpected success of my previous post and some requests, I decided to spend half of my weekend to improve the stencil by adding more artifacts. The result is 26 new shapes of a total of 37, representing: BizTalk topologies (Standalone and Clustering) BizTalk Runtime Architecture and ESB Toolkit Receive and Send Pipelines, Inbound […]
Blog Post by: Sandro Pereira