You are on page 1of 7

An approach for designing and developing Enterprise Applications

Introduction We propose to consider an approach designed to implement a sufficiently broad class of business applications, which we define as Enterprise Applications, focusing primarily on the financial sphere. Their special feature lies in the ability to work 24x7without downtime (as opposed to Web applications running on the model of Request/Response). These applications have always been requested to meet strict requirements both in terms of performance and resource usage, reliability, flexibility and scalabilityas well as in terms of development costs and, last but not least, to support and further adaption. As an example we wish to focus on theForEx Trading System(that has been functioning for over 3 years now) and the closely associated Binary Options. However,from the subsequent experience gained, we affirm its utmost importancein the development of other similar types of applications (for example, News Trading implemented and launched in 4-5 days)
Architecturally speaking, ForEx Trading can be represented in the form of two server applications, Quotes Server and Trading Server, operating continuously 24x7, rather than using Web requests, ensuring the proper logic of the Trading process (receiving feeds from chosen providers: Reuters, Saxo etc; creating Trading Quotes from these feeds and their subsequent transferring to the Trading Server). The latter provides us with the opportunity to Open and Close deals bound to specific business rules in accordance to the constantly obtained Quotes / Rates). Furthermore,the system provides us with the opportunity to receive and process different types of client requests for UI, (both web requests and queries from mobile devices). In general, these are the same requests used for opening or closing of the Deals, its modifications, etc. In addition, there are also requestsfrom the Monitoring Systemexisting only in the frame of Business Activity Monitoring [BAM]. We shall not elaborate on those now except by noting that quality monitoring and control requires very specific information which exists only in executable servers / applications at a given time (Not abstract information). The monitoring system is also a part of the developed infrastructure Application Framework [AppFramework]

Let us start byformulating the problems related to the development of such applications

as we see them.

1.The lack ofIntegrityin the approaches and means used for the development of flexible, reliable and scalable Enterprise Applications. This abovementioned problem is about to get worse with the upcoming transition to cloud-based infrastructures. We currently possess a wide arrayof programming languages and technologies that are used for the creation of the Enterprise Applications. However, the entire process is severely impeded by the need to bridge the gap that exists between different types of software as well as different types of programming schools and
- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

individual skills. In other words we must constantly strive to develop a solution that will assist us in avoiding the redundancy of entanglement and the common layer-cake code programmingthat often has to do with this kind of work. By entanglement we mean the constant need to develop different types and often excessive codes (as far as the business task is concerned) designed to perform the Same Functionsusing different technologies.The solution we propose introduces a different approach which emphasizes the integration of information rather than the integration of technologies.
An example from our own experience, having constructeda Trading Quote interaction via the Messaging System, we may face the need to get data from the TCP protocol or the DB. Can this be done knowing that we should get, essentially, the same information without changing the application we use? Unfortunately the answer is No!We will be forced to change our programs due to the fact that the abstraction that existsin all programming languages is in fact too physical, while we should possess a more business-oriented set of abstractions.

As far as the businessitself and as a matter of fact common sense is concerned, the way we receive the data should not be of any interest to them. That is why the question we must ask ourselves is How and guided bywhich principles we can develop applications that are completely indifferent to such changes, without the need to engage in a whole new development cycle every time. 2. These EnterpriseApplications are implemented in practice, usually as Monolithic Applications with a fairly weak configurability (usually - a simple parameterization) and the services (Web Services) are often used more as a standardized Http / Xml protocols and mainly for UI interactions. It is clear that any architectural changes are in fact a problem.
For example, let s examine a well performing ForEx Trading application that is being used by an increasing number of partners and/or clients (So help us God!) when at some point we ll have to scale our application. Howcan this be done? This is not a Web application such as a Request / Response, which could have been scaled 'per -request' due to its homogeneity via the redirection of the requests. Such a scenario will require substantial re-development, testing and approbation costs, bringing up yet again the same cardinal question Howcan this be done?

The thing developers need the most in our opinion is both the methodology and the means to buildTradingand other similar Enterprise systemsas genuine services that are flexibly configurable and capable in their own composition to realize these applications . Furthermore, in our view, such service architectural approaches and solutions should be come before the developmentespecially considering the prospect of their use in cloud environments. It is worth emphasizing that
when thinking about the Cloud we imagine Cloud Computing rather than Cloud Storage .In other words we envision the virtualization ofmultiple instances of the applicationusing private cloud storages.

- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

3. Such applications require an efficient and competent control of parallel processesas well as of the information streams.Clearly this control shouldn t be Hard-coded but rather use a simple and intuitive configuration. To conclude, we must also address the issue of serverclustering which will ensure No Downtime as well as other challenges. Howcan these issues are addressed without having to rely on any individual qualifications and so on. All of these issues are indeed of technical nature however completely ignoring themmay result in severe business related problems.

