SoftwareComponents.ch

We offer highly reliable, industrial-strength, ready to use professional software components building blocks, delivered with full source code and professional support.

Our components are not toys or approximations. They were precision-designed, built and tested by highly skilled individuals and come will full professional support. They were all tested for memory leaks and robustness over millions of operations and their cost is only a fraction of what it would take to architect, design, engineer, test and debug comparable solutions.

Consulting and integration services are also available if desired. We can put our 25 years of extensive development experience at your service!

Software components

Folder Watcher Component (Native Win32, C++, COM)

Highly scalable
32 & 64-bit reliable local folder watcher (aka "hot folder") component that really works, suitable for folder monitoring in client or server environments under any load. Uses advanced programming techniques to achieve utmost reliability: it never, ever misses a file arrival, even under extreme machine load
and even in very busy multi-processing / multi-core server environments. The component can be used as a C++ class and linked
directly into an application or server, or as a free-threaded COM component called from C/C++, C#,
VB.NET, VB or any COM-capable client or .NET-based language. It would be easy to create a wrapper DLL with a classic C-callable API to use the component from
virtually any development environment or language.

There are plenty of sample code on the internet that shows how to watch folders from native
or managed code. Those all work well under light load but are not 100%
reliable. Just Google FileSystemWatcher missing events to get an idea. Also the "hot start" scenario is never addressed, where your processus starts
(or is restarted) on a non-empty folder (or folder tree) with thousands or tens of thousand files that must be scanned to grab existing files and monitored at the same time for new incoming files, and where you cannot afford to either miss a file, grab it out of chronological order, or grab it twice. This happens all the time in real production scenarios. The original version of this component has been used since 1999 (and still is) on industrial systems
in the internet photo printing industry, processing hundreds of millions of files per year, without ever skipping a beat.
The component has been fully leak-checked - it can run for an indefinitely
long time - and is ready for deployment in 7/24/365 systems. It has a dynamic internal structure that allows it to fetch and queue hundreds of thousands of events,
only limited by available memory. Events can be read by any number of concurrent threads in a perfectly synchronized and chronological fashion. If you are looking for a hot folder component for the next
"desktop folder synchronization utility", this product probably is not for you. If, on the other hand, you are wondering
about how to solve those elusive and entirely irreproducible bugs in your
mission-critical hot folder-based system, like files left behind for no
apparent reasons, you have come to the right place!

This component can be seen in action in FastPictureViewer, a desktop image viewer where is it used to track folder content on local drives.

Price: US$ 5,500.00 (includes full source code and professional support)

