KSM builds cutting-edge technology solutions to increase the efficiency and reliability of power generation, transmission, and consumption.
KSM designed and implemented a REST API for coordinated smart charging of plug-in electric vehicles. Utilities publish the price of electricity in real-time to the service; charging devices subscribe to price updates and turn themselves on when the cost per kWh falls below a user-defined threshold. During periods of high demand or grid congestion, utilities can send demand response signals asking the devices to volunteer to shut down, pending consumer override.
- Adopted and extended industry-standard contextual model, expressed in XML schemas;
- Developed solution in the Scala programming language, using the Lift web application framework;
- Deployed the solution on the Amazon Elastic Compute Cloud;
- Delivered the solution on-time and under budget, using KSM’s custom application development service model, with team members on both US coasts and in the US midwest.
Power Grid Data Feed
A large independent system operator (ISO) engaged KSM to publish near-real-time pricing, power load, and forecast data to its customers. KSM’s solution, a restricted-access web service, introduced a second-level distributed cache between lightweight web servers and the relational database. The solution afforded vastly greater performance, scalability, and reliability. Because it replaced a heavyweight commercial JEE application server cluster, it also greatly reduced licensing costs. The 100% open-source Java solution stack included:
- Apache Tomcat servlet container;
- EHCache for distributed caching;
- Apache CXF web service framework;
- Spring Framework for dependency injection.
A large independent system operator (ISO) engaged KSM to assist with the selection and implementation of a commercial enterprise service bus (ESB). The client’s reliability requirements stipulated zero-message-loss fault tolerance, in a distributed environment spanning multiple geographic locations. KSM conducted a “shoot out” evaluation, whereby short-listed vendors were invited to address the client’s fault-tolerance and multi-site requirements the client’s computer lab. After the selection phase, a KSM team joined the multi-year implementation program, and delivered:
- A Java service framework that realizes reuse and loose coupling through a “chain-of-responsibility” design pattern, implemented with the Spring framework;
- An XML-based domain-specific language (DSL) for assembling services into business processes, and mapping constituent services onto computing nodes distributed across sites;
- An automated, repeatable build process to replace the interactive one provided by the ESB vendor, using Subversion, Apache Maven, Sonatype Nexus, and Hudson;
- Specialized services for streaming large messages over the ESB’s messaging subsystem, using the “Claim Check” enterprise design pattern;
Canonical Type Modeling
KSM worked with an ISO and their EMS and markets system vendors to develop a contextual message model governing the exchange of messages between applications in the ISO’s portfolio. The model-driven architecture generated web service description language (WSDL) documents to describe the generic interfaces between systems, and W3C XML schema documents (XSDs) to govern the structure of the messages passed. At the core of the model were atomic business terms, defined and clarified by consultations with subject matter experts on the sending and receiving ends of the exchange.
- Developed the core model as UML using Sparx Enterprise Architect
- Developed UML stereotypes to govern the transformation to XSDs and WSDLs.
- Created custom stereotypes and tagged values to capture additional message and interface metadata (message sensitivity, message owner, etc.).
- Generated interface and message documentation from the UML model using XSLT.
- Established a versioning strategy for messages and interfaces