4.Further, we must ask ourselves Howwe can provide our Web and/or mobile components with all necessary
services while at the same time excluding them from any Server-Side Implementations. This can be done due to the fact that the services will be and should be provided by the Framework itself. The standardization of UI based developments (based on HTML5/CSS3 and JavaScript) allows us to eliminate themix between Client Oriented and Server Oriented solutions and technologies, without damaging their potential usefulness for other types of applications (such as Web).This way, the emphasis shifts on to the side of UI Client Development and the Client's direct logic , which also makes sense in terms of organization, as well as in future perspectives.It is worth noting that we also offer Data Services (Data Server) which may not be linked directly with the online executed applications (I.e. Back Office). In other words we wish to paraphrase a well kno wn saying: The Network isn't about computers It s about Services.

It is in fact the question of How can this be done? presented above, that will be the focal point of our approach, which embodies our vision of 'How would we like to develop and exe cute our business applications?" And the answer is our very own developed Application Framework (AppFramework) infrastructure which is composed of the following: A. Domain-specific AppFramework - The Architecture Framework is divided to several levels: Infrastructure, System Applications and the actual level of Applications realized by the developers.The last one relies on the System Applications and later on both the Application and the System Application rely on the Infrastructure, thus providing the system withgreater flexibility and independence of various levels and components. Furthermore, the Framework encapsulates and supports many important key aspects, with aspects being defined as the operating characteristics of the components, monitoring tracing, and much more (metaapplicative / application properties). In general, we believe that this solution can serve as an appropriate alternative for the existing chaos which requires the use and integration of different technologies . We offer an "All in One" answer that consolidates
- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

the target development and RunTime environment as well as significantly facilitates the development and practical implementation of the respective Enterprise Applications.
B. AppFrameworkThat is in fact aS ervice-Oriented Architectureof the developed Applications .This concept is based upon models which are composed of Services, Activities, Structures and Data Streams with their own wide array ofconfigurations. From now on Configuration is to be understood as the definition of executable services and their components , rather than the extended parameterization of the implemented programs.In other words, you define What and you define How and we make it happen .

(It should be noted that one of the latest developments of Google / Android has introduced an identical model of Service / Activities for Android applications which seems to be quite symptomatic.)
Instead of monolithic applications, we offer several Application models designed to implement the services and their compositions. The Service is actually a composite of Activities when at the same time other Servicescan also be presented as Activities. The original model - Activityserves as the basic class for the implementation of our business logic and the services discussed below,while at the same time being one of their configurable components. In other words, theServices proposed below are in fact the same Activities with a predeterminedbusiness logic. Let us examine them in greater detail. One of the Service models is the"Applet Service" whose Activities seek, receive, analyze and process the data. At that point, the results arebeing passedon to the service which in turn, processes them and produces the final results . The model we've just described is well suited for the development of the Quotes Server (more precisely, Quotes Service), whose result is our "Trading Quotes". An additional model is the one called "Broker Service".It receives our Trading Quotes, subsequently distributing them to their respective Activities. The ForEx Tradingmodel as well as other similar applications that receive Trading Quotes (executing its own business logic) are in fact a case in point. Finally, the third basic model the "Server Service"which receives data, processes it and returns a result. This model has something of the composition of the f ormer presented ones. However, it should be presented separately serving as the basis for complex event processing (CEP) as well as any type of requests.

We can easily notice that all of the abovemodels are determined by the direction of the information flows as follows: (In Out): Activities Service, Service Activities and Service Activities Service. It is also clear that one way or another, these models and / or logic will be implemented via the traditional approaches. Howeverwe offer a powerful Templates of Services and Activities fully supported by our infrastructure, leaving application developers with unique algorithms of their own business applications. The actual execution and control of the services becomes one of the main tasks of the AppFramework.
- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

For the successful development of the Applications we offer services, objects templates and interfaces, as well as a number of highly useful and effective Helper Classes , supported by the system (these rather important and interesting details, we are nevertheless forcedto omit). We shall only note that the models do not support only the Data-Driven paradigm but also the Event-Driven one.

C.AppFramework -a solution that allows us to neutralize or eliminate (hide) the many necessary steps in our
programs, steps we are forced to execute in addition to the application's business logic due to the specifics related to the programming itself . Their core being the Data Models which are used in addition to the services offered above.

The way we hold or obtain data (artifacts), and the way we want to obtain, see and handle them in applications (information) is not at all the same. Thus, one of the biggest challenges lying before us would be the transformation of the artifacts into information related objects (in our case - UserEntity and UserView). Let us divide this challenge into two separate parts: Models concerningthe presentation of our objects in programs and the CommunicationsModels. We offer the representation of any kind of objects based on UserEntity - a well optimizedtype with various functionalities such as 'lightweight' locking, object mapping and other useful basic functions. The use of such a functionality-oriented base type also for the adjunct types, allows the developers to focus solely on the implementation of their own business logic, and not only as far as ForEx entities and types are concerned. The following level The content of the data service based upon the UserView. This is in fact the information environment (and the object model Activities) through and in which our business logic (represented by a certain Activity) is immersed and executed. It is also the same
luster of stored/received artifacts and

