<xweld/>-JAVA Development Kit (JDK) for Capital Markets¶
Introduction¶
The <xweld/> JDK is a feature-rich Java platform for accelerating the development of Capital Markets applications. The framework provides significant benefits for large-scale financial software development projects, such as increased project quality as well as reduced delivery risk and timelines. It contains pre-built configurable software patterns that can be quickly wired together into enterprise-scale J2EE or J2SE financial applications. The <xweld/> framework is the brainchild of its principal architect and developer John Free and it is currently used in production by some of the world's most successful financial institutions and consultancies.
Features¶
- A suite of tools independent of any container or J2EE/J2SE platform, supporting JPA-based application configuration, dependency injection, expressions, type conversion, validation and many useful utility functions
- A JPA-based persistence abstraction over Hibernate and Envers that supports entity persistence, large datasets, and entity auditing using JTA or RESOURCE_LOCAL transaction management
- A lightweight, performant XML-based messaging integration platform using pluggable Message Oriented Middleware
- A pluggable application security framework over JAAS using user- and role-based metadata to dynamically configure application entitlements.
- A highly scalable, versioned, searchable hybrid EAV/XML document warehouse
- Pluggable distributed caching and workflow engine supporting multiple vendors
- Financial application foundation classes, including currency and currency conversion, curves, pluggable valuation models, quotes, rates, and prices, periodic scheduled tasks, holiday calendars, business centers, regions, day count calculators, analytical models, market data, money, ultra-lightweight financial dates and time stamps
- An extensible reference implementation of the cross-asset trade domain model and griddable valuation framework.
Benefits¶
- The <xweld/> JDK encapsulates and configures many of the components required to develop Capital Markets applications, independent of an application's domain model. While there is some overlap with other popular libraries, the JDK is compatible with other lower level frameworks such as Spring or Google. In fact, it can happily co-exist and re-use toolkits like Spring.
- The JDK is container and deployment neutral giving maximum flexibility in supporting the architecture of your application.
- The JDK has a layered architecture, meaning that you can choose to use just about any part of it in isolation, yet its architecture is internally consistent, extensible and flexible.
- <xweld/> is a higher-order platform by providing configurable pre-built, yet pluggable services and functions. Other tools are designed to be domain agnostic and as a result by necessity are much more lower level. Yes, libraries like Spring can and should be used to build great applications, but they leave a great deal of functionality, risk and cost up the application development team.
<xweld/> Guiding Principles and Best Practices¶
While many of the patterns and constructs in the <xweld/> JDK are not domain specific to Capital Markets, developers will find that the default implementations of many of the patterns implement those commonly used in enterprise-scale applications. One of the central (and religiously applied) architectural patterns used by the <xweld/> JDK is the ability to swap out an implementation of a service or function by using a wrapper or facade and making the implementation configurable at run-time. This pattern allows all <xweld/> applications to dynamically configure the choice of workflow engines, the grid-cache implementation, currency conversion mechanism, messaging middle ware, curve and schedule generation, valuation models, dependency injection implementation, security provider or the persistence mechanism. This approach provides maximum flexibility for application developers (build your code on the default configuration and swap in any implementation for your client environment) and greatly reduces vendor lock in for re-usable applications. Capabilities such as the above are considered <xweld/> Guiding Principles and these principles focus the resultant best practices for <xweld/> development. Additional Guiding Principles are listed below:
Guiding Principles¶
- Rapid change is fundamental to the capital markets business
- Design for extensibility
- Enable change through encapsulation, composition and extension
- Maximize reuse and robustness
- Loosely coupled designs allow us to build systems that are more flexible because they minimize the interdependency between objects.
- Layer your implementation from general to specific. A low-level component should never call a higher-level component directly.
- Progress can be evolutionary not revolutionary
- Develop incrementally, use an existing implementation and swap it out later without changing your code.
- Program to an interface, not an implementation
- Separate code that varies from code that stays the same
- Classes should be easily extended to incorporate new behavior without modifying existing code.
- Timeliness of information provides a competitive advantage
- Implement event driven architectures
- Provide real time views into data and processes
- Measure quality and throughput of data regularly
- Avoid locking in to vendors & platforms where possible
- Minimize structural dependencies in skills, technology, and cost (benefit from wider availability of resources for maintenance and future change initiatives
- Depend upon abstractions, use dependency inversions such as injection or factories
- Wherever possible leverage an industry standard
Module Documentation¶
The online documentation for each module is listed below:
- <xweld/> core
- <xweld/> inject
- <xweld/> expression
- <xweld/> messaging
- <xweld/> security
- <xweld/> runtime
- <xweld/> services
- <xweld/> workflow
- <xweld/> XML warehouse
- <xweld/> finance
- <xweld/> valuation
Contact Us¶
For more information, please contact us at info@xweld.com
Copyright¶
Copyright © 1999-2012 <xweld/> Development Community, All Rights Reserved.
The contents of this web site, all images, text, grahics and software are the sole property of the <xweld/> Development Community and its agents. Unauthorized use or transmission is strictly forbidden by international copyright law.