The document discusses designing a trading platform to be more extensible and evolve to support new asset classes. It recommends:
1) Representing data with XML to standardize structure and allow new attributes;
2) Implementing a service-oriented architecture with loose coupling between independently developed components;
3) Using a messaging system to facilitate communication instead of direct connections between components.
WFT has pioneered implementation of SAP on Private cloud, SAP Cloud computing & moving traditional on-premise data center to WFT Cloud for all their non-production and other non-critical applications. Virtualization though available for years has finally matured by providing end users leverage to embrace cloud computing solutions and technologies.
WFT has pioneered implementation of SAP on Private cloud, SAP Cloud computing & moving traditional on-premise data center to WFT Cloud for all their non-production and other non-critical applications. Virtualization though available for years has finally matured by providing end users leverage to embrace cloud computing solutions and technologies.
This presentation was give by Dave Read at the Semantic Technology and Business Conference in June 2012. The goal of the presentation talks about using semantic technology to mitigate mobile platform constraints at runtime.
See more at www.blueslate.net
Converged Infrastructure as a Go Forward StrategyJames Charter
Converged Infrastructure as the Go Forward Strategy. Overview of CI versus traditional architecture of compute, storage, networking and the benefits of adopting CI. Presented at VMware Virtualization Forum December 2010, February 2011.
New applications are increasingly built on distributed service architectures, including mobile and cloud-based services which increase the complexity and interdependency of the systems to be tested.
Teams are forced to do performance test earlier in the application lifecycle, before the application is complete or stable with the increased pressure to operate more efficiently, produce valuable results more quickly, and operate with fewer resources.
Learn how Service Virtualization is a critical enabler to allow testers to get started with performance testing from the first sprint.
We will demonstrate how Service Virtualization is an easy-to-use solution that integrated with multiple performance testing tools, resulting in an almost seamless solution for performance engineering and validation.
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...Brian Pulito
Today real-time communications in mobile devices typically means general purpose, non-contextual audio and video calling. WebRTC promises more by embedding real-time with context. For mobile this means apps enabled with WebRTC capabilities. While mobile implementations of WebRTC are now available for iOS and Android, there are still many decisions that need to be made to take advantage of it. Things like what frameworks to use, native vs. hybrid, how to handle security and much more. This session will discuss going from concept to delivered application and what steps and decisions need to be made along the way.
In this short how-to presentation, I am celebrating Unix.
All other systems and even the interent would not have been possible but for ATT making Unix freely available.
What a collosal think tank Unix at ATT had. What a shame the short-sighted ATT CEO dismantled it. God Only knows what else those brilliant minds would have created for the world. Loss is profoundly ours. And we celebrate Unix.
R Programming language (S from ATT) does analytics. Here we show only data preparation and loading.
This presentation was give by Dave Read at the Semantic Technology and Business Conference in June 2012. The goal of the presentation talks about using semantic technology to mitigate mobile platform constraints at runtime.
See more at www.blueslate.net
Converged Infrastructure as a Go Forward StrategyJames Charter
Converged Infrastructure as the Go Forward Strategy. Overview of CI versus traditional architecture of compute, storage, networking and the benefits of adopting CI. Presented at VMware Virtualization Forum December 2010, February 2011.
New applications are increasingly built on distributed service architectures, including mobile and cloud-based services which increase the complexity and interdependency of the systems to be tested.
Teams are forced to do performance test earlier in the application lifecycle, before the application is complete or stable with the increased pressure to operate more efficiently, produce valuable results more quickly, and operate with fewer resources.
Learn how Service Virtualization is a critical enabler to allow testers to get started with performance testing from the first sprint.
We will demonstrate how Service Virtualization is an easy-to-use solution that integrated with multiple performance testing tools, resulting in an almost seamless solution for performance engineering and validation.
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...Brian Pulito
Today real-time communications in mobile devices typically means general purpose, non-contextual audio and video calling. WebRTC promises more by embedding real-time with context. For mobile this means apps enabled with WebRTC capabilities. While mobile implementations of WebRTC are now available for iOS and Android, there are still many decisions that need to be made to take advantage of it. Things like what frameworks to use, native vs. hybrid, how to handle security and much more. This session will discuss going from concept to delivered application and what steps and decisions need to be made along the way.
In this short how-to presentation, I am celebrating Unix.
All other systems and even the interent would not have been possible but for ATT making Unix freely available.
What a collosal think tank Unix at ATT had. What a shame the short-sighted ATT CEO dismantled it. God Only knows what else those brilliant minds would have created for the world. Loss is profoundly ours. And we celebrate Unix.
R Programming language (S from ATT) does analytics. Here we show only data preparation and loading.
PSH Mobile Voice 2016 Personal Virtual Assistants Are Not Enough?Paul Heirendt
Personal Virtual Assistants Are Not Enough? NO, the reality is that they only have part of the story and very little of the context required to understand the intent and model the user's behavior
WebSphere Liberty Rtcomm: WebRTC Middleware for the EnterpriseBrian Pulito
In order to provide the type of services their customers crave, your clients need to be able to provide blazing fast communication capabilities and access important information in the blink of an eye. WebRTC (Web Real-Time Communications) allows for the creation of next-generation communication applications without the need for browser plugins. WebSphere Application Server Liberty Profile is changing the way people communicate by making it easy to provide web page context as part of real-time conversations. This webinar will cover all of the real-time communications features recently released in WebSphere Liberty, including the new Rtcomm feature for rapid development of WebRTC based applications, and the open-source Rtcomm client-side libraries. (link to webinar replay: http://www.websphereusergroup.org/khatch/go/gallery/item/1543395?type=video)
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...Brian Pulito
WebRTC is finally cracking the enterprise market. Maturing standards and wider platform adoption are helping WebRTC to find its way into mission critical enterprise applications. Whether it\'s financials like American Express or smaller businesses looking for innovative ways to engage their customers, WebRTC is changing the way business views real-time communications. Conversational media is Big Data to the enterprise and extracting every ounce of insight from every customer interaction requires middleware that plays well with existing Systems of Engagement. Issues like enterprise application integration, federation, analytics and their related security models bring with it requirements that must be well understood to succeed in this market. This session will explore what middleware means to WebRTC and what you need to make it work both in the cloud or on premise.
CoGs -- Cognitive Assistants for the WWW.
Next Generation tools for harnessing the internet.
Applications of Machine Learning, Cognitive Computing.
I am proposing a new type of browser and next gen httpd/web server, which will
integrate relevant data from multiple sources on its own and the user agent (browser)
will render what is most appropriate for the user, cognitively speaking.
Could Iot be WebRTC's greatest source of innovation? (The IIT RTC Conference ...Brian Pulito
Few technologies have the potential to benefit from IoT the way WebRTC can. In many ways, these technologies are a perfect match. IoT networks built on technologies such as MQTT are a perfect signaling platform for WebRTC and are enabling new ways to connect "things" together using real-time media. In this new world almost any event can trigger the flow of media between endpoints. Whether it be a social media event triggering a broadcasted phone call or a video analytics event triggering a surveillance camera connecting to a supervisor, IoT networks are becoming the integration point for the world. This session will explore several WebRTC related IoT use cases along with open source tools that are being used in production today to integrate WebRTC with everything from analytics, to Arduino devices, to social media, and everything in between.
Real-time Communications at Internet SpeedBrian Pulito
Keeping Current Seminar for University of Kentucky - Abstract: What if real-time communications was born on the web? Would we use context instead of telephone numbers to initiate real-time interactions? Would quality and ubiquity be less important than flexibility and differentiation? WebRTC is changing the way people communicate in real-time. Whether it be Google Hangouts or a web startup, WebRTC is free, simple and coming to a web page near you. This discussion will focus on this emerging HTML5 standard, providing insights into how developers and businesses are using WebRTC to drive innovation in their Systems of Engagement.
Intelligent Virtual Assistants, also known as Intelligent Digital Assistants, are capturing market share rapidly. As analytics and AI technologies scale, and as some standard models begin to emerge, business are starting to consider how to introduce these kinds of solutions into their customer experiences. This white paper, "Making Intelligent Virtual Assistants a Reality" attempts to demystify multiple aspects of the intelligent application ecosystem.
What kind of useful business problems can be solved by Virtual Assistants?
What are the technologies that are behind creating a Virtual Assistant, and how many new capabilities need to be integrated into the enterprise to build and deliver a Virtual Assistant?
What kind of content, knowledge representation, information architecture, assets and business processes are needed to deliver a Virtual Assistant experience?
What skills, techniques and expertise are needed of deliver a Virtual Assistant solution to the market?
Learn what is required to design and build an Intelligent Virtual Assistant, and how to deploy intelligent applications in your enterprise to achieve real business value.
“From Eliza to Siri and beyond: Promise and challenges of intelligent, langua...diannepatricia
“From Eliza to Siri and beyond: Promise and challenges of intelligent, language-controlled assistants/chatbots.“ - Alexander Braun, founder of Creative Construction Heroes presented as part of the Cognitive Systems Institute Speaker Series on Nov. 3, 2016.
This second machine age has seen the rise of artificial intelligence (AI), or “intelligence” that is not the result of
human cogitation. It is now ubiquitous in many commercial products, from search engines to virtual assistants. aI is the result of exponential growth in computing power, memory capacity, cloud computing, distributed and parallel processing, open-source solutions, and global connectivity of both people
and machines. The massive amounts and the speed at which structured and unstructured (e.g., text, audio, video, sensor) data is being generated has made a necessity of speedily processing and generating meaningful, actionable insights from it.
Discover the tech & digital trends to watch in 2017 based on our experience: AI & Machine Learning, Deep Learning, Cognitive Computing, Conversational Interfaces, Bots, Mixed Reality, Gesture-based controls, Omnichannel, Mobile Commerce, Mobile-only Customer Experience, Deep Linking, Video 360°, Real-time Fact Checking, System Integration, Digital Transformation and Experience Business.
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
Discover how to avoid common pitfalls when shifting to an event-driven architecture (EDA) in order to boost system recovery and scalability. We cover Kafka Schema Registry, in-broker transformations, event sourcing, and more.
This presentation discusses SQL Server 2008 Migration tools, planning and execution. You will learn about the SQL Server Featuer Pack, the SQL Server Migration Assistant, and Performance Benchmarks of SQL Server 2005 vs. 2008.
DesignMind is located in Emeryville, California.
www.designmind.com
21st Century Service Oriented ArchitectureBob Rhubart
Service Oriented Architecture has evolved from concept to reality in the last decade. The right methodology coupled with mature SOA technologies has helped customers demonstrate success in both innovation and ROI. In this session you will learn how Oracle SOA Suite’s orchestration, virtualization, and governance capabilities provide the infrastructure to run mission critical business and system applications. And we’ll take a special look at the convergence of SOA & BPM using Oracle’s Unified technology stack.
(As presented by Samrat Ray at Oracle Technology Network Architect Day in Chicago, October 24, 2011.)
Micro services - Practicalities & things to watch out forParthiban J
What is micro services and what it takes to build a micro services application. From discovering your services to some best practices that can be followed to avoid common pitfalls
The introduction covers the following
1. What are Microservices and why should be use this paradigm?
2. 12 factor apps and how Microservices make it easier to create them
3. Characteristics of Microservices
Note: Please download the slides to view animations.
Introduction to SQL Server Analysis services 2008Tobias Koprowski
This is my presentation from 17th Polish SQL server User Group Meeting in Wroclaw. It\'s first part of Quadrology Bussiness Intelligence for ITPros Cycle.
Java EE microservices architecture - evolving the monolithMarkus Eisele
With the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But some enterprises are now looking to bridge that gap by building microservices-based architectures on top of Java EE.
In this webcast, Red Hat Developer Advocate Markus Eisele explores the possibilities for enterprises that want to move ahead with this architecture. However, the issue is complex: Java EE wasn't built with the distributed application approach in mind, but rather as one monolithic server runtime or cluster hosting many different applications. If you're part of an enterprise development team investigating the use of microservices with Java EE, this webcast will guide you to answers for getting started.
Stay productive while slicing up the monolithMarkus Eisele
Microservices-based architectures are in vogue. Over the last couple of years, we have learned how thought leaders implement them, and it seems like every other week we hear about how containers and platform-as-a-service offerings make them ultimately happen.
Tech Talent Night Copenhagen 11/22/17
https://greenticket.dk/techtalentnightcph
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
Abstract:
This talk introduces definitions of system architecture and proposes a way to achieve "good enough" architecture covers project requirements
Andrei will show several cases from real projects, where wrong, missing or over-sophisticated architecture decisions really hurt the development teams:
Painful sharing: do shared modules increase reusability or will be the source of problems?
Non-extensible extensibility: too sophisticated configuration hurts
Over fine-grained: incorrect splitting to microservices can make life even harder as with monolith
Cargo cult: blindly following patterns and rules can produce an unmaintainable system
Freestyle architecture: what happens if teams completely ignore architecture
Improve with less intelligence: smart endpoint and dumb pipes
We are looking forward to meet many of you in person and have great discussions around this topic!
https://www.meetup.com/de-DE/meetup-group-tfyvuydp/
Boosting is an iterative Ensemble method to improve weak learners. GBM uses gradient descent strategy to boost performance. XGBoost is currently the most popular classifier.
Stacking is a different ensemble method where diverse classifiers are combined.
GD is a time honored numerical technique to find soultions to functions that do not have analytical solutions.
In this chapter we implement GD in R from scratch.
Instead of Tree or other weak classifiers we take NaiveBayes which is not necessarily a weak learner and evaluate what happens when Cross Validate a not so weak learner.
Augmented Cognition, toward cyborgs and the cognitive computing. Building Knowledge lattice from the ground up starting from No Free Lunch Theorem and Ockham's razor
Logistic Regresson is a bell weather binary classifier. This chapter shows how to use Logistic Regression. The separation boundary for Logistic is linear. Discriminative Classifier. Probabilistic Classifier.
Genetics and the study of human genome is fascinating and has the potential to alter our understanding going back or forward.
Genetics will play a significant role -- atleast as impactful as internet and its effect will be lasting as the wheel. Revolutionary changes are afoot and the world as we know it is over. Much of it is driven by technology. This is a very high level intro to basics of genetics. Lots of reading, consulting genetic experts.
Introduction to Data Analytics starting with
OLS.
This is the first of a series of essays. I will share essays on unsupervised learning, dimensionality reduction and anomaly/outlier detection.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
1. Reliable
Extensible
Engineering Maintainable
Solutions
Scalable
Raman Kannan
rk2153 AT gmail DOT com Design and Analysis 1
2. Design
• It is a creative process
• There is no best design – wicked science
• Important lessons learned
– Architecture is the key for operational stability
– Capturing the design intent is key – corporate
memory
– Building the right product is key for alignment
• Building “some product” right is irrelevant
– Simplicity always triumphs over complexity
rk2153 AT gmail DOT com Design and Analysis 2
3. Delay concrete decisions
• Abstract – Architecture
– Parts and their relationships
– Their interactions with the environment
(outside view)
• Refine, elaborate independent parts
• Design for abstract interaction
– Substitutionality principle -- Liskov
– Reduce rigid coupling between systems
rk2153 AT gmail DOT com Design and Analysis 3
4. Evolving an Equity Trading
Platform to other asset classes
rk2153 AT gmail DOT com Design and Analysis 4
5. Trading Platform
http://assetcorporation.net/existing/trading_platform.html
Implementing business functions independently and integrating
them fosters engineering efficiency and software reuse.
Allows component wise replacement and incremental
improvements.
rk2153 AT gmail DOT com Design and Analysis 5
6. Design for Change!
• 1996/1997 predates SOA or JBOSS or SOAP
• Should this system be migrated to newer
frameworks?
– The current solution is factored well but
– Lack of centralized approach results in duplication
» Stop/start, error/status monitor, logging, concurrency,
recovery, component administration, resource pooling
– Each component interacts with DB directly
» Structure of data is not standardized
» Duplication and multiple database connections
– Not easy to combine/replace existing
» introduce new (Position, Risk, Revenue,Breaks)
» or external services (EMS, ALGO service, etc)
SOA can offer relief.
rk2153 AT gmail DOT com Design and Analysis 6
7. New Platform
• Get rid of application specific data structures
– XML based Order, Trade, Position,Task, Confirms, Reports,
Permissions, SecurityTypes
– Platform NOW is a collection of
• XML generators(sources) and processors(sinks)
• Asset classes can be introduced
– Each with their own events, analytics and lifecycles
– Introducing SWAP novation need not and will not affect unrelated
• New attributes may be added (taker/provider rebate for trade)
• Persistent Store can be a special processor
– All other components are db independent
– DB can be replaced as needed
• Sources and Sink may transform using XSL
Platform is now data centric and SOAP/XML is ideal.
rk2153 AT gmail DOT com Design and Analysis 7
8. Implementation aka Observable
• Choose a bus architecture for IPC publishers
– avoid direct communication
– Pick a messaging toolkit (cots or pd)
• Implement service management
– Service definition language (WSDL)
postEvent
– Service Catalog – dynamic
– Discovery and routing services
• Processing Standard EventDistribution
– Choose Stateless protocol notifyEvent
– Data transformation services (DTS)
• Ship an Order DOM return OATS
DOM
• Receiver should make it right using
DTS
– Avoid data coupling Subscribers
Subscribers
aka Observers
rk2153 AT gmail DOT com Design and Analysis 8
9. Plausible State
Blotters Analytic MarketData
SvcCatalog Blotters Engines MiscSvc
XML XML XML XML
JBOSS/ESPER/JMS/XML ESB/Mule
XML XML XML XML
XML2SQL XML2FIX TrdSupport Portals
SQL
ExtSvcGwy Performance Compliance
ExtSvcGwy
Algo/Programs Customers
DB Farm
rk2153 AT gmail DOT com Design and Analysis 9
10. Steps
• Determine XML Schema
• Persistence Process
• Service Definition, Discovery, Routing
• Transformation Services
• Monitoring and Instrumentation
• Error Recovery
• Stress test for performance, throughput
The initial state was already factored to evolve the design.
rk2153 AT gmail DOT com Design and Analysis 10
11. Extensible
Blotter Server/OMS Execution Venue Fix Customers
Risk Management
Customer Svc
Position Management
Reporting
Portfolio Trading Support System
Decision Smart Router
Support
Firm DB Matching Engine
MDF Algos
Tick db
Perf Trackers
Transaction db
Liquidity Detection
History/ SecMaster
rk2153 AT gmail DOT com Design and Analysis 11
12. What if?
• Applications are in use
– Factor reusable methods and abstractions
• Capture all the flows
• Compile Data Dictionary
• Define XML to capture all the data, given DD
– Select one application
• Recast using the SOA framework, DD and XML Schema
• Test and validate for performance
• Introduce other applications one by one
• When satisfactory – retire old system
• Requires an ops team and engineering team
rk2153 AT gmail DOT com Design and Analysis 12
13. Factoring Application Suite
• Select one assetclass
– Categorize all the required business functions
– Define generic application interface
• nav(runDate)
• var(runDate,varPolicy)
• update(old,current)
• evolve(from,to)
– Define a comprehensive application framework
– Define concrete implementing the application interface
– Register concrete with the application framework
– Test for all the business functions
• Implement other applications and repeat
– Architecture will evolve iteratively
rk2153 AT gmail DOT com Design and Analysis 13
14. Abstraction Levels
Highest ROI
Interaction between Services
Services Runtime management
Service level error recovery
Platform independent
Components Unlimited extent
Framework
Interaction between classes
Limited extent
Patterns
Classes
Compilation/Library Deployment
Programming Error Management
Data Structures + Libraries Restricted extent (colocated libraries)
Layering fosters engineering discipline and prevents hacking and kludges.
rk2153 AT gmail DOT com Design and Analysis 14
15. What follows
• Separation of concerns
– Illustration
• Solving Complex Problems
– Divide and conquer
– Reuse at the highest level
• Generalize to capture abstract patterns
– Usable in similar contexts
rk2153 AT gmail DOT com Design and Analysis 15
17. Higher levels of abstraction
See hidden patterns
Strip problem specific roles
See the parts at a higher level
A solution to a particular problem
Can now solve larger set of problems
Recipe:
Solve the problem
Study the solution
Refine by
making your design more abstract
Streamlining communication paths
Ordering and restricting (layering)
Any unsolvable problem can be solved at a different level of abstraction
Andrew Konig – Solve by indirection.
Einstein – A problem cannot be solved with the mindset that created the problem.
Different mindset, open mindset, higher level issues, defer details as much
rk2153 AT gmail DOT com Design and Analysis 17
18. Design Intent
• Capturing design intent in a durable medium is
important
• Engineered buildings have buckled, when
– Purchasing manager saved a few $$$ buying smaller
beams and soldering them to make a big beam
– While the engineer designed it with a single long
beam to distribute the load evenly across
– No short cuts – pay up and do it right
– When in doubt -- ask for the design rationale
• Make no assumptions
Don’t run on assumptions – review, check and confirm – frequently
learn from mistakes and experts – don’t repeat
rk2153 AT gmail DOT com Design and Analysis 18
19. Reduce Still Further
A General Purpose Problem Solving Method.
http://bluehawk.monmouth.edu/monmouth/academic/dna/weti96ff.htm
rk2153 AT gmail DOT com Design and Analysis 19
20. • Pondering the internals, an example
• classical design methods are relevant
– OOAD
– Data centric
rk2153 AT gmail DOT com Design and Analysis 20
21. Simple Exercise:Class Design
Assume you wish to build forms to collect information from users
and store them in a relational database.
One can decide to a build A form – one at a time
Or you can solve the form building in total – for a wide variety of forms.
There is a trade off here…if all we wanted to do is build ONE form..just do it.
However, if there are an unknown number forms and subject to frequent changes
then solving for a form is inefficient.
Ask what if questions:
what if I can build one form, such that it will aid in the creation of all other forms
-- resulted in widget libraries
But widget libraries do not become forms overnight…someone has to identify the
widget that most suitable for eliciting that piece of information and
Position those widgets in a logical manner to make up the form
rk2153 AT gmail DOT com Design and Analysis 21
22. Recast the problem statement
a FORM is an ordered collection of suitable display widget,
positioned on the form at particular location within the
form.(a model – description of )
Note there is no mention of Name, Age, Color – abstract
not particular
Given the chosen widgets and their positions on the form, a
FORM can be painted on the screen.(a generator)
Separation of concerns – description of the form separated
from rendering the form on a screen
rk2153 AT gmail DOT com Design and Analysis 22
23. Divide & Conquer
There are forms (container) and there are fields (contained).
Form Universe
Maker Application Maker Operations (CRUD) Window
Checker Application Checker operations (accept/reject) Window
Browser Application Browser Operations (view only) Window
Some forms allow users to create/read/update/delete data. (maker)
Some forms allow users to verify (and accept) captured data. (checker)
Some forms allow users to view data without the ability to modify. (Browser)
A form at runtime is rendered in its own window.
rk2153 AT gmail DOT com Design and Analysis 23
24. Analysis by refinement:Content Universe
• What is a form
– Labels, aka names
• constant values hint about the values to expected
– Values, aka entryfield
• User enters a value from an infinite set of values
– Free form
– Some may be numbers only, text, or combination
• User selects from a finite set of values
– One of two values – special case
– One of a dozen values
• User selects from a growing list of values
– Related to a value already entered in the same form or another
form
– Position and order of these labels/values
A form = one or more (labels, entryfields, position and order)
rk2153 AT gmail DOT com Design and Analysis 24
25. What all can the user enter?
Item Domain Description Comment
UserEntered TextEntry validate for alphabets, textField Name
UserEntered Numerals validate for numbers only, textField Age, Salary
UserEntered Masked private not visible, textField password
UserEntered AnyEntry Any alphabet or any number, textField Freeform
Prose TextBox Text with option to enter a file Freeform or a FileBrowser
Boolean one of two values Close Domain RadioButton Gender
Images,videos DialogBox To enter URL or select a file FileBrowser
Shape,FamilyRelationship (mother/father, son,
StaticList categories Closed Domain PopupMenu daughter)
Customer Name (Open grows with time), Departments
DynamicList categories Closed or Open Domain PopupMenu closed
Closed – Cannot make up a new country
Referential RestrictedCategories like in the case of customer name Countries, Currencies
The original solution in 1992 did not include Prose/Image or videos.
There were no URLS then.
By adding new renderers and allowing more Item types, entire framework could
be used without much effort. Solutions can evolve if engineered.
rk2153 AT gmail DOT com Design and Analysis 25
26. Analysis to Design
• So far in the analysis we have identified
only the what not how…
• In the design phase how will these come
together (collaborate and coordinate)
• In the design phase ideas foreign to the
domain have to be introduced ( interpretor,
repository, libraries)
Object Oriented approach maintains the continuity from requirement to solution.
rk2153 AT gmail DOT com Design and Analysis 26
27. It aint easy!
Design for change, think long,
think hard.
We need:
A repository
An interpretor
A widget class library
A database library (two tier) or
gateway (three tier)
System Services –
authentication, process etc
http://bluehawk.monmouth.edu/monmouth/academic/dna/tigadbj4.htm
rk2153 AT gmail DOT com Design and Analysis 27
28. Summary
• Be Abstract initially Architecture
– Understand the flow, minimize coupling, streamline flow
– Design for change and diagnostics
• Then, study what you are trying to solve -- analysis
• Then, on how to do it -- design
– Keep analysis separate from design
• Object Oriented can help maintaining a simple language for the
entire life cycle.
– Eliminate translating between what was needed to how it was
realized in the program – OO allows you to speak the same
language for the SDLC duration.
Internal Structure (OOAD), external Structure(SOA)
rk2153 AT gmail DOT com Design and Analysis 28