DirectSmile Integration Server commandline tool DStrip

In the past I wrote about one or the other command line tool related to DSMI, but this one is quite handy and easy to use. DStrip makes it very easy to unpack and add a bunch of DirectSmile Set- or Document archives, in dZip format, to DSMI at once.


The DirectSmile Document and Set export format is typically a Zip container that includes a lot of resources, like clip-, pic- or system fonts, a background image and more. While the Set preperation for instance, we usually add several scalings of the Set as well. The Zip Archive keeps the folder hirarchie and that enures that the Set is unpacked at the right place on your machine, which is typically the working directory.

DSMI and dZips

The DirectSmile Integration Server provides several methods to import Sets and Documents, I blogged about this here. Most of them, except the whole catalog import, have in common that you can import just one archive at once. The import can deal with dZips though, but one at a time.


That’s where you can use DStrip. It can import as many dZips as it can find in a source folder and it can remove all scalings before the import to DSMI. Scalings are igrnored by DSMI, because of the built-in autoscaling.

DStrip is a little commandline tool that you simply tell:

  • a source directory that contains dZip archives
  • a target directory were the unpacked Sets and Documents should be stored in, typically the DSMI account folder

On top of that you can pass three commandline switches, but DStrip works just fine with the defaults:

  • IgnoreScaled True/False (Default True)] Shortform: /i:
  • FlattenOutput:True/False (Default False)] Shortform: /f:
  • Overwrite:True/False (Default True)] Shortform: /o:
    Here’s an example, where I ran DStrip from c:\temp. I copied a few dZips into the temp\dzips folder before and ran the tool. All I need to specfify was the source- and the destintation directory.


Have fun!

Deny access from internet to DirectSmile Integration Server settings

The DirectSmile Integration Server front end is using https and Forms authentication to authenticate and authorize DSMI accounts. That is a common way to ensure security and to allow access to specific users.

On top of that you can add extra security to restrict access to specific parts in DSMI.

Using IP Address Domain Restrictions in IIS 7/8

To restrict the access to the server settings from the internet for instance, you can add the IIS feature called IP Address Domain Restrictions.


This feature enables client IP based  restrictions for a whole web site or a specific sub folder of an IIS applications. For the server settings example, this means that you want to add a restriction just for the ServerSettings subfolder.


Setting up such a restriction is easy, all you need to deny the access from unspecified clients in the feature settings.


Now we are denying every request, what is secure. Now we add an exception to allow requests from the local hostm only.


Clients trying to access the DSMI server settings, will now recieve a 403:


While the server settings are still accessible from the local machine.

Customizing the default image for PictureInPicture Sets

Application Default image
Usually, if you pass a URL to a DirectSmile Set that is contains a Picture In Picture frame, the image is downloaded and placed while the image is rendered. Sometimes, if the download failes for instance, the image can’t be placed and a default image is taken instead. Typically the image would look like this:


As you can see the text field does not contain a valid URL and the default image, built into the application, is taken.

Providing your own default image
The default image can easily be customized by placing a JPG file in the DirectSmile Set directory. Let’s take the following image.


It is important to name the image default.jpg, otherwise the VDP Studio won’t find the image.


The VDP Studio recognizes the file and automatically replaces the default image by the customized image.


Autoscaling activated automatically on Image set checkin

With the next version of the DirectSmile Integration Server we will change a minor thing in the Image Set check-in process. Formerly if you checked in a DirectSmile Set the auto scaling was turned of and must have been activated manually. We changed that and now auto scaling is activated for a fresh uploaded Set automatically.

In case you don’t want to update your DSMI but need to have the auto scaling activated you can do that by adding an INSERT Trigger to the items table in the dsmodb database. The trigger simply sets the auto scaling flag to true on new check-ins. The SQL code example to add such a trigger might look like this:

CREATE TRIGGER tblItems_Set_Autoscale
ON [dbo].[tblItems] FOR INSERT
— SET NOCOUNT ON added to prevent extra result sets from
— interfering with SELECT statements.
DECLARE @ContentType char(3)
SELECT @Id = inserted.[ID] FROM inserted
SELECT @ContentType= inserted.[ContentType] FROM inserted
if @ContentType =’SET’
Update [dbo].[tblItems] set AutoScale=1 WHERE ID=@Id

It checks if the user checked in a SET and updates the autoscale flag.

Sending DirectSmile Integration Server perfomance counters to Amazon CloudWatch

