A survey report on software watermarking technique with graph coloring approach
Abstract
In the recent times the main aspect of any service provider or any product provider is the security. Everybody is very much conscious about the security of contents because in this internet savvy world, hacking information is nowadays just a matter of joke to the professional hackers. Nowadays digitization of information is a very important because digital can be used very efficiently and it can be sent through internet in a few seconds to anywhere of this world. So, there is a need to protect the digital content. Software watermarking is a unique process that gives a digital content protection from the hackers. Several processes are invented to make a digital content software watermarked. This survey report covers the prestigious work that has been done on software watermarking using graph-coloring approach.
1. Introduction
This article surveys the software watermarking [1] technique with graph coloring approach. The primary object of this software watermarking is to prevent any digital content from being tampered. The main advantage of this software watermarking approach is,
·It prove the ownership of the content
·It make the content an anti-pirated
By the software watermarking technique we can prevent the pirates using reverse algorithm and de-compilation technique to steal software.
Intellectual property protection or IPP [7] is basically a theoretical framework to evaluate watermarking techniques. The main aspects of any efficient watermarking technique are credibility and overhead.
Software Watermarking? [1] is basically a way of hiding the digital information into a digital content (Cover Text) to prevent piracy. In this approach watermark is a special data structure and cover text is a software program. The hidden digital information is invisible to the user. It is of two types,
·Static
·Dynamic
There are two main types of approach in software watermarking,
· Frequency domain approach
· Path Based
·Graph-Based
In graph theory’s term, graph coloring [6] is a special case of “graph labeling”. Graph coloring is of several types,
Vertex Coloring is to color a graph in such a way that no two adjacent vertices share the same color. Edge Coloring is to Color a graph in such a way that no two adjacent edges share the same color. Face Coloring is to Color a planer graph in such a way that no two faces that share a boundary have the same color. The chromatic polynomial counts the number of ways a graph can be colored using no more than a given number of colors. The smallest number of colors needed to color a graph G is called its chromatic number, ?(G). Graph coloring is computationally hard. It is NP-complete to decide if a given graph admits a k-coloring for given k except for the cases k = 1 and k = 2. Especially, it is NP-hard to compute the chromatic number. Graph coloring remains NP-complete even on planer graphs of degree at most 4.The graph coloring problem is, Given an Undirected Graph G=(V , E) where V= Set of? Vertices and E=Set of Edges , it is required to find out an assignment of colors to vertices, such that no two vertices which are connected by an edge would? get the same color. The main idea behind the solution is, once a vertex is assigned a color then all the vertices which are connected to that are refrained from using the same color. This basic idea is used in software watermarking [7] approaches. Whenever the system get an 1(of the main content) color it and when in case of 0 color it with different color or color the MISes with different but minimum color to make it a distinguished one. The approaches of watermarking techniques for graph coloring problem both credibility and overhead are maintained properly.
2. Software Watermarking approaches
A static algorithm [3] recognizes the watermark by examining the (source or compiled) code of the watermarked program. A dynamic algorithm recognizes the watermark by examining the state of the program after it has been executed with a special finite input sequence (i1,………in). Thus, for a dynamic algorithm the recognizer will have the signature R(Pw[i1,………in])) -> W where P[I] is the state of program P after input I.
Mr. Stern, Hachez, Koeune and Quisquater [2] invented an algorithm for frequency domain software watermarking approach , this approach is called SHKQ algorithm [8].
The basic performance of SHQK algorithm stated below,
1. Watermarks can be embedded by re-ordering parts of the code [9], where such re-ordering can be shown to be semantics preserving.
2. Watermarks can be embedded by inserting new (non-functional) code in the program, such that this code encodes a watermark number.
The three algorithms [2] Vector Extraction, Watermark Embedding, and Watermark Extraction below formalize these steps.
Vector Extraction:
1. Define n as a security parameter.
2. Define a vector S= (s1,...........sn) of n ordered groups of machine language instructions.
3. For each group i in S, count the frequency c of the group in the code, and form the vector c = (c1,..........cn). Return c.
Watermark Embedding:
1. Apply the vector extraction step to obtain a vector c of length n.
2. Choose an n-coordinate vector w= (w1,.................wn) whose coefficients are randomly distributed following a normal law with standard deviation ?
3. Modify the code in such a way that the new extracted vector c ? = c + w
Watermark Extraction
1. Set a detection threshold ? , (0 < ? < 1).
2. Apply the vector extraction step to obtain a vector c from the original (non watermarked) application.
3. Apply the extraction step to obtain a vector d from the watermarked application.
4. Compute a similarity measure Q between d-c and w.
5. If Q is higher than then the algorithm outputs marked, else it outputs unmarked.
C. Collberg, E. Carter, S. Debray, A. Huntwork, C. Linn, M. Stepp [5] discussed path-based watermarking where the basic idea is to embed the mark in the branching structure of the program.
There are some consequences of this approach,
First, the forward branches that a program takes are an essential part of what makes the program unique. This makes branches inherently difficult to change or remove, making path-based watermarks resilient to many distortive attacks.
Second, branches are inherently binary in nature (they are either taken or not taken), which makes it easy to embed a bit-string.
Third, path-based watermarking lends itself well to error-correction and tamper proofing.
Fourth, branches are ubiquitous in real programs, hopefully making path-based marks insusceptible to statistical attacks.
Two basic algorithms [3] have been discussed below for graph-based approach,
Venkatesan et. al. [10] discussed The Graph-Theoretic Watermark (GTW) algorithm whose main objective is to embed a watermark by inserting a code segment which has no semantic effect
Fig.1: The GTW algorithm. Dashed control flow edges connect the watermark graph G with the cover control flow graph P. The watermark nodes of Pw are marked to distinguish them from the nodes of P
The basic embedding technique is stated below,
1. Encode the integer watermark value W as a control-flow graph (CFG) G ? e(W).
2. Construct the watermarked program Pw by combining G and the program CFG P.
3. Connect G and P by adding bogus control-flow edges.
4. Mark the nodes (basic blocks) of G.
This process is illustrated in Figure 1. In order for the watermark to be stealthy G and P should be tightly integrated. Integration is achieved by performing a random walk over the nodes of G and P and adding edges until Pw is uniformly dense.
The watermark is extracted from Pw as follows:
1. Make the nodes of the watermark graph G is the set of marked blocks from
2. Make the edges of G be the set of control-flow edges between marked blocks in .
3. Compute the watermark using the decoder d (G).
Collberg and Thomborson [11] discussed the algorithm that embeds the watermark in a dynamically built, linked, graph structure.
Fig. 2: The Collberg-Thomborson watermarking algorithm
1. At A, the watermark number is encoded into a graph G.
2. At B, G is split into a number of sub graphs.
3. At C, each sub graph is converted into a code sequence that builds the graph. Pw is constructed by inserting the graph-building statements along a special execution path? <P1,P2,P3,P4> of the program.
4. At D, the recognition sequence is started by executing with a special input sequence. This causes the program to follow the execution path Pw and the watermark graph G to be built on the heap.
5. At E, G is extracted from the heap and decoded into W.
In graph based approach two main techniques are discussed below,
A] Graph theoretic approach
B] Graph coloring approach
Christian Collberg, Andrew Huntwork, Edward Carter, Gregg Townsend [4] discussed this approach to achieve a technique for software watermarking; in this approach the GTW algorithm has been used. The GTW embedding algorithm takes as input application code P, watermark code W, secret keys w1 and w2 , and integers m and n. GTWSM uses a smaller and simpler set of parameters. Values of m and n are inferred from P, W, and w1. The clustering step is unkeyed, so w1 is unused. Thus, our implementation takes as input application code P, a secret key w, and a watermark value.
1.The watermark value v is split into k values, { v1,………, vk-1}
2.The split values are encoded as directed graphs { G1,………, Gk-1}
3.The generated graphs are converted into CFGs? {W1,………, Wk-1} by generating executable code for each basic block.
4.The applications clusters are identified
5.The watermark is merged with the application by adding control-flowed edges to the graphs.
6.Each basic block is marked to indicate whether it is part of the watermark.
Embedding:
In GTWSM we accept an integer value for transformation into a watermark CFG. The recognition process performs the inverse transformation from CFG to integer. First, the embedding process involves several steps; secondly, splitting the watermark value into small integers; thirdly, constructing directed graphs that encode these values; generating code that corresponds to the graphs; and connecting the code to the program.
Watermark Value Splitting:
GTWSM splits a watermark value v into a multiset S of k integers, k >? 2. Empirically, we have determined that values of k between 5 and 15 produce watermark methods that are neither overly large nor overly numerous.
A watermark value v is split as follows:
1. Compute the minimum exponent l such that v can be represented using k-1digits of base 2l.
2. Split the value v into digits (v0, v1,……,vk-2) such that 0 <? vj < 2l v = ?k-2j=02jlvj. and
3. Encode the digits in the multi set {s0, s1,……,, sk-1} where s0 = l-1 si = si-1 + vi-1. and
Encoding Integers as Graphs:
-
Each integer is converted into a graph for embedding in the application. Several issues must be considered when choosing a graph encoding:
2. The graph must have the structure of a valid CFG. It should have a header node within-degree zero and out degree one from which every node is reachable, and it should have a footer node without-degree zero that is reachable from every node.
3. The graph should have a maximum out-degree of two.
4. The graph should be reducible [12] because true Java code produces only reducible graphs.
5.The control structures represented by the graph should not be deeply nested, because real programs seldom nest deeply.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] analyzed ‘adding edge’ watermarking techniques for graph coloring problem. Suppose a random graph G(V,E) has been given. A randomly selected message M V is the vertex set of graph G where V = {v0, v1,........, vn-1}. Convert the message M into binary (using ASCII) M=m0m1.............. for embedding.
Now, the message M have to be embed into graph G by the following manner,
lCopy the graph G(V,E) to G'(V,E').
lFor each bit mi , take two nearest bit of vi that are not connected, i.e. vi1 and vi2 in such a manner that? i2 > i1 > i (mod n) and (vi,vi2),(vi,vi1) ? E and (vi,vj) ? E for all i < j < i1 , i1 < j < i2 (mod n).
lIf mi=0 then add edge (vi,vi1)
else if mi=1 then add edge (vi,vi2)
Those edges are extra edges and connected vertex has to be colored by different colors that may not be essential at all in the original graph.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate technique to recover the hiding signatures from the colored graph, which is basically watermarked content.
The approach for recovery from the colored graph, which is embedded by the “adding edge” technique, is as follows,
lAfter embedding the message to the original graph several new edges have been created and the vertex pair may be colored by different colors.
lFor each pair {vi, vj} we can receive one bit of information by counting how many nodes are in between (i.e. Nodes with indices between i and j) vi and vj are not connected with vi.
lIf the difference is 0 then the hidden bit is 0 and if the difference is 1 then the hidden is 1. Otherwise if the difference is more than 1 then reverse the order of vi and vj and try the above steps.
lBy this single binary information the whole binary string can be made. That string is basically the hidden message.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] analyzed ‘selecting MIS’ watermarking techniques for graph coloring problem. MIS means Maximal independent set. MIS of a graph means it is a subset of vertex set S such that the vertex in MIS are not connected and those are not in S is connected with at least one vertex of the graph. Main advantage of this technique is all the vertex of one MIS be labeled by one single color.
Suppose a random graph G(V,E) has been given. A randomly selected message M for embedding. V is the vertex set of graph G where V={v0, v1…………, vn-1}.Convert the message M into binary (using ASCII) M=m0m1..............
Now, the message M have to be embed into graph G by the following manner,
lThe idea of selecting no of MISes according to M.
lTake vi as the first vertex of the MIS where the binary exponent of i log2 n bits of M. coincides the first
lCut the vi and it's neighbors as they can't be in same MIS as vi.
lReorder the vertex and get the next MIS.
lColor each MIS with separate colors.
lConstruct the MIS till the M has not been completely embedded.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate technique to recover the hiding signatures from the colored graph, which is basically watermarked content. The technique to recover the hidden signature from the colored graph embedded by “selecting MIS” approach is as follows,
In this approach several number of MISes are generated. The selected MIS with a particular order of vertex represent the watermark. Binary string can be retrieved from that MIS by reconstruction.
lSuppose the graph contain 11 vertex and 3 MISes have been generated colored by 3 different colors.The binary string needed is 11111.
lTake a certain MIS like {v7, v4, v1, v10 }.
lThe first vertex is v7. As (7)10=(111)2, then the binary string we retrieved is 111.
Now remove v7 and it's neighbors from the original graph.
lThe second vertex in the MIS is v4 and the binary string we retrieved is 11.
lRemove v4 and its neighbors from the original graph. Only v1 and v10 are remained lonely.
lSo, desired result 11111 has been retrieved.
The above technique shows the uniqueness of the selected MIS in determining the credibility.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] analyzed one more technique ‘adding edge and nodes’ along with previous two for hiding signature in a digital content.
Suppose a random graph G(V,E) has been given. A randomly selected message M for embedding. V is the vertex set of graph G where V={v0, v1…………, vn-1}.Convert the message M into binary (using ASCII) M=m0m1..............
Now, the message M have to be embed into graph G by the following manner,
lA new node v has been introduced.
lTake the first ?log n? bits from M.
lFind the corresponding vertex v' and connect it to v.
lTake the next ?log n-1? bits and locate the next vertex to which v is connected.
lRepeat the previous step until np edges have been added and a new graph Gn+1, p have been generated.
lIntroduce a new node until M has been totally embedded.
lColor the new graph.
Mr Gang Qu and Mr. Miodrag Potkonjak [8] demonstrate the approach in behind to recover the hidden signature from a embedded, colored graph generated by “adding edges and nodes” technique is as follows, as by this technique a new node and it's associate edges has been created and they remain invisible. To exhibit the hidden signature we have to go through the signature embedding technique once again and encrypted signatures can be added to the colored graph as edges to the newly inserted vertex. Different binary strings can be generated in the same way from the same colored graph. So to get a valid result a comparison in between every result is necessary.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of? “adding edge” approach,
The signature or message that have to embed can be anything but that should capable of protecting the ownership.
Encrypt the message, which is converted to binary using cryptographic hash function or stream cipher. Assume that the final binary bit stream is random.
A basic assumption on this approach,
lTo color Gn, p, we need exactly X color where X is given by,
X ( Gn, p ) = é n/(2logbn) ù ...(i)
lAfter embedding k bits into the main graph Gn,p there are extra k edges added to the watermarked content, the resulting graph remains random with the same number of vertex and a new edge probability,
p' = p + (2k/n(n-1))
So, formula (i) for the chromatic number still holds and this number is denoted by X'. The overhead is defined by the X’-X (i.e. total no of extra color need to color the watermarked graph).
Some theorem have been deduced on contrary of the technical concept of the above approach,
Theorem 1.1: Adding k (n) edges to a random graph Gn,p , limn-> μ X'-X= μ
if and only if k (n) ? ?( n log n)
Corollary 1.2: (1 color overhead) Adding k(n) edges to graph Gn,p , if
limn->μ (k(n)/n log n) = l then limn-> μ X'-X <= 1+ é l/(1-p) ù .? In particular
k (n) ? o( n log n). The overhead is at most 1.
Theorem 1.3: Adding k(n) edges to a random graph Gn,p , let & be the event that
these edges are added randomly, then limn->μ Prob[?]=0 if k (n) ? ?( n/ log n).
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of “selecting MIS” approach,
Whenever a MIS has been removed from the original graph, the graph became a random one again with the same edge probability.
·To generate a random graph Gn+1,p , add one new vertex into a random graph Gn,p and add an new edge in between the new vertex and the old vertex in Gn,p with probability P.
·The first vertex of any MIS have been selected randomly and the next vertex’s choices are restricted to (1-p)n=qn as pn neighbors of the first vertex have been eliminated.
Therefore following theorems have been deduced,
Lemma 2.1: Given random graph Gn,p , almost all randomly selected MIS is of size logb n, where b = 1/(1-p).
To create a convincible watermarking a large graph, we have to add w(n/log n) edges by the first technique.
Theorem 2.2: Given a random graph Gn,p, Let ? be the event that in a random solution, all vertices in this MIS have the same color. By selecting one vertex from an n-vertex graph, we can embed ?log2 n? bits.
From lemma 2.1, at most log2 n log b n bits of information could be embedded into the MIS. To embed long messages, we have to construct more MISes, which may result in huge overhead.
Theorem 2.3 : Given a random graph Gn,p , if we select k(n) MISes ,assign each MIS one color and color the rest of the graph, then the overhead is at most k(n) and k(n/2) on average at least.
Mr Gang Qu and Mr. Miodrag Potkonjak [7] discussed some technical aspects of “adding edges and nodes” 8 approach the technical aspects are,
· k new edges have been added into the initial graph Gn,p and transformed into Gn+k,p.
· The formula for implying overhead is,
X`-X= é (n+k)/2logb(n+k) ù. - é n/2logbn ù where b=1/1-p
· The watermarked potential for the graph Gn,p as WP(Gn,p) = X(Gn,p) – n/(2logbn)
The theorems deduced for this technique’s aspect are,
Theorem 3.1: Given a random graph Gn,p, we introduce k (n) new vertex and associate edges based on the signature, then for almost all Gn,p , the overhead is at most 1 if
k(n) ? o(log n).
Theorem 3.2: We build graph Gn+1,p from a given random graph Gn,p np edges. A coloring scheme to the initial Gn,p is obtained by coloring by introducing one new vertex and
Gn+1,p. Let ? be the event:
·Add a vertex v to the colored graph Gn,p .
·Connect v to np random vertex.
3. Conclusion
Two most important criteria of any watermarked content is low overhead and high credibility. Previously discussed three techniques have been fully analyzed and we can conclude that, those techniques are totally capable to provide high credibility with at most 1 color overhead. For large graphs (i.e. Random graphs, DIMACS challenge graph, Graphs generated from real life problems).
Numerical data from simulation have been analyzed and confirms the result.
Fingerprinting is one of the most efficient method to provide security to any content. The technique? can be implemented in NP complete GC(graph coloring)problem. Fingerprinting in the random graphs introduces overhead while for graphs generated from real life register problem.
In the QP algorithm which is basically a algorithm for constraint based watermarking algorithm, the graph coloring problem can be used to embed a watermark (edge adding) in the registry allocation.
5. References
[1]? Mohanty S. P. . “Digital Watermarking : A tutorial View “ .A technical report. Indian Institute of Science,1999
[2]? Sahoo T. R., Collberg C. . “Software Watermarking in the Frequency Domain: Implementation, Analysis, and Attacks”. Technical report TR04-07, Dept.of computer science, University of Arizona, March, 2004
[3]? Collberg C., Kobourov S. , Carter E. .“Error-Correcting Graphs for Software Watermarking” . In workshop on graph theoretic concepts in computer science. 2003
[4]?? Collberg C., Huntwork A. , Carter E., Townsend G. . ”Graph Theoretic Software Watermarks: Implementation, Analysis, and Attacks” . In 6th International Information Hiding Workshop, March, 2004
[5]?? Collberg C. , Carter E. , Devroy S. , Huntwork A. , Linn C., Stepp. M. “Dynamic Path Based Software Watermarking”. In proceedings of the conference on programming language and implementation, 2004
[6] http://en.wikipedia.org/wiki/Graph_coloring
[7] Qu G. and Potkonjak M. . “Analysis of Watermarking Techniques for Graph Coloring Problem”. In IEEE/ACM International Conference of Computer aided design, Pages 190-193, November, 1998.
[8] Stern J. P., Hachez G., Koeune F., and Quisquater J.J.. Robust object watermarking: Application to code. In Information Hiding, pages368-378,1999. http://citeseer.nj.nec.com/stern00robust.html.
[9] Davidson R.L. and? Myhrvold N. Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884, Assignee: Microsoft Corporation,1996. http://www.delphion.com/details?pn=US05559884__
[10] Venkatesan R., Vazirani V. , and Sinha?? S. A graph theoretic approach to software watermarking. In 4th International Information Hiding Workshop, Pittsburgh, PA, Apr. 2001.
[11] Collberg C. and Thomborson C.. Software watermarking: Models and dynamic embeddings. In Principles of Programming Languages 1999, POPL99, San Antonio, TX, Jan. 1999.
[12] Aho V.A., Sethi R., and Ullman D.J. Compilers,Priciples,Techniques and tools. Addison-Wisely,1986.ISBN0-201-10088-6.
Posted in: java tutorial| Tags: Software Internet Security Approach Report provider technique content survey graph
IT Services
“An IT Services provider is an entity that provides services to other IT service.”
IT Services, as defined by the Information Technology Association of America (ITAA), is "the study, design, development, implementation, support or management of computer-based information systems, particularly software applications. IT services is the? Providers of computer and internet-related services to businesses and consumers including computer repair, software consulting, computer training, machine leasing/rental, disaster recovery, web designing and maintenance,? data input and processing, internet security, e-commerce services, web hosting and systems engineering etc..In the including of IT services developers are personable and real users.
This means you will be working with someone who "gets" your needs and develops with the end user in mind for overall functionality without sacrificing ease of use.?? New software tools and services businesses can use to develop company-wide strategies for managing information assets of IT Services and IT outsourcing. The key to customer retention is the good it services. IT services is the combination of telecom, software and electronics. Information Technology Strategies Implementation Group (ITSIG) and consisting of individuals who have appointed a standard tools of IT Services that are Web based design tools(visual studio), java’s application softwares,flash players, animation tools ,graphic designing toolsets are the basic and important tools for providing the best and efficient Information Technology products for outsourcing and servicing.
The most imperative and essential functions are liability and safety, even in the IT services included. The task of the IT services
? Direction, planning, budget, resources, services, project coordination.
? Management of IT directories and authentication system (Active Directory (Global Domain window), combined with the real world.
? Consolidation/virtualization of some IT services, advice on virtualization solutions
? Global counsel of monitoring of all IT services and IT outsourcings.
?
? Web Coordination (Programs and Institutes web sites), the development and support of specific or general web application for customers.
?Utilization of all the software tools.
????????????????????????????????????????????????????????????????????????????????
IT services is provided by the Embedding IT staff in the business and leveraging business mentors it is the two several keys. Services in the field of IT services in defined in the field of Account management, account registration, database training course, graphics design, websites design and ,SEO, information security, internet, job application,maintainence ,management information, software and many more things which is connected with the computer world. Managed Internet Service Provider (MISP), Application service provider (ASP), outsourcing, service system and web service is mainly distribution of IT services motive.
In addition, the advantages of Services in the field of IT apply the 360-degree view of your business – providing the information you need, when you need it. The right business management software can give it to you. Read on to find out what you can gain from software that gives you 360-degree visibility. The business value of information technology (IT) has been debated for a number of years. Some evaluators have found large productivity improvements attributable to SEO services, IT services, IT outsourcings etc. as well as evidence that IT has generated substantial benefits and prosperity for consumers.
All areas of the IT boom, the spread of IT and allied sectors were services, the world's IT outsourcings are ready to face the same reality: the increase and decrease the budget of the business appeal. This is a long time: to make any more or less as is. The new data management technology with the web site, saving the data management, storage, servers, and to enable energy consumption, IT support has emerged as the answer. 130000 IT in the world are working to provide services and solutions company.
?
Posted in: java training| Tags: Software Technology Information provider computer service web design implementation entity24Ondemand Web Solutions Provider Company In Atlanta
Web site development is the most prosperous economies in the world one of the industries. Web development and design and integration of the programming part of creating a Web site. 24Ondemand affordable web development, web design, internet marketing, search engine optimization, graphic design. Many companies offer cost-benefit ratio of this service, providing safe and effective Internet-based Web development solution. In particular, the present, the network of major developments in the field of development took place.
Low-cost Web development services is common these days. But the clients must be very careful to choose their web development company. As the company offers low-cost development services can attract a lot of interesting customer value and value-added services and bulk discounts. In most cases, these companies may lack in quality, does not provide a product. Web development services, need a broad range of IT related services. In a number of important areas related to network development, including e-commerce, enterprise development content for next-generation network, network server configuration and client.
OnDemand is able to deliver a professional solution–simply, efficiently, and very affordable rate.
1.Tackle projects once thought beyond your scope
2. Build large applications on a small budget
3. Manage your projects–simply and effortlessly
When the well-planned and sophisticated, the website can be a powerful tool for any business. It can enhance your online identity. It can provide your product or service. Moreover, it can be very informative for your visitors online resources. Whether it is static, single-page design or highly complex, multi-page site, we demand the development team to provide innovative solutions, you need web site - and you want results.
1. A professional website enhances your company’s image and products.
2. A simple website can be quickly set up, requires almost no maintenance, and is easily linked to Internet search engines.
3. OnDemand will optimize your website, enhancing its search engine performance .
The website design is an important factor in attracting not only visitors but also in promoting your brand as an expert. Herself from the pack and is memorable that your web site to Web site design, which is adapted to offer your personality and the services that you have customized. It is also important to consider the needs of your target audience when creating the web-site design. The database is also the important role of web development that are in well-formed will manage it in ondemand. Planning and organization are the most important steps in designing a website. Is on your site, print out the penalty of your form and you need a lot of time in developing and testing it.
Websites are designed to explain the quality and commitment of the company, its targeted audience. The design and development of the site are sufficient enough to the reality of companies before the customer structure. The appearance and attractiveness of the site that offered in the understanding of the quality. Websites serve as an essential form of advertising and branding for the company. They are an innovative and creative source that can lead to a company to increase interactivity with their target audiences.
Our clients range from both small and large companies; advertising agencies to financial services firms; from manufacturing companies to hospitals. We have a clientele of outsourcing covering US, UK, Europe, Australia.
Website Development & Programming
As a full-service website design and development company, we provide a comprehensive front-end and back-end services. These services provide a new site or to maintain and strengthen the implementation of an existing site. Our back-end programming and site design capabilities include PHP, ASP.NET, HTML / XHTML document, use, CSS (Cascading Style Sheets), JavaScript in the XML, Microsoft SQL, MySQL's
Redesign and Tuning
Ondemand is a website templates customization project powered by 24ondemand.com which allows you to create your own unique website with the helping hands of professional designers.
CSS Development
Cascading Style Sheets in Web design is the most popular words. This will enhance the presentation of your website more effectively, and reduce the load time can be adapted to a broad range. Therefore, we can evaluate whether your site can do for you and your business.
Search Engine Optimization
Search engines are one of the primary ways that Internet users find Web sites. That's why a Web site with good search engine listings may see a dramatic increase in traffic.
Everyone wants those good listings. Unfortunately, many Web sites appear poorly in search engine rankings or may not be listed at all because they fail to consider how search engines work. The objective of search engine optimization (SEO) is to increase a Web site's traffic counts, and ultimately conversions, by ranking very high in the results of searches for the keywords in the search query. It is the mission of SEO to make the site's content worthy of higher search engine ranking by being more relevant and competent than the competition's.
Testing
Testing is the process to detect the defects & minimize the risk associated with residual defects.The main objective of testing is to find the bugs in software.
Architecture of an Application Block in Enterprise Library
The client code calls into the ProviderBase Factory class with the Create ProviderBase method. The ProviderBase Factory then calls the ProviderBase InstanceFactory class. This class calls the Enterprise Library core, which examines the I ProviderBase interface for the attribute that tells it what sort of custom factory to use. It creates an instance of that class and uses it to discover the appropriate configuration object. In this case, the correct object is the Provider Data class. The core then examines the Provider Data class for the Assembler attribute that tells it which assembler to build. It builds the assembler and passes it the Provider Data class. The assembler constructs an instance of the Provider class.
Application Block Software Factory Generated Files
Application Block Software Factory produces application blocks that have a run-time component and a design-time component. The run-time component implements the application block’s functionality. The application block also provides the configuration schema, which defines the application block’s behavior. The design-time component makes it possible to display this information in the configuration tools. Either of these tools allows you to read an application block’s current configuration, to change it and to store it. Most of an application block’s functionality and configuration information is contained in classes that implement the providers.
The Run-Time Component
Table 1 lists the most relevant run-time classes created by the Application Block Software Factory that implement a provider’s functionality.
Table 1: Run-time component classes for functionality
Class name
Description
Provider
This class is an implementation of the provider base class. The Create New Provider (Typed) or Create New Provider (Untyped) recipe creates this file.
ProviderBase Factory
This is a static class that has a Create Provider method. This method allows users to create instances of the provider. The New Provider Factory and Base recipe creates this file.
ProviderBase CustomFactory
This class finds the correct configuration information for the provider that is being instantiated and returns it to the Enterprise Library core. The New Provider Factory and Base recipe creates this file.
ProviderBase InstanceFactory
This is the entry point into the Enterprise Library core. The New Provider Factory and Base recipe creates this file.
ProviderBase
The provider base class that implements the I ProviderBase interface. Provider implementations derive from this class
I ProviderBase
The interface that the provider base class implements. The New Provider Factory and Base recipe creates this file.
Table 2 lists the run-time classes that contain an application block or a provider’s configuration information.
Table 2: Run-time component classes for configuration information
Class name
Description
ApplicationBlock Settings
This class defines the application block’s configuration information. The design-time counterpart of this file is ApplicationBlock SettingsNode class. The Create Application Block recipe creates this file.
ProviderBase DataRetriever
This is a helper class that is responsible for retrieving the default instance name from the configuration.
ProviderBase Data
This class defines the base provider class’s configuration information. The design-time counterpart is the ProviderBase Node class. The New Provider Factory and Base recipe creates this file.
Provider Data
This class defines the provider’s configuration information. The design-time counterpart is the Provider Node class. The Create New Provider (Typed) or the Create New Provider (Untyped) recipe creates this file.
The Design-Time Component
The design-time component translates between the run-time configuration classes and the Configuration Console’s UI display. Table 3 lists the most relevant design-time files created by the Application Block Software Factory.
Table 3: Design-time component classes
Class name
Description
AddApplicationBlockSettingsNodeCommand
This class represents the menu command from the application that is used to add the configuration for the block (that is, “New, Data Access Application Block”)
ApplicationBlock SettingsNode
This class mirrors the properties in the ApplicationBlock SettingsNode. It represents the block’s top-level node in the configuration tool.
ApplicationBlock SettingsBuilder
This class translates the information in the UI configuration hierarchy nodes into run-time configuration classes. This is necessary in order to save the configuration information. The Create New Application Block recipe creates this file.
ApplicationBlock SettingsNodeBuilder
This class reads the configuration information by translating run-time configuration information into UI configuration hierarchy nodes. The Create New Application Block recipe creates this file.
CommandRegistrar
This class contains commands that place the nodes at the correct places in the configuration hierarchy. For example, the CreateSingleUICommand command ensures that a node only appears once. This class also associates the nodes with the correct UI commands such as Rename and Replace. The Create New Application Block recipe creates this file.
ConfigurationDesignManager
This class defines the UI commands, such as New, and the node maps for the configuration hierarchy. A node map defines the correspondence between the run-time configuration information and a UI node. It also contains the OpenCore method that reads the configuration information. The Create New Application Block recipe creates this file.
NodeMapRegistrar
This is a helper class that creates a mapping between nodes and configuration information. The Create New Application Block recipe creates this file.
ProviderBase Node
This class mirrors the properties in the ProviderBase Data class. It also defines characteristics such as the Configuration Console category for the property and whether or not the property is required. The New Provider Factory and Base recipe creates this file.
Provider Node
This class mirrors the properties in the Provider Data class. It also defines characteristics such as the Configuration Console category for the property and whether or not the property is required. The Create Design-Time Provider Node recipe creates this file.
Posted in: Software Programming C# and .NET| Tags: NET Enterprise Library Microsoft Enterprise Library application block provider ProviderBaseFactory CreateProviderBase IProviderBaseGlossary of Terms in Microsoft Enterprise Library
application block. A reusable software component that is designed to help developers with common enterprise development challenges. For example, the Enterprise Library includes a Data Access Application Block that developers can use to incorporate standard database functionality into their applications.
base node. The design-time counterpart of the run-time provider base class. Generally, the base node is defined in the BaseClassName Data class. The design-time project includes this class.
design - time project. The design-time project contains the files that make the application block and its providers visible and configurable in the Configuration Console and Visual Studio Configuration Editor.
default instance. The provider instance that the application block creates if the Create method has no type parameter. You define the default instance in the Create New Provider Factory and Base Wizard.
provider node. The design-time counterpart of the run-time provider implementation. The Application Block Software Factory creates a node when you complete the Create a Design-Time Provider Node wizard. Generally, the node is defined in the ProviderName Data class. The design-time project includes this class.
parent UI node. The node that contains the current node in the configuration hierarchy.
provider. A .NET object that supplies some functionality. The Enterprise Library includes many providers. For example, there is a provider that allows you to connect to a SQL database, execute commands, and retrieve results. The Application Block Software Factory creates a provider implementation when you complete the Create New Provider wizard. Generally, the ProviderName class defines the provider implementation. The run-time project includes this class. You can create either typed providers or untyped providers. Typed providers have strongly-typed their own strongly-typed configuration classes. Untyped providers use a generic name/value collection.
provider base class. The class from which provider implementations derive. The Application Block Software Factory creates a provider base class when you complete the Create New Provider Factory and Base wizard. Generally, the ProviderBaseClassName class defines the base class. The he run-time project includes this class.
provider library. A .NET Framework assembly with a corresponding Visual Studio project that contains a number of providers. These providers extend the functionality of an application block. This application block is included in a different assembly.
reference node. A node that the current node needs to correctly function. When you use the Application Block Software Factory to build a design-time project, you enter the value of a property’s reference node when you use the Create a Design-Time Provider Node wizard. Reference nodes appear as types in the dropdown list in the Configuration Console’s property pane. For example, in the Logging Application Block, if you have a trace listener that logs to a database, the reference node is the connection string for the database. If you are using a SQL database, you use the dropdown list to select System.Data.SqlClient as the type. You define a reference node when you define a provider’s properties in the Create New Provider wizard.
run-time configuration type. The class that contains the configuration information that the design time uses for the configuration tools.
typed provider. A provider that includes a ProviderName Data class. This class contains the run-time configuration information. This configuration information can be used in the design-time project so that the provider’s properties and values will appear in the configuration tools.
untyped provider. A provider that has a generic provider data class. This class uses a name/value collection that can apply to different types of providers.
Posted in: Software Programming C# and .NET| Tags: NET Enterprise Library Microsoft Enterprise Library application block base node default instance provider node provider reference node provider libraryWhat To Look For In A Data Entry Service Provider?
Data forms a very critical aspect of all business processes. Though it may not be the core business processes, without it no core process can function and no objectives can be met. This is because businesses rely on data to support their functions and to base their important decisions on. However, handling data in a business enterprise can be a daunting task, especially so if the volumes are enormous. The difficulty may either be because of the complexity of the tasks or the sheer monotony of performing them.
This is where outsourcing data entry services come into play. It is a very effective business strategy that helps you reduce your investment costs and enhance the efficiency of the deliverables. However, the success of the project and the quality of benefits that you gain from outsourcing data entry works depends a lot on the competence of the service provider.
If you are serious about your business and want the data entry outsourcing project to be successful, then you should spend some quality time researching about the same. Your choice of the data entry services outsourcing partner will impact the success of the project, therefore make sure you make a sane choice. Here are some things that you need to look for in a service provider.
Secure Work Environment As stated earlier, data is crucial to all business processes and data entry projects often involves processing of private and confidential information. And if this information is leaked out to third-parties and misused, your business may have to face severe consequences and damages.
Therefore, it is important to choose an data entry service provider that implements high security measures and policies at their workplace. Security policies should be a combination of online as well as offline security measures. While there should be requisite firewalls, automated tracking and recording systems, secure FTP servers, PGP encryption, log in privacy through the online processing of data, offline measures should include manual checking of employees, restricted access at workspace, safe disposal of hard copies of documents and so on
Constant Connectivity Data entry services usually require a fast turnaround time and the tasks need to be processed and completed within 24 to 48 hours. And through the whole procedure the client needs to be in constant touch with the data entry professionals. Therefore, it is important that the service provider has adequate infrastructure and systems to facilitate continuous and uninterrupted communication between the data team and the client. Also, the work process can be highly impacted if there is a FTP download or upload problem. Hence the service provider should have multiple leased lines including both wired and wireless connections.
Experience and Expertise of Tasks Make sure the data entry service provider has considerable expertise of completing tasks. In these processes, it is important to maintain speed as well as accuracy of the processed data. Without either of them, the project cannot be a success. The staff at the outsourcing center should be proficient at handling large amounts of data quickly and efficiently.
Posted in: Software| Tags: Service Provider Data Entry Task Business Security Success Process provider project core service entry data