Pages:     | 1 |   ...   | 35 | 36 || 38 | 39 |   ...   | 54 |

So the repeated bringing in of one and the same path to graph G (f) is impossible. And graph G(f) is a tree in l l which the root is a node, corresponding to the main entity of form.

Attributes Reflection in Compound Forms Including of parent node e Vl into graph G(f) of any node f Vpr is a reflection of the attributes of the logical l model on the controls of the presentation level. Deleting node e from graph G(f) is a deleting of corresponding l controls. Node f of graph G includes a set of controls AttrCtrl(f ) = {ac1,...,acm },m N, corresponding to pr attributes of entities of the set V(f). So, l AttrCtrl(f ) = AttrCtrl(f,e).

eVl (f ) When adding new parent node ep from relation (ep,e ), where e Vl (f ), to set V(f):

l 1. The element corresponding to parent relation (ep,e ), i.e. ac a Attr(e ) : rel(a) = (ep,e ) is deleted from the set of controls.

2. We add controls ac into the set of controls of node f, corresponding to all non-key attributes a of entity e, i.e.

p a Attr(e ) :a key(ep ) into the set AttrCtrl(f) we put ac a.

When deleting parent node ep, taking part in relation (ep,e ) El (f ) from the set V(f):

l 1. We delete all controls, corresponding to entity ep from the set of controls.

2. Into set AttrCtrl(f) we add ac a : rel(a) = (ep,e ).

Fourth International Conference I.TECH 2006 Entity Tree A tree is a building of hierarchy on the set of entities and relations between them. Together with the set of forms the set of tree nodes must provide access to any entity. The described structure is a tree only on a users screen (its name comes from here). From the point of view of the structure it is an oriented graph GT = (VT,ET ), maybe with cycles. The set of nodes VT = (nd1,nd2,...,ndn ) includes two types of nodes (two subsets). The first subset VTg VT consists of grouping nodes, the second subset VTo VT has got object nodes. Any object node corresponds to the entity of the logical model and so, the form of the presentation level. Correspondence of object nodes and nodes of the logical model graph can be given as function Ent :VTo Vl. Then (nd VTo )(e Vl : Ent(nd) = e f Vpr : ME(f ) = e). In that way, form object node nd we can draw arc (nd, f) to corresponding node-form f. The set of such arcs forms the additional set (let us call it E ), connecting ext two graphs G and G. Nodes of the logical model do not correspond to nodes of the entity VTg. Such nodes are pr T only created for convenient reflection of the information on the users screen. There are arcs between nodes of the set V. Arcs can exist as between nodes of one subset (VTo VTg ), as also between nodes of different T subsets. There is one group node in the tree from which the tree scanning starts. Such node can be marked as a root. The root node does not have incoming arcs. Any node of the set V is reachable from the root, i.e. between T any node of the set V and root node there is a path.

T The path between two object nodes can correspond to subgraph of the logical model which includes some sequence of arcs and nodes, which are between entities, which are reflected by two viewed nodes.

For example, in Figure 3, graph of the logical model G can be corresponded to the graph of the object tree G. In l T the tree graph object nodes e, e, e are named corresponding to the names of nodes-entities of graph G, which 1 2 3 l they correspond to. Arc (e1,e3 )GT is corresponded to the path e1,r14,e4,r43,e3, arc (e2,e2) to the path e2,r22,e2, arc (e2,e3 ) to the path e2,r23,e3.

root e r r e e r e 43 e r 4 14 e G e l G T Figure 3. Example of entity tree Let us view two object nodes nd,nd VTo : Ent(nd) = e,Ent(nd ) = e, between which there is a path nd1,(nd1,nd2),nd2,(nd2,nd3),...,(ndn-1,ndn ),ndn,nd1 = nd,ndn = nd,nN. This path is corresponded to the path of the logical model graph e1,(e1,e2 ),e2,(e2,e3 ),...,(em-1,em ),em,e1 = e,em = e,m N.

