1 CONTENT S.NO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 20 21 22 TITLE Abstract Introduction Existing system Disadvantages Proposed system Advantages System Architecture Flow Diagram Use case Diagram Class Diagram Sequence Diagram Testing Of Product Modules Modules Description Algorithm Description Literature Survey Hardware Requirements Software Requirements H/W&S/W Description Screen Shots Future Enhancement Conclusion References PAGE .NO 2 3 6 7 8 9 10 11 12 13 14 15 19 19 21 22 32 32 33 40 2 ABSTRACT Traditional broadcast encryption (BE) schemes allow a sender to securely broadcast to any subset of members but require a trusted party to distribute decryption keys. Group key agreement (GKA) protocols enable a group of members to negotiate a common encryption key via open networks so that only the group members can decrypt the ciphertexts encrypted under the shared encryption key, but a sender cannot exclude any particular member from decrypting the ciphertexts. In this paper, we bridge these two notions with a hybrid primitive referred to as contributory broadcast encryption (ConBE). In this new primitive, a group of members negotiate a common public encryption key while each member holds a decryption key. A sender seeing the public group encryption key can limit the decryption to a subset of members of his choice. Following this model, we propose a ConBE scheme with short ciphertexts. The scheme is proven to be fully collusion-resistant under the decision n-Bilinear Diffie-Hellman Exponentiation (BDHE) assumption in the standard model. Of independent interest, we present a new BE scheme that is aggregatable. The aggregatability property is shown to be useful to construct advanced protocols. 3 INTRODUCTION WITH the fast advance and pervasive deployment of communication technologies, there is an increasing demand of versatile cryptographic primitives to protect group communications and computation platforms. These new platforms include instant-messaging tools, collaborative computing, mobile ad hoc networks and social networks. These new applications call for cryptographic primitives allowing a sender to securely encrypt to any subset of the users of the services without relying on a fully trusted dealer. Broadcast encryption (BE) is a well-studied primitive intended for secure group-oriented communications. It allows a sender to securely broadcast to any subset of the group members. Nevertheless, a BE system heavily relies on a fully trusted key server who generates secret decryption keys for the members and can read all the communications to any members. Group key agreement (GKA) is another well-understood cryptographic primitive to secure group-oriented communications. A conventional GKA allows a group of members to 4 establish a common secret key via open networks. However, whenever a sender wants to send a message to a group, he must first join the group and run a GKA protocol to share a secret key with the intended members. More recently, and to overcome this limitation, Wu et al. introduced asymmetric GKA , in which only a common group public key is negotiated and each group member holds a different decryption key. However, neither conventional symmetric GKA nor the newly introduced asymmetric GKA allow the sender to unilaterally exclude any particular member from reading the plaintext1. Hence, it is essential to find more flexible cryptographic primitives allowing dynamic broadcasts without a fully trusted dealer. We present the Contributory Broadcast Encryption (ConBE) primitive, which is a hybrid of GKA and BE. First, we model the ConBE primitive and formalize its security definitions. ConBE incorporates the underlying ideas of GKA and BE. A group of members interact via open networks to negotiate a public encryption key while each member holds a different secret decryption key. Using the public encryption key, anyone can encrypt any message to any subset of the group members and only the intended receivers 5 can decrypt. Unlike GKA, ConBE allows the sender to exclude some members from reading the ciphertexts. Compared to BE, ConBE does not need a fully trusted third party to set up the system. We formalize collusion resistance by defining an attacker who can fully control all the members outside the intended receivers but cannot extract useful information from the ciphertext. EXISTING SYSTEM Group key agreement cryptographic primitive to (GKA) is another secure group-oriented well-understood communications. A conventional GKA allows a group of members to establish a common secret key via open networks. However, whenever a sender wants to send a message to a group, he must first join the group and run a GKA protocol to share a secret key with the intended members. More recently, and to overcome this limitation, Wu et al. introduced asymmetric GKA, in which only a common group public key is negotiated and each group member holds a different decryption key. However, neither conventional symmetric GKA nor the newly introduced asymmetric GKA allow the sender to unilaterally exclude any particular 6 member from reading the plaintext. Hence, it is essential to find more flexible cryptographic primitives allowing dynamic broadcasts without a fully trusted dealer. DISADVANTAGES OF EXISTING SYSTEM: Need a fully trusted third party to set up the system. Existing GKA protocols cannot handle sender/member changes efficiently. PROPOSED SYSTEM We present the Contributory Broadcast Encryption (ConBE) primitive, which is a hybrid of GKA and BE. This full paper provides complete security proofs, illustrates the necessity of the aggregatability of the underlying BE building block and shows the practicality of our ConBE scheme with experiments. First, we model the ConBE primitive and formalize its security definitions. ConBE incorporates the underlying ideas of GKA and BE. A group of members interact via open networks to negotiate a public encryption key while each member holds a different secret decryption key. Using the public encryption key, anyone can encrypt any message to any subset of the group members and only the intended receivers can decrypt. 7 We formalize collusion resistance by defining an attacker who can fully control all the members outside the intended receivers but cannot extract useful information from the ciphertext. Second, we present the notion of aggregatable broadcast encryption (AggBE). Coarsely speaking, a BE scheme is aggregatable if its secure instances can be aggregated into a new secure instance of the BE scheme. Specifically, only the aggregated decryption keys of the same user are valid decryption keys corresponding to the aggregated public keys of the underlying BE instances. Finally, we construct an efficient ConBE scheme with our AggBE scheme as a building block. The ConBE construction is proven to be semi-adaptively secure under the decision BDHE assumption in the standard model. ADVANTAGES OF PROPOSED SYSTEM: We construct a concrete AggBE scheme tightly proven to be fully collusion-resistant under the decision BDHE assumption. The proposed AggBE scheme offers efficient encryption/decryption and short ciphertexts. Only one round is required to establish the public group encryption key and set up the ConBE system. 8 SYSTEM DESIGNS SYSTEM ARCHITECTURE: 9 DATA FLOW DIAGRAM: 10 TESTING OF PRODUCT SYSTEM TESTING The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub-assemblies, assemblies and/or a finished product. It is the process of exercising software with the intent of ensuring that the Software system meets its requirements and user expectations and does not fail in an unacceptable manner. There are various types of test. Each test type addresses a specific testing requirement. TYPES OF TESTS Unit testing Unit testing involves the design of test cases that validate that the internal program logic is functioning properly, and that program inputs produce valid outputs. All decision branches and internal code flow should be validated. It is the testing of individual software units of the application .it is done after the completion of an individual unit before integration. This is a structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results. 11 Functional test Functional tests provide systematic demonstrations that functions tested are available as specified by the business and technical requirements, system documentation, and user manuals. Functional testing is centered on the following items: Valid Input : identified classes of valid input must be accepted. Invalid Input : identified classes of invalid input must be rejected. Functions : identified functions must be exercised. Output : identified classes of application outputs. Systems/Procedures: interfacing systems or procedures must be invoked. Organization and preparation of functional tests is focused on requirements, key functions, or special test cases. In addition, systematic coverage pertaining to identify Business process flows; data fields, predefined processes, and successive processes must be considered for testing. Before functional testing is complete, additional tests are identified and the effective value of current tests is determined. System Test System testing ensures that the entire integrated software system meets requirement. It tests a configuration to ensure known and predictable results. An example of system testing is the configuration oriented system integration test. System testing is based on process descriptions and flows, emphasizing pre-driven process links and integration points. 12 White Box Testing White Box Testing is a testing in which in which the software tester has knowledge of the inner workings, structure and language of the software, or at least its purpose. It is purpose. It is used to test areas that cannot be reached from a black box level. Black Box Testing Black Box Testing is testing the software without any knowledge of the inner workings, structure or language of the module being tested. Black box tests, as most other kinds of tests, must be written from a definitive source document, such as specification or requirements document, such as specification or requirements document. Test objectives All field entries must work properly. Pages must be activated from the identified link. The entry screen, messages and responses must not be delayed. Integration Testing Software integration testing is the incremental integration testing of two or more integrated software components on a single platform to produce failures caused by interface defects.The task of the integration test is to check that components or software applications, e.g. components in a software system or – one step up – software applications at the company level – interact without error. 13 Acceptance Testing User Acceptance Testing is a critical phase of any project and requires significant participation by the end user. It also ensures that the system meets the functional requirements. Test Results: All the test cases mentioned above passed successfully. No defects encountered. 14 MODULES Loading and preprocessing of data. Analysis of user reviews. Mapper and reducer process Prediction of recommendation list. Evaluation process. MODULES DESCRIPTION Loading and preprocessing of data In this module , we first load the data.After loading , we analyze the data.After analyzing process , we view the information present in the dataset.After that we start the preprocessing step.In the preprocessing step,we remove the null value,missing tuples etc. Analysis of user reviews. After preprocessing , we view the cleaned or processed data.At the same time we analyze the user reviews.The user reviews contain the information about the place or hotels or transportation etc.Using the review we further continue our process. Mapper and reducer process 15 In this module we first collect the user preferences in the form of query model.We implement the query model to get the user request, here it is user preference.The user preference is processed using the map reduce mechanism.The process is performed by splitting the preferences i.e.it is done using mapper process.After the processing , the results are aggregated. Prediction of recommendation list. After map reduce process execution ,we aggregate the result to generate the recommendation list.The recommendation list is generated using user collaborative the filtering algorithm.This algorithm generates output ,recommendation list.A keyword-aware service recommendation method, named in this paper, which is based on a user-based Collaborative Filtering algorithm.Keywords extracted from reviews of previous users are used to indicate their preferences. Evaluation process The evaluation process takes place to predict the accuracy of the recommendation list.The evaluation is in the form of graphs.To evaluatethe performance of KASR in accuracy, we compare KASRwith other two well-known recommendation methods: Rank Boost algorithm using Pearson Correlation Coefficient(PCC) and item-based algorithm using PCC, which arecalled as UPCC respectively. ALGORITHM DESCRIPTION and IPCC 16 The Diffie-Hellman protocol is a method for two computer users to generate a shared private key with which they can then exchange information across an insecure channel. Let the users be named sender and receiver. First, they agree on two prime numbers and , where is large (typically at least 512 bits) and is a primitive root modulo . (In practice, it is a good idea to choose such that is also prime.) The numbers and need not be kept secret from other users. Now sender chooses a large random number as her private key and receiver similarly chooses a large number . Sender then computes which she sends to Receiver, and Receiver computes , , which he sends to sender Now both Sender and Receiver compute their shared key , which Sender computes as and Receiver computes as Sender and Receiver can now use their shared key to exchange information without worrying about other users obtaining this information. In order for a potential eavesdropper (Eve) to do so, she would first need to obtain knowing only , , This can be done by computing from and and from . . This is the discrete logarithm problem, which is computationally infeasible for large . Computing the discrete logarithm of a number modulo takes roughly the same 17 amount of time as factoring the product of two primes the same size as , which is what the security of the RSA cryptosystem relies on. SOFTWARE REQUIREMENTS Hardware Requirement: System : Pentium dual core Hard Disk : 160 GB Monitor : 15 VGA color Mouse : Logitech. Keyboard : 110 keys enhanced 18 Software Requirement: Operating system : Windows XP/7. Coding Language : JAVA IDE : Eclipse Database : MYSQL SOFTWARE DESCRIPTION 4.1.FRONT END JAVA (Programming Language) This project uses JAVA (Programming Language). J2EE(JAVA 2 ENTERPRISE EDITION) is a programming language developed and marketed by Sun Microsystems to allow programmers to build dynamic web sites, web applications and web services. James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time. The language was initially called Oak after an oak tree that stood outside Gosling's office; it went by the name Green later, and was later renamed Java, from Java coffee, said to be consumed in large quantities by the language's creators. Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of notation. 19 One characteristic of Java is portability, which means that computer programs written in the Java language must run similarly on any hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation called Java byte code, instead of directly to platform-specific machine code. Java byte code instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware. End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets. Standardized libraries provide a generic way to access host-specific features such as graphics, threading, and networking. A major benefit of using byte code is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time (JIT) compilers were introduced from an early stage that compiles byte codes to machine code during runtime Oracle Corporation is the current owner of the official implementation of the Java SE platform. This implementation is based on the original implementation of Java by Sun. The Oracle implementation is available for Mac OS X, Windows and Solaris. Because Java lacks any formal standardization recognized by Ecma International, ISO/IEC, ANSI, or any other thirdparty standards organization, the Oracle implementation is the de facto standard. The Oracle implementations are packaged into two different distributions. The Java Runtime Environment (JRE) which contains the parts of the Java SE platform required to run Java programs. This package is intended for end-users. The Java Development Kit (JDK), is intended for software developers and includes development tools such as the Java compiler, Javadoc, Jar, and a debugger. Open JDK is another notable Java SE implementation that is licensed under the GPL. The implementation started when Sun began releasing the Java source code under the GPL. As of Java SE 7, Open JDK is the official Java reference implementation. The goal of Java is to make all implementations of Java compatible. Historically, Sun's trademark license for usage of the Java brand insists that all implementations be "compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft 20 implementation did not support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997 and in 2001 won a settlement of US$20 million, as well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Windows with Java. Platform-independent Java is essential to Java EE, and an even more rigorous validation is required to certify an implementation. This environment enables portable server-side applications. There were five primary goals in the creation of the Java language: ● It should be "simple, object-oriented and familiar" ● It should be "robust and secure" ● It should be "architecture-neutral and portable" ● It should execute with "high performance" ● It should be "interpreted, threaded, and dynamic" In 2010, IBM released Rational Application Developer version 8.0. This release supported WebSphere Application Server version 8.0 as well as the new Java EE 6 programming standard. This release included tools supporting the OSGi applications framework and cloud computing. The cloud computing support included the ability to instantiate and manages virtual machines running application servers and also inclusion of virtual machine appliances for Rational Application Developer in the IBM Smart Cloud Enterprise image catalogue. The latest version of Rational Application Developer is Version 9.0, which was released in June 2013. SERVLETS This project use servlets technology. A Servlet is a Java-based server-side web technology. As the name implies, it serves a client request and receives a response from the server. Technically speaking, a Servlet is a Java class in Java EE that conforms to the Java Servlet API, a protocol by which a Java class may respond to requests. They are not tied to a specific client-server protocol, but are most often used with the HTTP protocol. Therefore, the word "Servlet" is often used in the meaning of "HTTP Servlet". Thus, a software developer may use a servlet to add dynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML. Servlets are the Java counterpart to non-Java dynamic Web content technologies such as PHP and ASP.NET. Servlets 21 can maintain state in session variables across many server transactions by using HTTP cookies, or URL rewriting. To deploy and run a Servlet, a Web container must be used. A Web container (also known as a Servlet container) is essentially the component of a Web server that interacts with the servlets. The Web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access rights. The servlet API, contained in the Java package hierarchy javax.servlet, defines the expected interactions of the Web container and a servlet. A Servlet is an object that receives a request and generates a response based on that request. The basic servlet package defines Java objects to represent servlet requests and responses, as well as objects to reflect the servlets configuration parameters and execution environment. The package javax.servlet.http defines HTTP-specific subclasses of the generic servlet elements, including session management objects that track multiple requests and responses between the Web server and a client. Servlets may be packaged in a WAR file as a Web application. Servlets can be generated automatically from JavaServer Pages (JSP) by the JavaServer Pages compiler. The difference between Servlets and JSP is that Servlets typically embed HTML inside Java code, while JSPs embed Java code in HTML. While the direct usage of Servlets to generate HTML (as shown in the example below) has become rare, the higher level MVC web framework in Java EE (JSF) still explicitly uses the Servlet technology for the low level request/response handling via the FacesServlet. A somewhat older usage is to use servlets in conjunction with JSPs in a pattern called "Model 2", which is a flavor of the model-viewcontroller pattern. Three methods are central to the life cycle of a servlet. These are init( ), service( ), and destroy( ). They are implemented by every servlet and are invoked at specific times by the server. Eclipse Eclipse is an integrated development environment (IDE). It contains a base workspace and an extensible plug-in system for customizing the environment. Written mostly in Java, Eclipse can be used to develop applications. By means of various plug-ins, Eclipse may also be used to develop applications in other programming languages: Ada, ABAP, C, C++, COBOL, 22 Fortran,Haskell, JavaScript, Lasso, Natural, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy, Scheme, and Erlang. It can also be used to develop packages for the software Mathematical. Development environments include the Eclipse Java development tools (JDT) for Java Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others. The initial codebase originated from IBM Visual Age. The Eclipse software development kit (SDK), which includes the Java development tools, is meant for Java developers. Users can extend its abilities by installing plug-ins written for the Eclipse Platform, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse SDK is free and open source software (although it is incompatible with the GNU General Public License. It was one of the first IDEs to run under GNU Classpath and it runs without problems under Iced Tea. About HTML HTML(HYPER TEXT MARUP LANGUAGE) is a language used to create hypertext documents that have hyperlinks embedded in them .You can build web pages. It is only a formatting language and not a programming language. Hyperlinks are underlined or emphasized words or locations in a screen that lead to other documents. WWW is a global, interactive, graphical, hypertext information system. The behind hypertext is that instead of reading text in rigid liner structure you can easily jump from point to another point .You can navigate through the information based on your interest and preferences. Hyper Media: HTML pages audio and video files linked to them are Hyper Media. MYSQL The following list shows the most important properties of MySQL. This section is directed to the reader who already has some knowledge of relational databases. We will use some terminology from the relational database world without defining our terms exactly. On 23 the other hand, the explanations should make it possible for database novices to understand to some extent what we are talking about. Relational Database System: Like almost all other database systems on the market, MySQL is a relational database system. Client/Server Architecture: MySQL is a client/server system. There is a database server (MySQL) and arbitrarily many clients (application programs), which communicate with the server; that is, they query data, save changes, etc. The clients can run on the same computer as the server or on another computer (communication via a local network or the Internet). SQL compatibility: MySQL supports as its database language -- as its name suggests – SQL (Structured Query Language). SQL is a standardized language for querying and updating data and for the administration of a database. There are several SQL dialects (about as many as there are database systems). MySQL adheres to the current SQL standard (at the moment SQL:2003), although with significant restrictions and a large number of extensions. SubSELECTs: Since version 4.1, MySQL is capable of processing a query in the form SELECT * FROM table1 WHERE x IN (SELECT y FROM table2) (There are also numerous syntax variants for subSELECTs.) Views: Put simply, views relate to an SQL query that is viewed as a distinct database object and makes possible a particular view of the database. MySQL has supported views since version 5.0. Stored procedures: Here dealing with SQL code that is stored in the database system. Stored procedures (SPs for short) are generally used to simplify certain steps, such as inserting or deleting a data record. For client programmers this has the advantage that they do not have to process the tables directly, but can rely on SPs. Like views, SPs help in the administration of large database projects. SPs can also increase efficiency. MySQL has supported SPs since version 5.0. 24 Triggers: Triggers are SQL commands that are automatically executed by the server in certain database operations (INSERT, UPDATE, and DELETE). MySQL has supported triggers in a limited form from version 5.0, and additional functionality is promised for version 5.1. Unicode: MySQL has supported all conceivable character sets since version 4.1, including Latin-1, Latin-2, and Unicode (either in the variant UTF8 or UCS2). User interface: There are a number of convenient user interfaces for administering a MySQL server. Full-text search: Full-text search simplifies and accelerates the search for words that are located within a text field. If you employ MySQL for storing text (such as in an Internet discussion group), you can use full-text search to implement simply an efficient search function. CONCLUSION In this paper, we formalized the ConBE primitive. In ConBE, anyone can send secret messages to any subset of the group members, and the system does not require a trusted key server. Neither the change of the sender nor the dynamic choice of the intended receivers require extra rounds to negotiate group encryption/decryption keys. Following the ConBE model, we instantiated an efficient ConBE scheme that is secure in the standard model. As a versatile cryptographic 25 primitive, our novel ConBE notion opens a new avenue to establish secure broadcast channels and can be expected to secure numerous emerging distributed computation applications. REFERENCES [1] J. Manyika, M. Chui, B. Brown, et al, “Big Data: The next frontier for innovation, competition, and productivity,” 2011. [2] C. Lynch, “Big Data: How do your data grow?” Nature, Vol. 455, No. 7209, p. 28-29, 2008. 26 [3] F. Chang, J. Dean, S. Ghemawat, and W. C. Hsieh, “Bigtable: A distributed storage system for structured data,” ACM Transactions on Computer Systems,Vol. 26, No. 2 (4) , 2008. [4] W. Dou, X. Zhang, J. Liu, J. Chen, “HireSome-II: Towards Privacy-Aware Cross-Cloud Service Composition for Big Data Applica-tions,” IEEE Transactions on Parallel and Distributed Systems, 2013. [5] G. Linden, B. Smith, and J. York, “Amazon.com Recommendations: Item-toItem Collaborative Filtering,” IEEE Internet Computing, Vol. 7, No.1, pp. 76-80, 2003. [6] M. Bjelica, “Towards TV Recommender System Experiments with User Modeling,” IEEE Transactions on Consumer Electronics, Vol. 56, No.3, pp. 17631769, 2010. [7] M. Alduan, F. Alvarez, J. Menendez, and O. Baez, “Recommender System for Sport Videos Based on User Audiovisual Consumption,” IEEE Transactions on Multimedia, Vol. 14, No.6, pp. 1546-1557, 2013. [8] Y. Chen, A. Cheng and W. Hsu, “Travel Recommendation by Min-ing People Attributes and Travel Group Types From Community-Contributed Photos”.IEEE Transactions on Multimedia, Vol. 25, No.6, pp. 1283-1295, 2012. [9] Z. Zheng, X Wu, Y Zhang, M Lyu, and J Wang, “QoS Ranking Pre-diction for Cloud Services,” IEEE Transactions on Parallel and Dis-tributed Systems, Vol. 24, No. 6, pp. 1213-1222, 2013. [10] W. Hill, L. Stead, M. Rosenstein, and G. Furnas, “Recommending and Evaluating Choices in a Virtual Community of Use,” In CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Com-puting System, pp. 194-201, 1995. 27 [11] P. Resnick, N. Iakovou, M. Sushak, P. Bergstrom, and J. Riedl, “GroupLens: An Open Architecture for Collaborative Filtering of Netnews,” In CSCW '94 Proceedings of the 1994 ACM conference on Computer supported cooperative work, pp. 175-186, 1994. [12] R. Burke, “Hybrid Recommender Systems: Survey and Experi-ments,” User Modeling and User-Adapted Interaction, Vol. 12, No.4, pp. 331-370, 2002. [13] G. Adomavicius, and A. Tuzhilin, “Toward the Next Generation of Recommender Systems: A Survey of the Stateof- the-Art and Possi-ble Extensions,” IEEE Transactions on Knowledge and Data Engi-neering, Vol.17, No.6 pp. 734-749, 2005. [14] D. Agrawal, S. Das, A. El Abbadi, “Big Data and cloud computing: new wine or just new bottles?” Proceedings of the VLDB Endow-ment, Vol. 3, No.1, pp. 1647-1648, 2010. [15] J. Dean, and S. Ghemawat, “MapReduce: Simplified data processing on large clusters,” Communications of the ACM, Vol. 51, No.1, pp. 107-113, 2005. [16] G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Laksh-man, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels, “Dynamo: Amazons highly available key-value store,” In: Proceed-ings of the 21st ACM Symposium on Operating Systems Principles, pp. 205-220, 2007. [17] M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly, “Dryad:Distributed data-parallel programs from sequential build-ing blocks,” European Conference on Computer Systems, pp. 59-72, 2007. [18] S. Ghemawat, H. Gobioff, and S. T. Leung, “The Google File Sys-tem,” The 19th ACM Symposium on Operating Systems Principles, pp. 29-43, 2003. 28 [19] L. Zhang, “Editorial: Big Services Era: Global Trends of Cloud Computing and Big Data”. IEEE Transactions on Services Compu-ting, Vol. 5, No. 4, pp. 467468, 2012. [20] Z. Luo, Y. Li and J. Yin, “Location: a feature for service selection in the era of big data,” 2013 IEEE 20th International Conference on Web Service, pp. 515522, 2013. [21] H. Schütze and J. O. Pedersen, “A cooccurrence-based thesaurus and two applications to information retrieval,” Information Processing & Management, Vol. 33, No. 3, pp. 307-318, 1997. [22] Y. Jing and W. Croft, “An association thesaurus for information retrieval,” Proceedings of RIAO, Vol. 94, No. 1994, pp.146-160, 1994. [23] B. Issac and W. J. Jap, “Implementing spam detection using baye-sian and porter stemmer keyword stripping approaches,” TEN-CON 2009-2009 IEEE Region 10 Conference, pp. 1-5, 2009. [24] P. Castells, M. Fernandez, and D. Vallet, “An Adaptation of the Vector-Space Model for Ontology-Based Information Retrieval,” IEEE Transactions on Knowledge and Data Engineering, Vol. 19, No.2, pp. 261-272, February 2007. [25] Y. Zhu, Y. Hu,”Enhancing search performance on Gnutella-like P2P systems,” IEEE Transactions on Parallel and Distributed Sys-tems, Vol. 17, No. 12, pp. 1482-1495, 2006. [26] A. Chu, R. Kalaba, and K. Spingarn, “A comparison of two me-thods for determining the weights of belonging to fuzzy sets”, Journal of Optimization Theory and Applications, Vol. 27, No.4, pp.531-538, 1979. 29 [27] G. Salton, “Automatic Text Processing,” Addison-Wesley, 1989. [28] B. Sarwar, G. Karypis, J. Konstan, J. Riedl, “Item-based collabora-tive filtering recommendation algorithms,” Proceedings of the 10th international conference on World Wide Web, pp. 285-295, 2001. [29] K. Lakiotaki, N. F. Matsatsinis, and A. Tsoukis,“Multi-Criteria User Modeling in Recommender Systems”, IEEE Intelligent Sys-tems, Vol. 26, No. 2, pp. 64-76, 2011. [30] Y. Pan, L. Lee, “Performance analysis for lattice-based speech in-dexing approaches using words and subword units,” IEEE Transac-tions on Audio, Speech, and Language Processing, Vol. 18, No. 6, pp. 1562-1574, 2010. [31] G. Kang, J. Liu, M. Tang, X. Liu and B. cao, “AWSR: Active Web Service Recommendation Based on Usage History,” 2012 IEEE 19th International Conference on Web Services (ICWS), pp. 186-193, 2012. [32] G. M. Amdahl, “Validity of the single-processor approach to achieving large scale computing capabilities,” Proceedings of spring joint computer conference, pp. 483-485, 1967. [33] X. Yang, Y. Guo, Y. Liu, “Bayesian-inference based recommenda-tion in online social networks,” IEEE Transactions on Parallel and Distributed Systems, Vol. 24, No. 4, pp. 642-651, 2013. [34] G. Adomavicius, and Y. Kwon, “New Recommendation Tech-niques for Multicriteria Rating Systems,” IEEE Intelligent Systems, Vol. 22, No. 3, pp. 48-55, 2007. 30 [35] Z. D. Zhao, and M. S. Shang, "User-Based Collaborative-Filtering Recommendation Algorithms on Hadoop," In the third Internation-al Workshop on Knowledge Discovery and Data Mining, pp. 478-481, 2010. [36] H. Liang, J. Hogan, and Y. Xu, “ Parallel User Profiling Based on Folksonomy for Large Scaled Recommender Systems: An Impli-mentation of Cascading MapReduce,” In Proceedings of the IEEE International Conference on Data Mining Workshops, pp. 156-161, 2010. [37] Y. Jin, M. Hu, H. Singh, D. Rule, M. Berlyant, and Z. Xie, “MyS-pace Video Recommendation with Map-Reduce on Qizmt,” Pro-ceedings of the 2010 IEEE Fourth International Conference on Se-mantic Computing, pp.126-133, 2010.