DSMShop Adminservice start parameter

The other day I stumbled upon a problem, where I had installed a shop frontend that was listening to a different URL than the DSMI that was serving the shop. Since the certificate was bound to the DSMI domain URL I failed to open the shop’s administration. The reason for that was, that the Silverlight application tries to connect to the admin service using https. The endpoint address is build dynamically at runtime depending on the shop URL stored in the database. This works in 99 percent of all cases, but not if your DSMI is using a different URL.

Fortunately, Alex has a simple solution for that. You can pass the host URL in the initialization parameters of the index.html file that loads the Silverlight application.

This is how the value should look like, to override the default behavior and set the host URL to a specific one. The value is empty by default.

<param name="initParams" value="Host=https://dsmstore.directsmile.de/" />

The index.html file can be found in the …\dsmstore\Content\AdminSL of your shop installation.


Short overview of DSMI’s service interfaces

DSMI ships with three different kinds of interfaces supporting different kinds of protocols and security models. I would like to give you a short overview to help you understand what’s available and what interface matches the best to your scenarios. I will not go to much into detail in this article. My intention is more likely to have a look from the bird’s eye perspective onto our interfaces.

An easy but powerful interface is http based. We have http interfaces implemented to enable you to request a stream of a DirectSmile image, DirectSmile Document or the catalog structure. This interface is http GET based, so you simply pass all parameters to configure the resulting image or document or filter arguments for the catalog in URL parameters. We added test pages to the DSMI frontend for all those interfaces to let you see how the different parameters take effect.

SOAP 1.1
The LB namespace represents our oldest ASP.NET web service interface. It contains methods to retrieve Sets, Documents and Crossmedia templates. Using this interface you can start image and document rendering in an synchronous and asynchronous way.  Although, there are new interfaces like the Workflow services, that offers much more functionality to interact at many stages of document production, this service provides a simple interface and a good point to start. To stay downward compatible we kept  the old method signatures untouched, but added some handy new methods. For instance, You can retrieve an xml representation of the catalog using the lb namespace as well.

WCF SOAP 1.1 and httpbinding
The LBW namespace is a Windows Communication Foundation web service that represents our view of a modern client interface. It provides methods to retrieve the catalog structure in a strongly typed manner. It has functions to add and retrieve collections of custom properties and/or tags.  It also provides an easy way to communicate with the new workflow engine. We tried to reduce the amount of methods to keep it as simple as possible.

WCF SOAP 1.1 and httpsbinding
Some of our new interfaces demand on a more secure binding. Those interfaces are the RepositoryManager, the Workflow and the Shipping service. Because these interfaces can potentially provide sensible data, we decided to secure all calls on transport and message level. To interact with those interfaces an SSL server certificate is necessary to be installed on the server. Many of those methods are also secured by permission attributes and can only be accessed if the authenticated user is member of a particular DSMI role group.
We consider those interfaces as more or less internal interfaces, because they contain a huge amount of methods to manipulate the catalog or workflow orders. All our Silverlight applications use these interface, the Itemsbrowser sits on top of the RepositoryManager and the Workflowmanager on the Workflow service for example. While the LBW contains usually only methods to retrieve data, the interfaces like the Repositorymanager or Workflow support fully manipulating the data, like adding or deleting items.