Every node in graph G can be reachable from the root by different paths, and each of these paths can be T concerned with the path in the logical model graph. While building the tree on the users screen, i.e. during data loading, only important in this context relations are considered. While building a tree part of the ways can be reflected on the users screen and the other part serve for assignment of additional dependence. Let us say that additional ways of the logical model connect with the way of graph G, consisting from one arc. For unification of T Software Engineering the ways assignment we can also take that visual paths in graph G do not have corresponding paths in the T logical model graph and all entities relations specify by non-visual additional connections.

Let us make it clear on the example. There is a fragment of graph G, shown in Figure 4. Here while building the T branch which includes nodes root, nd, nd, nd, for loading nodes of type nd relations (nd3,nd2) and 1 2 3 (nd3,nd1) are used, but while loading the branch which goes over nodes root, nd, nd, nd, nd, relations 4 5 2 (nd2,nd5) and (nd2,nd4 ) are used, while loading nodes of type nd and the relation (nd3,nd2) while loading nodes of type nd.

root visual ways nd additional ways nd nd nd nd Figure 4. Paths assignment in the objects tree In such a way, a tree is a kind of visual presentation of entities connections and it reflects the view of the end user on the interconnection of the objects of data domain (or vice versa on the absence of the connection between some entities).

At last we get extended graph of the presentation model Gpr (Vpr the set of its nodes, Epr the set of arcs), consisting of nodes and arcs of graphs G and G ; besides, this graph includes the set of arcs between object pr T tree nodes and nodes-forms:

Gpr = (Vpr,Epr ), where Vpr = Vpr VT, Epr = Epr ET Eext.

Conclusion This work describes the base model of user interface of application, including objects of user interface and specifying interconnection between them. Based on described operations with graph of the presentation model there have been worked out additional algorithms that are not described in the work.

In order to realize suggested above graph model of user interface we can offer the approach of CASE-technology METAS, including in itself tools for automation of working out large scale IS, based on using multilevel structure of dynamically changing metadata. Case-tools contain the set of program components, processing metadata of different levels and building on this base application, which has the meanings of interface designing and graphic interface of the end user of IS. Program components, realizing Windows-interface of applications, are built based on the present graph and they use algorithms suggested above.

Authors Information Elena Kudelko Perm State University, Department of Computer Science, Assistant; 15, Bukirev St., Perm, 614990, Russia; e-mail: kudelko_elena@mail.ru Fourth International Conference I.TECH 2006 IMPLEMENTING AJAX BASED SPREADSHEET ENGINE WITH RELATIONAL BACK-ENDIvo Marinchev Abstract: In this paper we represent our implementation of a web based spreadsheet engine that uses state-ofthe-art technologies for development of interactive server-centric applications AJAX and web services. Initially an overview of web application technologies and spreadsheet-centric application development is presented. Then a general architecture of a web based spreadsheet engine is discussed. Finally we introduce one concrete implementation of this architecture that is suitable for small and middle-size deployment scenarios.

Keywords: spreadsheet engine, AJAX, web applications, web services, rich-clients, web 2.0.

Introduction Recently, there is an obvious tendency of moving more and more applications to the web based technologies. As a result the paradigm of building classical desktop applications turns into the paradigm of building web-based applications. New applications are projected from the very beginning as web applications and many old ones are re-implemented or extended to web-based analogues. In reality web applications are actually server-centric applications that can be started and run through regular web browser. A distinguishing feature of the web applications is that significant parts of their code is located and executes on remote servers (or cluster of servers) and only user interface related components are transferred through the network to the users location (system) and executed there.

The first distributed applications with centralized core application logic (business logic) were rich-client applications. They require more sophisticated and responsive user interface than what HTML, CSS, and JavaScript can offer at that time and run on the users computers communicating with a business logic that is physically located on the centralized servers. Rich client applications and technologies appear about 10 years ago but could not become widespread. They remain in use mainly in intranet environment inside the organizations or shared between affiliate organizations. Their failure to become widespread was due to many factors some of which are:

they require the users to install additional software on their systems;

security concerns;

not having enough support from big application vendors;

high price tag.

