Generic Email Connector for Mobile Devices



International Symposium on Emerging Inter-networks, Communication and Mobility (EICM)Generic Email Connector for Mobile DevicesHamid Mcheicka,, Alexandre Poirriera, Jabril Abdelaziza, Abass LakissbaUniversity of Quebec at Chiucoutimi, 555 Boul De l'Universite, Chicoutimi, G7H-2B1, Canada bLebanese Univerity, LebanonAbstractWith today’s technologies focus on mobility and portability, mobile networks suffer more and more from the increasing traffic load. This is due to the fact that millions of email servers are now prompting the network providers to notice their clients when emails are ready to be read using proprietary protocols like MS Exchange. This work improves our existing software connector model by giving the opportunity to use existing protocols such as IMAP, POP3 and so forth. Generic XML-based definition of both the client and the protocol of target system has been introduced. The implementation of a software solution has been done in order to illustrate the work follow of designing a connector based on the model.? 2014 The Authors. Published by Elsevier B.V.Peer-review under responsibility of the Program Chairs of EICM-2014.Keywords: Connector design; Mobile applications; MiddlewareIntroductionDistributed Systems take advantage of the computing power in components that exist on several networked devices. Today's electronic device market is no more restricted to desktop computers, it includes many different devices such as tablets, smartphones and even cars. In terms of architecture, connector and component are two key concepts to understand logical organization of software ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "ISBN" : "0470167742", "abstract" : "Software architecture is foundational to the development of large, practical software-intensive applications. This brand-new text covers all facets of software architecture and how it serves as the intellectual centerpiece of software development and evolution. Critically, this text focuses on supporting creation of real implemented systems. Hence the text details not only modeling techniques, but design, implementation, deployment, and system adaptation -- as well as a host of other topics -- putting the elements in context and comparing and contrasting them with one another. Rather than focusing on one method, notation, tool, or process, this new text/reference widely surveys software architecture techniques, enabling the instructor and practitioner to choose the right tool for the job at hand. Software Architecture is intended for upper-division undergraduate and graduate courses in software architecture, software design, component-based software engineering, and distributed systems; the text may also be used in introductory as well as advanced software engineering courses.", "author" : [ { "dropping-particle" : "", "family" : "Taylor", "given" : "Richard N.", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Medvidovic", "given" : "Nenad", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Dashofy", "given" : "Eric", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2009" ] ] }, "page" : "736", "publisher" : "Wiley", "title" : "Software Architecture: Foundations, Theory, and Practice", "type" : "book" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[1]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[1]. In point of fact, every device has its own email client (clients) connecting to various email servers through various protocols (SMTP, POP3, IMAP). These protocols are used by Outlook, Gmail and many other email servers. The main goal is to be able to create a software solution which does not involve any extra work from the wireless network operator. However, this also makes the connectors in a key determinant of system’s properties such as performance, scalability, reliability, security, and so forth; placing monolithic challenges on the way these connectors are to be designed and deployed. As a result, the predominant focus of researchers and practitioners has been to better design connectors to meet these challenges. Our previous work ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "author" : [ { "dropping-particle" : "", "family" : "Mcheick", "given" : "Hamid", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Qi", "given" : "Yan", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Mili", "given" : "Hafedh", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "container-title" : "International Journal of Computer \u2026", "id" : "ITEM-1", "issue" : "1", "issued" : { "date-parts" : [ [ "2011" ] ] }, "page" : "32-41", "title" : "Scenario-Based Software Architecture for Designing Connectors Framework in Distributed System.", "type" : "article-journal", "volume" : "8" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[2]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[2] proposed a Scenario-Based Software Model for designing connectors in distributed systems. The model combined three prominent technologies: Aspect-Oriented Programming (AOP), Design Patterns, and Program Slicing to maintain the independency of components and to reduce the cost of maintenance when adding new connectors. Following to same vision, in ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "DOI" : "10.1109/CCECE.2011.6030542", "ISBN" : "978-1-4244-9788-1", "ISSN" : "0840-7789", "author" : [ { "dropping-particle" : "", "family" : "Mcheick", "given" : "Hamid", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Qi", "given" : "Yan", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "container-title" : "2011 24th Canadian Conference on Electrical and Computer Engineering(CCECE)", "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2011", "5" ] ] }, "page" : "000691-000694", "publisher" : "IEEE", "title" : "Dependency of components in MVC distributed architecture", "type" : "paper-conference" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[3]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[3] we proposed a layered model to design connectors in distributed MVC architecture. The layered model enables developers to understand all design, implementation and maintenance aspects of connectors. Moreover, developers are guided through a process of high-level connector design, in which each layer is responsible for satisfying its functionalities and corresponding quality attributes.In this paper, we aim to improve our generic connector model and to implement it as a framework for a “simulated push protocol” connector. Our contribution will, therefore, be a continuation of previous project and consists of adding the support for IMAP protocol and extra device carriers. The aimed enhancement implies finding a way to determine what protocol the connecting email client is using to interact with the email server, since so far the project only supports POP3 protocol. In addition, functionalities to insure interaction with IMAP email servers are implemented. Subsequently, a code adaptation is in order to guarantee a full transparency to the user.The rest of this paper is organized into sections as follows: Section 2 describes related work. Then, Section 3, presents briefly a generic connector model and the different accomplished steps to improve existing connector model ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "DOI" : "10.1109/ICCITechnol.2012.6285850", "ISBN" : "978-1-4673-1950-8", "abstract" : "Software architecture has a vital role in achieving quality goals for large scale software systems which is made up of components and connectors. For reducing the complexity of software, components and connectors are applied to understanding, designing, and implementing software, especially connectors residing in distributed systems. To satisfy requirements of interaction between various components, it is time and cost consuming process to create a connector. In particular, it is often difficult to select only one type of connector to develop connectors in distributed systems. To address the difficulties, our research focuses on the issue: how do traditional types of connectors, in combination with new technologies in distributed systems, provide systems architectures with loosely coupled structures. In this paper, we propose an approach to the combination of connectors in order to provide distributed systems with loosely coupled interaction. Our approach involves AOP technology and design pattern, as well as messaging systems. In the end, we present an example of our approach in which we show a connector designed by combining the AspectJ, shared memory, UDP Socket and publish-subscribe design pattern with the aim of designing a loosely coupled system architecture.", "author" : [ { "dropping-particle" : "", "family" : "Mcheick", "given" : "Hamid", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "container-title" : "2012 International Conference on Communications and Information Technology (ICCIT)", "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2012", "6" ] ] }, "page" : "97-101", "publisher" : "IEEE", "shortTitle" : "Communications and Information Technology (ICCIT),", "title" : "Combination of connectors with loosely coupled architecture based on aspect-oriented computing", "type" : "paper-conference" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[4]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[4]. Study case and results are given in Section 4. Section 5 discusses these results and concludes this paper.Related workUsually, connectors are designed for target systems. The architecture of such connectors is based on either the APIs or the data type and schema the target system do support and use. This means that the designed connector is tightly integrated with its target system. Indeed, the use of an application-specific connector is the preferred integration method, and this, if one is available for the target system. Out there, many email connectors exist, but they are used for either automatically data parsing and extracting or to merge many different email accounts into one regardless of the used protocols. CommitCRM ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "author" : [ { "dropping-particle" : "", "family" : "CommitCRM", "given" : "", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2014" ] ] }, "number" : "7.0", "title" : "CommitCRM 7.0", "type" : "article" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[5]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[5], named after its company, provides CommitCRM Email Connector used by customer services to file and sort emails into tickets for their support system. This acts more as a middleware than as a connector, in the sense that it does not connect different technologies to work together.F-Response ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "author" : [ { "dropping-particle" : "", "family" : "F-Response", "given" : "", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2014" ] ] }, "number" : "5.0.3", "title" : "F-Response 5.0.3", "type" : "article" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[6]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[6] develop and maintain an email connector incorporated with their software solutions. Like the first case, this one is not generic and does not serve any other purpose than to manage the different protocols and retrieve emails. In the market, one can see a lack of generic connectors that can be used for multiple kind of email server.Generic Email ConnectorLayered software architecture is typically adopted to distribute software into different layers to reduce software design complexity . Since the software architecture is distributed on separated layers, the corresponding functionalities and quality attributes are correspondingly separated into layers. By nature, connectors, in contrast to components, are explicit architectural entities that bind components together and act as mediators between them. This separation from components eases the isolation of interaction concerns (communication, coordination, conversion, facilitation) for the sake of reusability and evolvability of components. In case components are localized at different nodes of a distributed system, the cooperation between the distant components is determined by the semantics of the connectors, which connect them.According to the properties of such connectors, we provide a description of connectors in distributed system:“Connectors link distributed components by using some formatted information according to the dependencies (relationships) between them.”In light of this description, and according to the architectural drivers ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "ISBN" : "0321154959", "abstract" : "This award-winning book, substantially updated to reflect the latest developments in the field, introduces the concepts and best practices of software architecture--how a software system is structured and how that system's elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization's business strategy. Drawing on their own extensive experience, the authors cover the essential technical topics for designing, specifying, and validating a system. They also emphasize the importance of the business context in which large systems are designed. Their aim is to present software architecture in a real-world setting, reflecting both the opportunities and constraints that companies encounter. To that end, case studies that describe successful architectures illustrate key points of both technical and organizational discussions. Topics new to this edition include: Architecture design and analysis, including the Architecture Tradeoff Analysis Method (ATAM) Capturing quality requirements and achieving them through quality scenarios and tactics Using architecture reconstruction to recover undocumented architectures Documenting architectures using the Unified Modeling Language (UML) New case studies, including Web-based examples and a wireless Enterprise JavaBeans\u2122 (EJB) system designed to support wearable computers The financial aspects of architectures, including use of the Cost Benefit Analysis Method (CBAM) to make decisions If you design, develop, or manage the building of large software systems (or plan to do so), or if you are interested in acquiring such systems for your corporation or government agency, use Software Architecture in Practice, Second Edition, to get up to speed on the current state of software architecture.", "author" : [ { "dropping-particle" : "", "family" : "Bass", "given" : "Len", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Clements", "given" : "Paul", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" }, { "dropping-particle" : "", "family" : "Kazman", "given" : "Rick", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2003" ] ] }, "page" : "528", "publisher" : "Addison-Wesley Professional", "title" : "Software Architecture in Practice", "type" : "book" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[7]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[7], we proposed a layered model called “Connector Stack” which comprises three modules (e.g. layers): the Transport layer, the Dependencies layer, and the Presentation layer. This model easies the design and analysis of connectors ( REF _Ref389584492 \h Fig. 1.). Fig. SEQ Fig. \* ARABIC 1. Connector stack541655144145The Transport layer, situated in the base of the connector design, is responsible for basic delivery of messages in the network. It is also used to support the dependencies or relationships between components. Typically, transport layer is implemented by network protocols (such as TCP/IP, HTTP protocol stacks) or messaging systems (WebSphere MQ/ Open Message Queue etc.). The Dependencies layer describes the dependencies of components in detail. To fulfill this goal, object design patterns or architectural patterns can be used to implement it. Most patterns can provide the loosely coupled dependency mechanism for the system, such as the Publish-Subscribe. The Presentation layer is responsible for building the transferred information depending on the type, format and the amount of information. Connector Stack provides a way to design and analyze connector by dividing the connector into separate layers. Each layer is an important part of connectors. For example, we implemented a connector in distributed system by choosing UDP/IP protocol, Publish-Subscribe architecture pattern and a simple text-formatted messages. There are some phases in the process to achieve the goals introduced for our contribution to this study:Design an XML template that will identify the email clientsModify the currently hardcoded protocols and scenarios to be generic and take real inputsAdd support for another emails fetching protocol (IMAP in this case)Modify the Android testing device to use the proposed XML templateTest both supported protocols using the Android test deviceThese steps have been validated through the following case study. This model has been already validated for a specific email server in a previous work ADDIN CSL_CITATION { "citationItems" : [ { "id" : "ITEM-1", "itemData" : { "DOI" : "10.1109/ICCITechnol.2012.6285850", "ISBN" : "978-1-4673-1950-8", "abstract" : "Software architecture has a vital role in achieving quality goals for large scale software systems which is made up of components and connectors. For reducing the complexity of software, components and connectors are applied to understanding, designing, and implementing software, especially connectors residing in distributed systems. To satisfy requirements of interaction between various components, it is time and cost consuming process to create a connector. In particular, it is often difficult to select only one type of connector to develop connectors in distributed systems. To address the difficulties, our research focuses on the issue: how do traditional types of connectors, in combination with new technologies in distributed systems, provide systems architectures with loosely coupled structures. In this paper, we propose an approach to the combination of connectors in order to provide distributed systems with loosely coupled interaction. Our approach involves AOP technology and design pattern, as well as messaging systems. In the end, we present an example of our approach in which we show a connector designed by combining the AspectJ, shared memory, UDP Socket and publish-subscribe design pattern with the aim of designing a loosely coupled system architecture.", "author" : [ { "dropping-particle" : "", "family" : "Mcheick", "given" : "Hamid", "non-dropping-particle" : "", "parse-names" : false, "suffix" : "" } ], "container-title" : "2012 International Conference on Communications and Information Technology (ICCIT)", "id" : "ITEM-1", "issued" : { "date-parts" : [ [ "2012", "6" ] ] }, "page" : "97-101", "publisher" : "IEEE", "shortTitle" : "Communications and Information Technology (ICCIT),", "title" : "Combination of connectors with loosely coupled architecture based on aspect-oriented computing", "type" : "paper-conference" }, "uris" : [ "" ] } ], "mendeley" : { "previouslyFormattedCitation" : "[4]" }, "properties" : { "noteIndex" : 0 }, "schema" : "" }[4]. For this work, this model is validated with different protocols (POP, IMAP). Next section shows the detail of these steps to dynamically configure these protocols and their corresponding email servers.Case Study and ResultsThe XML template<!DOCTYPE Info[<!ELEMENT Info (Email, Password, Protocol, ServerAdress, TimeRequested?)><!ELEMENT Email (#PCDATA)><!ELEMENT Password (#PCDATA)><!ELEMEMT Protocol (#PCDATA)><!ELEMENT ServerAdress (#PCDATA)><!ELEMENT TimeRequested (#PCDATA)> <!-- Optionelle -->]>The first step to board, to be able to support more than one protocol with the connector, is to be able to identify which protocol is used by the connecting client. It has been decided to use an XML file which the client sends to the connector. The XML file follows this DTD:The connector is then built by the server especially for this client using the requested protocol. We are aware that this is not the best way to approach this issue. Since it means that to be able to use this connector, every existing email client would need to integrate this XML file, and therefore the obligation to change the source code. Finding a way to determine the connecting protocol without using an XML file is to be treated in future works.Code Cleaning and Adding Support for the IMAP ProtocolPreviously, the email server would not take any input to specify which protocol or even which email service would be used. This was specified as a hardcoded String in the server's source code. The user is now prompted to input the protocol used along with the email server's URL on the android application's login page. The user interface is explained in subsection 4.3.The file MailServer.java has been modified to parse the XML String sent by the email client. As result, a MailReaderBean object is instantiated using the parsed information:mrb = new MailReaderBean(Protocol.getText().toLowerCase(), providerAdress.getText() , mailAdress.getText(), password.getText(), "inbox", IPAddress, LISTENING_PORT);Ultimately, the connector would compare the part after the <<@>> against a database to find the correct provider's URL. For testing purposes, the URL was selected from a list box in the android application.The MailReaderBean class had an extensive overhaul as well. First, it was restructured and extended to make it easy to add support for more protocols in the future.if(pareTo("pop3") == 0){Properties pop3Props = new Properties(); pop3Props.setProperty("mail.pop3s.port", "995"); session = Session.getInstance(pop3Props, null); Store store = session.getStore("pop3s"); store.connect(host, 995, user, password); top = store.getFolder(rootName); listFolder(top, session, false);} else { if(pareTo("imap") == 0) { Store store = session.getStore("imap"); store.connect(host, user, password); }}Updating the Android testing applicationThe Android application as it was given was only used to create the email connector by sending the connection data. We decided to update it providing two ways: i) to be used for a more extensive testing of the connector and ii) to be easily extendable for more protocols and email service providers.1457325154940Fig. 2. User interface of Android deviceAs illustrated in REF _Ref389604622 \h Fig. 3, there is no need to input the server's IP. In exchange, we added possibility to select the email service provider's URL and the protocol used. The system GUI given acts as a console and gives feedback regarding the application's status. For example, if everything goes well with the login on the server side, it will send a <<Login approved!>> message that will be displayed in the system ( REF _Ref389604834 \h Fig. 3).Fig. 3. DialogBox of the message received by Android device1567373750653To facilitate the extension of the testing application, the list of supported protocol is implemented as an XML file. Therefore, if one want to add support for any other protocol or email provider, a simple modification of this XML file may be needed to add any new protocol. In this example, POP3 and IMAP are added. Gmail and Yahoo can be added to existing email servers respectively, using <pop.> and <pop.mail.yahoo.fr>.<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="protocolArray"> <item>POP3</item> <item>IMAP</item> </string-array> <string-array name="providerArray"> <item>pop3.</item> <item>imap-mail.</item> </string-array></resources>Discussion, Conclusion and Future WorksThis paper proposed a generic email connector for mobile devices. A case study, using Android, IMAP and POP protocols has been used as a proof of the proposed concept. This work came to improve the existing software connector model. The generic connector has been developed using different technologies in order to come up with extensible solution. In the realization of this model, Aspect-Oriented Programming has been used in our implementation. This approach along with design and architectural patterns are combined to resolve the problems of designing generic and extensible connector.AcknowledgementsThis work is supported by the Department of computer science at the University of Quebec at Chicoutimi (QC), Canada.ReferencesADDIN Mendeley Bibliography CSL_BIBLIOGRAPHY [1]Taylor RN, Medvidovic N, Dashofy E. Software Architecture: Foundations, Theory, and Practice. Wiley; 2009.[2]Mcheick H, Qi Y, Mili H. Scenario-Based Software Architecture for Designing Connectors Framework in Distributed System. Int J Comput … 2011;8:32–41.[3]Mcheick H, Qi Y. Dependency of components in MVC distributed architecture. 2011 24th Can. Conf. Electr. Comput. Eng., IEEE; 2011, p. 000691–4.[4]Mcheick H. Combination of connectors with loosely coupled architecture based on aspect-oriented computing. 2012 Int. Conf. Commun. Inf. Technol., IEEE; 2012, p. 97–101.[5]CommitCRM. CommitCRM 7.0 2014.[6]F-Response. F-Response 5.0.3 2014.[7]Bass L, Clements P, Kazman R. Software Architecture in Practice. Addison-Wesley Professional; 2003. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download