application related conceptual notions referred to above. It is designated in order to return the application its genuine semantics. (Unfortunately, we are forced to omit a more detailed analysis of the complexity and technological specifics involved)

We shall present the Communications model in a schematic form as follows: ByteStream DataStream UserEntity UserView. We get a stream of bytes (ByteStream), parse it and select

the required data (DataStream)subsequently storing them in our UserEntity/UserView. The same process is to be carried out(in the opposite direction ) in order to print and/or save data)
Formally, this is a known "driver and/or technologiesprovide us adapter with a mapping"procedure.However, not all of the proposed products sufficient completeness as well as the unification of

approaches(theinterchangeability of the Trading Quotes is a case in point).

- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

Despite its apparent simplicity - Data Managementremains one of the most difficult component s of the AppFramework. This is due to the fact it requires the consideration and implementation of both different aspects of adapters, devices and channels, as well as therequirements we have in order to work with the data.

Most importantly - the use of the models allows us to obtain maximum independence of our programs and / or services from the sources and / or data channels .In other words, our system can in fact receive Trading Quotes via the TCP channel, the Messaging System, from a file or a DB. These data can be organized in an arbitrary manner and be submitted in any format. The only thing we do is configure the data flows without changing the logic and implementation of the business applications.

And that's exactly why we offer the Communications and Representation models making their configuration available in our Enterprise Applications . Thus, the abovementioned material describes only the most important (Model related)side of our approach to Application development in an AppFramework environment. The proposed model s solve the problem concerning the development of business applications both in terms of 1) Service ApplicationArchitecture in general, and 2) Data Interaction being one of the most difficult sides having to do with the development of Server-Centric Enterprise Applications. The usefulness of any working models, and especially in programming, seems fairly obvious and does not require additional clarifications. One of the most interesting areas for further development would be the introduction (or more accurately the enhancement) of semantics in both models, business applications, and as a consequence - in the cloud infrastructure services. Many things have been left outside this documentary framework, for example, the dynamic definition and interpretation of business rules or event -objects behavior of applications. The questions related to the implementation of the system have also been left out. 5. We now turn to our specific proposal. Having a strong, effective and proven system of design and execution of Enterprise Applications we consider the creation of aForEx Services Platform for the [Virtual] Private Clouds to be of essence and of utmost importance. It is clear that we cannot and will not anticipate all the needs of our customers, but we can provide (and sell) them all the necessary services for the proper execution of their ForEx applications.Such services would be for
- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.

example providing Quotes from selected providers, opening / closin g of transactions and their trade with selected financial partners, while privately interacting with their data warehouses. This privacy issue has been in fact one of the most disputed aspects of the inevitable upcoming transition to cloud-based environments. Experience shows us that many customers are willing to pay a great deal for such services (same as for executive business logic), but aren't always willing to give up their confidential data, passing it on to someone else's possession. This is certainly our most significant competitive advantagemaking our approach different and better than the one dominating the developers market The ForEx Software as a Service (SaaS). Their approach provides the

users with a final solution presented to them as a Service. We on the other hand provide our users with dynamic and reliable Business-Oriented ForEx Services that allow them to solve their own individual tasks. Our main target audience would be small and medium-sized financial institutions wishing to enter the market ForEx without yet possessing adequate human and financial resources for such a development. It goes without saying that the range of services can be greatly expanded. 6. Other potential areas. Close to the ForEx Trading are the SecuritiesTrading Systempossessing its own logic, but based on the same conceptual and technological models. Our experience has also showed us that a truly wide and extensive array of additional applications may surely benefit from such a cost-effective approach in terms of their server components. The Apple/iCloud or the ChromeOs/ Cloud, as well as other Desktop and Web applications are a case in point. Our end-users in this case could also be any companies wishing to develop and use such Enterprise Applications in their business, usingour reliable Framework's SDK. 7. Conclusion. We have summarized our approach and solutions used to implement ForEx Trading and the closely associated Binary Options. We firmly believe that the solution presented above would make a great impact on the way companies develop Enterprise Applications and we welcome you to join us on this endeavour and journey. Please feel free to contact me for any of your questions: Anatoly Gankin: cell: + 972 - (54) -4886-797 e-mail: agankin@gmail.com

- All Rights Reserved Anatoly Gankin & A.G. Tailor Made Solutions LTD 2006-2011. The contents of this document cannot be duplicated, copied, reproduced and otherwise without an explicit written permission.