The most prominent technologies in this area are Microsofts ActiveX, Java Web Start (JWS), Eclipse Rich Client Platform (Eclipse RCP), and Macromedia Flex.

Recently widespread adoption of web applications became feasible with the introduction of several key technologies in practically all of the modern web browsers - Internet Explorer, Firefox, Mozilla, Opera, Safari, and Konqueror. These technologies are CSS [CSS1, CSS2], JavaScript [JavaScript], DOM [DOM] and DHTML (dynamic screen re-flow). Despite most of them were available even 6 or 7 years ago, the biggest boost started just recently with the widespread adoption of so named XMLHttpRequest [AJAX] object. It allows web pages (utilizing JavaScript) to perform asynchronous request to their originating server and fetch updated data from it.

The research has been partially supported by Technologies of the Information Society for Knowledge Processing and Management - IIT-BAS Research Project No. 010061.

Software Engineering On the next step these data are used to update part of the web page information in timely and responsive manner without requiring page reloads. As the XMLHttpRequest object has support for transferring data in the XML format (presentation/view neutral encoding) the corresponding technology was named AJAX [AJAX] (Asynchronous JavaScript And XML). Hence it becomes possible to develop web applications that look and feel in a way very similar to the regular desktop ones, providing the user with similar usage experience and capabilities. Keeping the business logic on the centralized servers allows the highest level of security, easier management, support, maintenance, and upgrades. New schemes for application distribution, delivery and usage have become feasible pay-per-use, application service providers, click-and-run (no installation is required), application delivered as a service, etc.

The first widespread web applications were Google Mail (www.gmail.com) and Flickr (www.flickr.com). Other more recent and complex web applications are Writely (www.writely.com) word processing application (since March 2006 owned by Google), web calendar applications - 30 boxes (www.30boxes.com), CalendarHub (www.calen darhub.com), and many others. In the field of web based spreadsheets applications the key players are NumSum (www.numsum.com), and iRows (www.irows.com), and open source applications TrimSpreadsheet (http://trimpath.com /project/wiki/TrimSpreadsheet), WikiCalc (http://www.softwaregarden.com/wkcalpha). Unlike the rest of the web applications, at the moment of this writing (April 2006), web spreadsheets are not feature complete, but built with specific purposes in mind, and non-customizable. Open source ones are mostly unusable and are actually just a proof of concept than real applications.

Spreadsheet-Centric Application Development (SCAD) SCAD is a software development methodology that uses the spreadsheet component as the primary user interface for the application. The following is a list of key features (presented in no particular order) of SCAD:

Rapid Application Development - the spreadsheet engines are extremely rich in functionality. Todays SCAD components provide functionality on the par with the best off the shelf spreadsheet applications such as Excel. This provides for a vast array of features to tap into and use within the SCAD software.

Excel-Compatibility because of the dominance of Microsoft Office in todays marketplace, spreadsheet engines always provide some degree of compatibility with Excel. This feature provides a powerful and easy way to use Excel as design tool for initial development of the application or for easy transition from legacy Excel based applications to their web based analogues.

Calculation Engine - the vast array of calculation functions that exist within the spreadsheet engine provide an extremely powerful tool to create a robust and reliable calculation engine that churns through complex algorithms effectively and expeditiously.

Segmented Programmability - it is not only entirely possible but also feasible to segment the spreadsheet development from control coding and assign them to professionals with varying degrees of expertise. In the case of the former, the spreadsheet professional must be proficient in design and formulation of the core spreadsheet files while the latter must have command of the native language used to control and customize the SCAD environment.

Cost-Efficiency - spreadsheet development generally requires less time and expertise and therefore it is more cost-efficient than control coding.

Familiar Look and Feel - the spreadsheet interface is one of the most familiar if not the most familiar look and feel in the computing arena today. Developing a user interface based on the spreadsheet grid provides an additional level of comfort to the users and positively impacts their introduction into the SCAD software.

Pages:     | 1 |   ...   | 35 | 36 || 38 | 39 |   ...   | 54 |

2011 www.dissers.ru -

, .
, , , , 1-2 .