This is the third post of a series of blog posts about new cloud computing features in DirectSmile Integration Server version 5.

In my last post about DirectSmile Integration Server 5 performance counters, which you can find here, I showed how the DirectSmile Intergration Server backend collects windows performance counters regarding the performance of DSMI. This helps most of all IT departments to monitor if the system is working properly and sufficient.

In a cloud environment like Amazon’s EC2 this isn’t enough though, because Amazon provides us a very good platform, called Amazon CloudWatch, which is capable of monitoring all instances at once. CloudWatch can aggregate performance data and present it in nice graphs. On top of that, CloudWatch lets us add alerts and actions depending on the monitoring values.

To get the performance counters written by the backend into CloudWatch I wrote a little CloudWatch client that runs on the machine that has the DSMI backend running. This client is a simple console application that can also be started as a Windows service, which is then running in the background.

Once the client sends the performance counter data, the counters are visible in Amazon CloudWatch.

Here’s a screenshot taken from Amazon CloudWatch, showing the production server load, of two DSMI machines, while job processing.


Based on metrics we can setup alerts. We can for example define an alert that notifies us if the DSMIBusyProdserver value is hitting 100 % continuesly for 3 hours in a row. Or if the DSMIFailedJobsInPercent is rising above 5%. Depending on the DSMIJobInQueue you could spin up more EC2 instances to cope with the extra job load.

New Performance counters in DirectSmile Integration Server 5

This is the second post of a series of blog posts about new cloud computing features in DirectSmile Integration Server version 5.

Following DSMI installations of our customers in the past I mentioned that those installations became bigger and bigger. Not only that those installations involve more machines holding production servers, no, even DSMIs systems are extended by load balancing and replication.

The built-in DirectSmile Integration Server backend monitor is quite a handy tool to monitor the state of the jobs queues and the production servers. The disadvantage though is, that especially the backend monitor needs a range of ports to be open to allow the Silverlight application, hosted in the browser, to access those data. Another disadvantage, from an IT perspective is, that this highly-valued data cannot be aggregated easily by common tools in IT administration.

Having demands of IT departments in mind, we added performance counters to the DirectSmile Integration Server backend. The backend exposes now those three counters:


  • DSMIBusyProdServer shows the load of busy production server in percent
  • DSMIFailedJobsInPercent shows the amount of failed jobs in percent
  • DSMIJobQueue shows the amount of jobs waiting in the In-queue.

I think that these three values can give IT administration a better understanding of the current state of a DSMI. Bottlenecks can be easily, and in an automated way, identified. For instance, you probably have not enough Production Servers running, if the Job-In Queue is always filled. Or, deeper investigation is necessary, if DSMIFailedJobsInPercent hits a defined level.

Have fun.

Hosting DirectSmile Integration Server 5 in the cloud

This is the first post of a series of blog posts about new cloud computing features in DirectSmile Integration Server version 5.

I ‘m very excited to let you know that the version 5 of the DirectSmile Integration Server can be hosted in the cloud.

Cloud computing for the DirectSmile Integration Server means full flexibility in image and document rendering power. The demands for personalized printing in our industry depends often on seasons in the year, there is, for instance, the calendar production in the end of the year. The postcards production increases drastically around Mother’s or Valentine day, what is a total difference to the average production over the rest of the year. Wouldn’t it be great to ensure extra capacity to cope with those extra amounts on a daily or even hourly basis? And keep your system small enough for the rest of the year to save energy and hardware costs?

In the beginning of 2012 we and some DirectSmile Beta customers started an approach to move an onsite installation of the DirecSmile Integration Server into the cloud. Having a strong relationship with local ISPs we began with private cloud solutions. That was very successful and is in production now.

In parallel we extended our relationship with Amazon and started test installations in the EC2 Amazon cloud environment. Against the private cloud scenarios, what typically depend on the customer and the customer’s ISP, we are following a more general approach with Amazon. Amazon’s global infrastructure, datacenters and monitoring software made it more easy for us to find basic solution that enables our customers to move their existing servers into the cloud or start a new installation from scratch. Because installations are generalized in virtual machine templates, increasing and decreasing the amount of available machines is much more easy.

I’m planning a series of blog posts around DSMI and cloud computing and this is the first. Let me finish with a really excellent best practice guide written by Andreas Ostermann, who put together all his experience from helping customers establishing large DSMI installations in the Amazon AWS cloud environment in the last months.

DSM AWS Hosting Best Practice

have fun.