Persistent Cache Component (C#, .NET 2.0 or later)

Highly scalable persistent cache component, able to handle millions of prioritized [Serializable] objects of mostly any kind, ranging from a few bytes to a few hundreds KB. The cache supports multiple scavenging strategies, events, 20+ performance counters, quotas (total objects or total size) and more. Transactional object storage survives computer crashes without special maintenance. Exposes its services remotely through .NET Remoting.

Price: US$ 6,500.00 (includes full source code and professional support)

Storage Manager Component (C#, .NET 2.0 or later)

Highly scalable dynamic storage manager with multiple allocation strategies. Aggregates multiple storage locations (local or remote volumes) into a hierarchic storage pool of potentially hundreds of terabytes. Clients make simple storage allocation requests, for example to allocate space for a file of a certain size, with certain criteria such as required speed of access or type of storage location, and the Storage Manager picks the most appropriate physical location (storage point) to store the file and allocates space for it. Supports load balancing, round-robin and waterfall strategies, distributed storage (SAN), 9 performance counters per storage point to monitor their status. Initially designed for supporting a highly scalable image storage farm of millions of objects. Highly robust, internally implemented using finite state automata, able to handle hundreds of allocations per second. Exposes its services remotely through .NET Remoting.

Price: US$ 6,500.00 (includes full source code and professional support)

Distributed System Component Locator (C#, .NET 2.0 or later)

The component locator can be the backbone of a distributed system where software components find each other on the LAN by service type, for example a storage consumer could query the component locator for the location of a storage manager, or the location of a cache manager. Services can register and unregister dynamically from the Locator, each locator maintain a replicated database of running services and detects / maintain the state of the available services across the LAN along with each nodes load level. If a machine goes down the requests for the service(s) that were hosted on that machine will automatically be routed to another suitable computer. Conversely, if a new machine or service gets added, the Locator will automatically and dynamically integrate the newly added services and load-balance requests across all available services. 19 performance counters are provided to monitor the Locator service's operations.

Price: US$ 6,500.00 (includes full source code and professional support)

All components can be modified and adapted to suit particular needs, please write for more information. The components are licensed on a per project basis, regardless of the number of developers involved. They can be redistributed in compiled or linked form with your application but cannot be used as part of development frameworks, libraries or as part of competing products. The components and their source code are licensed, not sold.

SwissDecTX Transmitter is a ready-to-use software component written in C# and C++ which performs the secure and encrypted data transfer required by SwissDec at a fraction of the cost and time it would take to develop your own conforming secure transmitter from scratch.

All transmissions are signed and encrypted using X509 certificates and conforms strictly to the SwissDec requirements. This component does not create the XML salary declaration itself, but it performs a full local validation of its content, using the official XSD schemas, then transmits the data, fully signed and encrypted, to the administration's web service. A transmission dump is available, allowing you to maintain the transmission log required to fully adhere to the SwissDec certification rules. The entire web service interface is exposed through SwissDecTX, allowing you to support 100% of the SwissDec Transmitter Recommendations:

CheckInteroperability

DeclareSalary

DeclareSalaryDeferred

GetStatusFromDeferredDeclaration

Ping

Server replies are returned to the application as XML data.

The signed and secure, fully compliant transmission of XML declarations is performed in just a few lines of code with SwissDecTX, making it extremely easy to conform to the strict requirements imposed. Call bindings are provided for COM (VB6, Delphi, C/C++, .NET 1.x, ...), .NET 2.0 or later (VB.NET, C#, ...) and a C-callable wrapper can be used to call the library from any language or environment able to call DLL function, e.g. PC SOFT's WinDev, C programs, etc.
We can produce 64-bit versions of the components if necessary, contact us
for details. We have customers using Progress, WinDev, VB, Access and Delphi
so far, all using the exact same version of the transmitter.

With SwissDecTX you only have to worry about the business side of the declaration, i.e. perform the calculations and create the output XML document. Once you are done, SwissDecTX takes cares of all the complex details like XSD validation and internet communication. The library interacts with the secure web service on your behalf, using your own security certificates. SwissDecTX takes care of all transmissions details and transparently handles HTTP redirects, HTTPS, HTTP Authentication, HTTP Proxies with and without proxy authentication and the mandatory secure SOAP / XML transmission. Think about how long it would take you to handle all those aspects "by hand", with proper error handling and quality testing required for any professional application...

SwissDecTX makes it much easier for you to get the SwissDec certification, you can start sending fully-conformant signed and encrypted declarations in minutes instead of weeks or months.

Server and client certificates can be configured externally, along with the service's URL, making it easy to switch from the test environment to the production environment without even recompiling your application. The product also ships with a command-line utility, SwissDecTx.exe, which let you send salary declarations from the command line, from batch files or from any environment that can execute external programs, including PROGRESS, Clipper, VB6 etc:

We use ultra-modern development tools and techniques to ensure the quality of our products. SwissDecTX was developed with Microsoft Visual Studio Team System 2008 and all aspects of the library have been tested inside out using automated tests developed for each routines:

The library is available now for licensing in binary form. Here is a sample message corresponding to the reference file ICHAGCompany.xml (use the View Source command as IE has trouble with very long lines), and here is the corresponding reply and status, confirming that the server has accepted the declaration (despite that the sample data is outdated).

System requirements: Windows 2000 or later, including Windows XP,
Windows Server 2003, Windows Vista, Windows Server 2008 / 2008R2, Windows 7
and Windows 8 (desktop). The transmitter only depends on the .NET
Framework 2.0: there is no pre-requisite to install on Windows Vista or
later operating systems. Also, no need to install the (heavy) .NET
Framework 3.x/4.x on Windows XP, and SwissDecTX still works on W2K if
necessary!

Price: CHF 5'500.00 (per project or product, includes FULL hands-on support for integration with your salary application and 1-year maintenance, bug fixes and updates plan. An inexpensive yearly maintenance contract is available for subsequent years)

SwissDecTX is licensed per product and per company, there is no runtime royalties or redistribution fee, the cost is fixed and you simply license SwissDecTX once, for product X of company Z, that's it! Inexpensive yearly maintenance plans comprising all updates and extended support are available. Source code is also available under a separate license.

Made in Geneva: email and phone support in French or English. We have extensive experience working with developers at all levels and developing libraries and software component building blocks.

More than 18 software developers already got the
full SwissDec certification of their salary product with our SwissDecTX transmitter
since Sep 7, 2009.

The SwissDecTX transmitter is a proven, reliable
product and its runtime is now deployed and in production in hundreds of companies,
collectively transmitting thousands of salary declarations every year. Ask
your local SUVA expert: he certainly heard about this product and chances
are that he certified one or more salary apps with our transmitter already!

SwissDecTX is a hassle-free, lightweight component: just add a small
installer (about 1.5MB) to your application and that's it! Deployment on
the end-user machine is entirely handled by the supplied installation
routine.