text:
"This is no longer the quiet place," Roger Ashcraft, assistant in the iLearn Commons, said of his new workspace. "This area is designed for group collaboration."
Located on the second floor of Loden-Daniel Library in the area formerly devoted to children's literature, the Commons opened to students near the end of the spring semester. It has five collaborative areas, each arranged around HDTVs with wireless connectivity. Three additional spaces at the collaboration bar are outfitted with HDTVs, Ethernet connectivity and charging stations. Comfortable rolling chairs and a conference table furnish the space.
Ashcraft provides assistance in using technology for academic projects. He even makes "house" calls. This spring he visited Jamie Holtin's Fundamental Concepts of Mathematics class to instruct students in movie-making. "One of the things that excites me about the iLearn Commons is that it gives my students a place to get technical help with projects, which frees me to focus on the content," Holtin said. She appreciates having support available during the time of day students are most likely to be working on projects—afternoon and evening. "I also like that Roger will come and talk to my class and then he is in the Commons to assist them," she said. "It keeps the instructions consistent."
Currently, the iLearn Commons is first-come, first-served, although students with technological assignments in general education classes have first priority. When demand increases in the fall, another system may be employed. Ashcraft is available to help students at the "genius bar" Monday-Thursday, 1-10 p.m. and Friday, 1-5 p.m., during the regular semester.
The iLearn Commons was developed in conjunction with the iLearn Program, a part of the university's five-year Quality Enhancement Plan (QEP), required by the Southern Association of Colleges and Schools (SACS). FHU's QEP seeks to determine the effects of technology in the classroom. Teachers of general education courses are being trained to use technology more effectively and student learning is being assessed. The QEP and iLearn are under the direction of Dr. Monte Tatom.
"In my opinion," Ashcraft said, "this is going to be a very useful space."
Freed-Hardeman University
158 E. Main Street Henderson, TN 38340 • Contact Seasons
Copyright © 2013 Freed-Hardeman University. All rights reserved.


text:
Christina Lagdameo Receives Prestigious Award from AAUW, NASPAJune 02, 2010
Lisa Goodnight, email@example.com
Deputy at White House Initiative on Asian Americans, Pacific Islanders Has Long Focused on Empowering People of Color, Women
WASHINGTON — Christina Lagdameo, deputy director of the White House Initiative on Asian Americans and Pacific Islanders, will receive the prestigious AAUW/NASPA Women of Distinction Award at the 2010 National Conference for College Women Student Leaders (NCCWSL). This year's ceremony, which will be held at the University of Maryland, College Park, on Thursday, June 3, marks the 25th anniversary of the conference.
The 2010 Women of Distinction Awards pay tribute to leaders who have made extraordinary contributions in their professions or in their communities. In addition to Lagdameo, the following individuals will be honored:
- Dorothy Height (in memoriam), chair and president emerita, National Council of Negro Women
- Patti Solis Doyle, partner, Utrecht & Phillips, a Washington, D.C., law firm,and first Hispanic woman to run a major U.S. presidential campaign
- Marie Tillman, founder and chair of the Pat Tillman Foundation
- Nomfundo Walaza, chief executive officer, Desmond Tutu Peace Centre in Cape Town, South Africa
Lagdameo and the other 2010 Women of Distinction honorees join a prestigious group of more than 100 women who have been celebrated in conjunction with the National Conference for College Women Student Leaders since the inception of the conference in 1985.
Working to Empower Minorities
Long committed to the social, economic, and political empowerment of marginalized communities, including low-income individuals, women, and youth, Lagdameo worked for the White House Office of Management and Budget from 2000 to 2007. During that time she examined more than $45 billion in federal income support programs, including the Earned Income Tax Credit, Refugee Resettlement, and issues relating to asset poverty. Before her April 2010 appointment as deputy director of the White House Initiative on Asian Americans and Pacific Islanders for the Obama administration, where she works to improve the quality of life of Asian Americans and Pacific Islanders, Lagdameo worked in India for an organization that rescues and rehabilitates women and children survivors of sex trafficking. She also has worked with the Organization for Economic Cooperation and Development in Paris on an e-government financing project.
Lagdameo has mentored girls through programs such as the Asian American LEAD program, a nonprofit for Vietnamese refugees, and the New York City-based "I Have a Dream" program. She was formerly chair of the national board for the National Asian Pacific American Women's Forum, the only multi-issue, progressive, community organizing, and policy advocacy organization for Asian and Pacific Islander women and girls in the United States.
As an undergraduate at the University of Maryland, Lagdameo led a successful campaign to establish the first Asian American studies program in the Washington, D.C., metropolitan area and later received one of the first Asian American studies certificates from the school. In 1998, she was inducted into Omicron Delta Kappa, the national Leadership Honor Society, and in 2008, she received the Outstanding Young Alumnus Award from the University of Maryland, College Park, for distinguishing herself as a young graduate both personally and professionally.
A Woodrow Wilson Public Policy and International Affairs Fellow and a Presidential Management Fellow, Lagdameo received her master's degree in urban policy from the New School for Social Research in New York City.
2010 NCCWSL Events and Sponsors
As part of this year's 25th anniversary celebration of the National Conference for College Women Student Leaders and its awards program, a special reception will be held for this year's honorees. Several past honorees will attend this celebration, including Amy Richards, Soapbox: Speakers Who Speak Out, Inc.; Brigadier General Wilma L. Vaught, USAF, and president, Women in Military Service for America Memorial Foundation, Inc.; and Dorothy Gilliam, founder and director of the Prime Movers Media Program at the School of Media and Public Affairs, George Washington University.
The Ruth Z. Sweetser Honorary Fund and Prudential are platinum sponsors of the 2010 National Conference for College Women Student Leaders. Other conference sponsors include the University of Maryland, College Park, and The Princeton Review.
Since 1985, the National Conference for College Women Student Leaders has provided a platform to help thousands of college and university women to develop leadership skills, network with other student leaders, and interact with women who hold leadership positions. The conference is presented each June by AAUW and NASPA.

subset: commoncrawl


text:
Getting Around Puerto Vallarta
The best way to get around Puerto Vallarta is on a bus — there are plenty of stops and the fare is cheap. If you're looking for a less bumpy ride (though not by much) you can also take a taxi. The bus is also the best means of getting from PV's Licenciado Gustavo Diaz Ordaz International Airport (PVR) to the hotel zones. Renting a car is also an option, but you'll pay hefty fees for the privilege.
|Rental cars offer easy access to all of the main attractions throughout Puerto Vallarta, but rates can be expensive and driving through the city's steep bumpy streets can be terrifying. If you're going to rent a car, book online before your arrival. And remember to always lock your valuables in the trunk out of plain sight.
|Taxis are an excellent, inexpensive way to get around the city — you just need some street smarts. Fare is charged by zone, not meter, so ask the driver for a rate sheet to keep track. The minimum fare is usually around 40 pesos, but rides from the airport to most hotels will cost around $10 USD. Purchase a map and consult it yourself, so that you can ensure you're getting where you need to go quickly (and cheaply). And keep in mind that tipping isn't necessary unless the driver helps with your bags.
|If you're not in the mood to argue over fare with a cabbie, this makes for a great alternative. PV buses service the downtown area, as well as the Hotel Zone and Marina Vallarta, and they're pretty cheap. Hold on tight to your ticket, literally. An inspector might come by at any time to check, not to mention that drivers tend to zip and race through the streets. Take the green buses around town, and look for a gray bus if you're interested in road trips to the small beach town of Bucerías or going even farther out (to places like Mexico City, Guadalajara and Mazatlán). There are no transfers with tickets, so if you plan on taking two buses to reach your destination, be sure to buy two tickets. For more information, check out the Visit Vallarta website.
Entry & Exit Requirements
Citizens of the United States need a passport to visit Mexico. Travelers must also carry a Mexican Tourist Permit, which is usually issued free of charge upon arrival. Any additional fees for the tourist permit are usually absorbed in the cost of your plane ticket. Be sure to hold onto this card throughout your trip, as you will need to present it upon departure. For more information on entry and exit requirements, visit the U.S. State Department's website.


text:
Fury at memorial mess on eve of war parade
Last updated at 14:36, Friday, 25 April 2014
Maryport's Memorial Gardens are a disgrace to the memory of the town's fallen, servicemen have claimed.
On the eve of a parade to commemorate World War One, it has emerged that a row over the gardens' ownership has led to the area becoming run down and the cenotaph scratched.
Maryport Town Council says that responsibility for the gardens was transferred to Allerdale council in the 1970s, but the district authority said this week that the area does not belong to it.
Youth organisations will take part in a parade tomorrow to commemorate the centenary of the start of World War One.
Allerdale council has pledged that the gardens, which have been strewn with litter and dog mess, will be tidy for the event.
David Gilhespy, a fourth generation serviceman from Flimby and member of the Combined Services Association, said: "The vandalism and lack of respect shown by irresponsible users of the gardens desecrates the memory of those who died."
Adrian Kirkbride, of Flimby, said: "It is just so disrespectful."
Last year, former Maryport mayor Vince Mulgrew signed an affidavit to state that the gardens had been transferred to Allerdale when the borough council was formed and the old urban authority disbanded.
But Allerdale council disputes that the gardens belong to it.
Town councillor Peter Kendall and county councillor Keith Little, along with local organisations such as the Lions, have previously cleaned the gardens and the cenotaph before Remembrance Sunday parades because of concern that it would not otherwise be done.
An Allerdale council spokeswoman said a council team had landscaped the area around the war memorial with new trees and grasses.
She added: "There has been some damage in recent weeks too and we hope we can work with the community to encourage those who have vandalised the area to treat the park, and particularly the war memorial, with more respect."
Tomorrow's parade, which will also celebrate St George's Day, has been organised by Maryport Rotary Club and begins at 2pm in Fleming Square.
The parade will march down High Street and along Wood Street to the gardens where the Rev Susan McKendrey will say a prayer
Two wreaths will be laid on behalf of the youth of the town and the town council.
The parade will then proceed along Curzon Street and up Senhouse Street to the Maryport Navy Club on South Quay, where the sea cadets will raise the flag.
Organisations taking part include Flimby Brass Band, Cockermouth Mechanics Band, army and sea cadets, Dearham Boys' Brigade, Flimby Girls' Brigade and Cubs and Scouts.
First published at 13:06, Friday, 25 April 2014
Published by http://www.timesandstar.co.uk
Have your say
So I suppose the fact that Allerdale claim they own the land on their allerdale.gov.uk site means nothing. A brown area on the map clearly cover the memorial gardens.
There are bye laws some which are pretty useful to clamp down on these type of carries on. These cover climbing on the walls and monument, cycling, flower beds, litter and a few more just needs some one to get a grip.
Every time I pass the park there's always some lazy cretin walking their dog in there. With all the space we have round here you'd think they would walk their dog anywhere else. There's the beaches, coastal park etc. but no. It's obviously too much hard work to walk the dog more than 400 yards.
Easy solution - a copper with a camera next to the park. Takes a photo of blokes dog emptying itself then hands him an £80 fine. He's got the evidence. Should also consider taking the dog off him and rehoming it with somebody less idle.


text:
Tom Opre
Tom Opre has come a long way since htose days following his outdoor writing father, columnist Tom E. Opre )Detroit Free Press, Field & Stream and Outdoor LIfe), chasing english Setters in the grouse woods or casting a dry fly on the famed "Holy†waters of the Au sable river in Michigan. Opre has been the owner of Tahoe Fils, Ltd., a full service film and video production company, since 1990. He worked on the popular PBS program Michigan Outdoors. From there he went on to work for legendary outdoor filmmaker Glen Lau; to producing documentary films for Shark Week on the Discovery Channel and Alligator for PBS; to directing national TV commercial projects including: Federal Cartridge (Addy Award for Best Sporting Goods Commercial in U.S.), Mathews Archery (Switchback, Z7 Extreme), Aimpoint, Otis Technology, Warn Industries, Berkley, Sea Doo, Polaris ATV, and Chevrolet; to directing and producing extreme sports films; including Extreme Velocity: Sled Heads and Extreme Velocity: Mountains & Mud.
Thank you for visiting Tahoe Films. We appreciate your support and patronage. If you would like to provide additional support for this blog, please use the following controls. Thank you.


text:
Rep. Gloria Negrete McLeod (D-Chino) will be holding a town hall meeting on Saturday to inform residents and small businesses about the changing health care system in California and the benefits from the Affordable Care Act.
Rep. Negrete McLeod represents communities of Bloomington, Chino, Montclair, Ontario, Pomona, and portions of Fontana and Rialto-California's 35th Congressional District.
Special guest speakers include:
- California State Senator Dr. Ed Hernandez, O.D.
- 24th District, Chair of Senate Health Committee
- Rachel Baranick – Deputy Director
- Sheree Coates – Economic Development Specialist
- U.S. Small Business Administration
- Marcia Dávalos
- Southern California Outreach Manager, Small Business Majority
What: Congresswoman Gloria Negrete McLeod's Affordable Care Act Town Hall: What You Need to Know
When: Saturday, 10 a.m. to noon (Coffee served beginning at 9:30am)
Where: Montclair City Hall, 5111 Benito St., Montclair, CA 91763
Information/RSVP: (909) 626-2054, email email@example.com or visit NegreteMcLeod.house.gov/Events


text:
Miao, Yu (1994) An adaptive model of category construction with similarity defined by internally generated constraints. PhD thesis, Concordia University.
Concordia University Libraries
Physical Address: 1400 de Maisonneuve Blvd West, Montreal, Quebec, Canada
Mailing Address: 1455 de Maisonneuve Blvd West, Montreal, Quebec, Canada H3G 1M8
Telephone (1) 514-848-2424
Contact Us |
| Legal
Back to Top


text:
New comment system brought to you by LiveFyre
Filed under: The Dev Blog
Installation literally takes no time at all. If you can use a plugin and their site you're golden.
I highly recommend it so far and will continue to mess with it more. Looking forward to the coming soon ability to tweak the css to better fit the site however, its not bad out of the box (unlike so many other technically impressive services). Anyways just came across it for the first time the other day and after looking into the still private beta more the past week its only been available the past 3 weeks. Despite this, its already been implemented by over a hundred site's in less than a month. Clearly they're doing something right .
To learn more check out their site here: www.livefyre.com


text:
Welcome to Dakota Veterinary Hospital
Call us at 204-255-8811
Pet Emergency? Click here for more information or contact us right away!
Dakota Veterinary Hospital is a full-service veterinary hospital for small animals located in South Winnipeg (St.Vital area). Our Hospital motto is "Providing Professional and Compassionate Care". Our mission is to provide optimal care to every animal, and to treat every client on a personal level.
Our team consists of three full-time veterinarians, two part-time veterinarians, three full time registered animal health technologists, one part time registered animal health technologist, three certified veterinary assistants, an animal rehab therapist/practitoner and a practice administrator. We strive to give the highest level of service, and pride ourselves with maintaining up to date with the most current medical technology and procedures. We also have a registered ultrasonographer.
If you live in Winnipeg or the surrounding area in Manitoba, then you have picked the perfect site to find a veterinarian. Dakota Veterinary Hospital is a licensed veterinary hospital, treating all types of pets including dogs, cats, rats, mice, ferrets, rabbits, hamsters, gerbils and hedgehogs. Your pet's health and well being is very important to us and we will take every step to give your pet the best possible care.
Dakota Veterinary Hospital is a full service veterinary hospital and will take both emergency cases as well as less urgent medical, surgical, and dental issues. Dakota Veterinary Hospital is experienced in all types of conditions and treatments. Beyond first rate pet care, we make our hospital comfortable, kid-friendly, and a very calm environment so your pet can relax in the waiting room and look forward to meeting his or her own veterinarian.
We have a number of resources for you to learn about how to take better care of your pets. Browse around and look at our articles and pet videos. The best veterinary care for animals is ongoing nutrition and problem prevention. If you want to ask a question call 204-255-8811 or email us and we'll promptly get back to you. Our Winnipeg veterinarian office is very easy to get to, and you can find directions on our Contact Us page. You can also subscribe to our newsletter which is created especially for Winnipeg pet owners. In between your veterinary visits, your pet will benefit from you reading these free informative articles.
At Dakota Veterinary Hospital, we treat your pets like the valued family members they are.


text:
You only live once—YOLO—so why spend so much of your life in a lecture hall? Shutterstock
The UpTake: Yo, what does YOLO mean to you? To most young and successful entrepreneurs it means starting a business from your dorm room despite the demands of the semester.
The catchphrase "you only live once" or YOLO is the modern-day version of "carpe diem," and it usually involves doing wild and risky recreational activities. But an increasing number of college students have taken YOLO to the next level by doing something their parents may find even more unsettling—turning down cushy corporate jobs and internships, and starting their own companies instead.
For what it's worth, I believe these graduates are jumping into entrepreneurship at exactly the right time. For one, most college students don't (yet) have families to feed or mortgages to pay. And although they may not have much money either, that means they have very little to lose. Plus, college students are used to keeping their costs of living low: Ramen or Easy Mac, anyone?
Personally, I couldn't have started PerBlue without the resources college provided. It's where I found my future employees, and it's where I could make mistakes without much risk. For PerBlue, college was like a startup petri dish—sheltered from the toils of the "real world"—where smart people and crazy ideas ran rampant (and still do).
Here are some of the lessons I learned from starting up in college and how you can apply them to your own dorm room startups:
If you are commenting using a Facebook account, your profile information may be displayed with your comment depending on your privacy settings. By leaving the 'Post to Facebook' box selected, your comment will be published to your Facebook profile in addition to the space below.
Sign up to receive Upstart Business Journal's free daily email newsletter, weekend edition and breaking news alerts.


text:
In a data-replication system, multi-way synchronization of copies of the data at different devices is achieved by employing a non-destructive data model. In this model, each replicated data object is represented by a revision graph, and every operation that is performed on a data object, e.g. a revision of data content or deletion of the object, is represented by adding a node to a revision graph at the device where the change is made. Synchronization between multiple devices is achieved by applying a graph union operator. Since the union operator is commutative and associative, it avoids the limitations normally associated with the order in which updates occur. A synchronization enforcement mechanism restricts the situations in which the nodes of a graph can be deleted, to thereby ensure integrity of the data throughout its useful life cycle.
1. A method for replicating data at multiple devices, comprising the steps of:
representing the history of a data object at each of said devices by means of a graph of atoms in a store, where said graph includes at least one parent atom of a first type that contains information pertaining to an operation performed on the data object and at least two descendant atoms of said first type;
adding an atom of said first type to the atom graph in the store at a given device when an operation is performed on the data object at said given device;
updating the history of the data object at another device by transmitting to said other device at least one atom that is present in the store at said given device and absent from the store at said other device and forming the mathematical union of the atom graphs at said given device and said other device, such that said atom graph can contain at least one parent atom having at least two direct descendant atoms that represent different versions of said data object; and
at each of said devices, selectively designating either one of said different versions to be viewed as the representative version of said data object at that device.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
26. The method of
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of
33. The method of
34. The method of
35. The method of
36. The method of
37. The method of
38. The method of
39. The method of
40. The method of
41. The method of
42. The method of
43. The method of
44. The method of
45. The method of
46. The method of
47. The method of
48. The method of
49. The method of
50. The method of
51. The method of
52. The method of
53. The method of
the recipient store requests an update, and sends a first inventory of the bundles that it currently contains;
the recipient store sends a list of the volatility flags for its bundles;
the sender store sends a second inventory of the bundles that it has but the recipient does not have;
the sender sends a list of volatility flags for its bundles; and
the sender store transmits the bundles in said second inventory.
54. The method of
55. The method of
56. The method of
the sender store caches a copy of a recipient's bundle inventory;
the sender store transmits a bundle inventory showing what it has and what it assumes the recipient store does not have, based upon its cached copy of the recipient's bundle inventory;
the sender store transmits its bundle volatility list; and
the sender store transmits the bundles.
57. The method of
58. The method of
59. The method of
60. The method of
61. The method of
62. The method of
the recipient store requests an update, and sends a first inventory of the bundles that it currently contains;
the sender store sends a second inventory of the bundles that it has but the recipient does not have; and
the sender store transmits the bundles in said second inventory.
63. The method of
64. The method of
65. The method of
the sender store caches a copy of a recipient's bundle inventory;
the sender store transmits a bundle inventory showing what it has and what it assumes the recipient store does not have, based upon its cached copy of the recipient's bundle inventory; and
the sender store transmits the bundles.
66. The method of
67. The method of
68. The method of
69. The method of
70. The method of
71. The method of
72. The method of
the recipient store requests an update, and sends a first inventory of the atoms that it currently contains;
the sender store sends a second inventory of the atoms that it has but the recipient does not have; and
the sender store transmits the atoms in said second inventory.
73. The method of
74. The method of
75. The method of
the sender store caches a copy of a recipient's atom inventory;
the sender store transmits an atom inventory showing what it has and what it assumes the recipient store does not have, based upon its cached copy of the recipient's atom inventory; and
the sender store transmits the atoms.
76. The method of
77. The method of
78. The method of
79. The method of
80. The method of
81. The method of
82. The method of
83. The method of
84. The method of
85. The method of
86. The method of
87. The method of
88. The method of
89. The method of
90. The method of
91. The method of
92. The method of
93. The method of
94. The method of
95. The method of
96. The method of
97. The method of
98. The method of
99. The method of
a) performing an update between a third store and one of said first and second stores;
b) detecting and resolving said conflict at said third store; and
c) performing an update between said third store and each of said first and second stores, to thereby resolve said conflict at said first and second stores.
100. The method of
101. The method of
102. The method of
103. The method of
104. The method of
105. The method of
106. A method for replicating data at multiple devices, comprising the steps of:
representing the history of a data object at each of first and second devices by means of a graph of atoms, where said atoms contain information pertaining to changes in the content of the data object, and said graph contains at least one parent atom having at least two descendant atoms;
adding an atom to the atom graph at said first device when a change is made to the data object at said first device;
updating the history of the data object at a second device by forming a new graph at said second device that is a strict superset of the of the atom graph that existed at said second device prior to said updating step, and a non-strict subset of the union of the atom graphs that existed at said first and second devices prior to said updating step, such that said atom graph can contain at least one parent atom having at least two direct descendant atoms that represent different versions of said data object; and
at each of said devices, selectively designating either one of said different versions to be viewed as the representative version of said data object at that device.
107. The method of
108. The method of
109. The method of
110. A system for replicating data at multiple devices, comprising:
a store at each of said devices, each of said stores containing replicas of a data object;
a manager associated with each store that detects and records operations performed on the data object in the form of a graph of atoms containing at least one parent atom having at least two descendant atoms, and that updates the history of the data object by receiving atoms that are contained in a graph at one store and adding said atoms to the graph in another store by forming the mathematical union of the atom graphs at said two stores, such that said atom graph can contain at least one parent atom having at least two direct descendant atoms that represent different versions of said data object; and
means for selectively designating either one of said different versions at a given store to be viewed as the representative version of said data object at the device associated with that store.
111. The system of
112. The system of
113. The system of
114. The system of
115. The system of
116. The system of
117. The system of
118. The system of
119. The system of
The present invention is generally directed to the distribution of information for sharing by users and/or group collaboration, and more particularly to systems which replicate information at multiple locations and provide synchronization of changes made to the information at those locations.
The dissemination of information to multiple users can be classified into two general categories. In one category, the information is managed at a central facility that is accessed by the users when they require the information. The information may be resident on multiple information servers that are geographically remote from one another, but are accessed through a central point by the users. In this type of system, the information is not replicated, except when a user manually saves a document in local storage, or the data is temporarily stored in cache memory as part of the information retrieval mechanism. In this type of system, only one master copy of the information exists, and therefore control over its content is easily maintained. An example of this type of information dissemination system is an Internet website.
An inherent requirement of this category of system is that the user must be connected to the central facility in order to access the information. As a result, a disconnected user, e.g. an employee traveling on an airplane, is limited in terms of the ability to obtain the information when needed. Even when a user is connected, excessive load on a server or network performance issues, such as low bandwidth or high latency, can result in inefficient access. Accordingly, the second general type of information dissemination system employs data replication. In this type of system, copies of the information are disseminated to, and stored at, multiple nodes. Once the copy has been stored at a node, the user is no longer required to be connected to the information source in order to access the information. Although advantageous from this standpoint, replication systems present a number of other issues that must be addressed. Foremost among these is the need to maintain consistency among the replicated copies of the information at the nodes. If changes are made to the information, these changes need to be disseminated to all of the nodes. Accordingly, replication systems employ different approaches for synchronizing the information among the multiple nodes.
One approach employs a single master version of the information, which is disseminated from a central source to replicas on remote devices that form the local nodes. The data flow is in one direction only, from the central master to the remote devices. In this type of system, all write operations occur at the master, and the users at the remote devices have read-only privileges. The set of information that is stored on each remote device is regarded as being no larger and no older than the central master.
When the number of content recipients is large, the central source can become overloaded. Furthermore, there is the possibility that a large number of nodes might be connected to the central source by a common network that can experience bandwidth bottlenecks. To address these types of performance issues, hyperdistribution systems might be desirable. In this type of arrangement, the information content is disseminated from the central source to a plurality of intermediate distribution points, and from there to the ultimate recipients at the remote locations.
Alternatively, a multiple master approach may be desirable, where users at the remote devices have the ability to modify the data. In this approach the potential exists for conflicting versions of the data at different nodes. Some multi-master systems address this issue by utilizing conflict avoidance, whereas others employ conflict resolution. To achieve conflict avoidance, a single user or application must be able to lock access to a data object before a write operation takes place, so that plural simultaneous edits cannot occur. To obtain a lock, however, connection to a resource which manages the locks is necessary. Hence, conflict avoidance is most practical in systems where the modifications are relatively infrequent.
In contrast, conflict resolution systems permit multiple simultaneous edits to occur, and conflicts are reconciled afterward. One type of dissemination system that is capable of resolving conflicts employs hub-and-spoke synchronization. This type of synchronization is commonly found, for example, in personal information management systems, in which mobile users are able to reconcile calendar and contact information with a single point of control. In this arrangement, each user device, e.g. personal digital assistant, carries a subset of the data in a central reference repository. When a device is connected to the central repository, its data set is synchronized with the reference data set. An example of this type of system is disclosed in U.S. Pat. No. 6,295,541. In these types of systems, the central repository functions as a clearinghouse for conflict resolution. Typically, immediate resolution is provided during synchronization, for example on the basis of time stamps. The business logic associated with this approach assumes that the individual who is performing the synchronization is the best person to resolve conflicts that arise during the synchronization. The conflict resolution process involves replacement of the older version of the information with the newer version, i.e., the prior version ceases to exist after conflict resolution.
An alternative to the hub-and-spoke arrangement is a peer-to-peer network, in which no single device functions as a central master. In this system, any device can synchronize with any other device at any time. This type of arrangement may be more suited to operations such as team collaboration. However, conflicting data entries can appear and be resolved many times, as disparate versions of the information propagate independently through the network and collide at various locations. Unlike hub-and-spoke mechanisms, there is no single valid version of the information, with respect to which the data set on a given device can be considered to be merely out of date.
Various combinations of these systems might also exist. For example, a project that employs hub-and-spoke synchronization for collaboration might also require hyperdistribution from a publisher. As a further extension of this arrangement, an object from a publisher might need to be identified with a corresponding object on the user's devices, and a workflow mechanism might allow each user to accept or postpone acceptance of any revisions to that object. As another example, a handheld device might be slaved via hub-and-spoke synchronization to a laptop, that also participates in peer-to-peer synchronization with other laptops.
Many data replication systems are based on a model that assumes that there is only one correct version of a data object at any given time. To assure a high degree of consistency among the copies of that data object, there is an implicit requirement that the nodes connect to one another on a frequent basis, so that the amount of revision to a data object between updates is relatively small. Thus, in a hub-and-spoke system, for example, since all information is expected to flow through the hub, frequent connections along the links that constitute the spokes are formed.
When there is no central hub for conflict resolution, an order-dependent approach can be employed to resolve the conflicts, but this can lead to unpredictable results. For instance, if node A is synchronized with node B, and then node B is synchronized with node C, one version of the data may be generated, whereas if node A is synchronized with node C and then node B is synchronized with node C, a different version may result.
It may be preferable to utilize an order-independent approach that allows business logic rules to be enforced in a way that provides more consistent results. If resolution is to be accomplished immediately, however, the business logic rules may have to be somewhat limited and/or restrictive.
It is an objective of the present invention to provide a framework for data replication that employs a different model to support relatively long periods of disconnection, and yet is compatible with each of the various dataflow techniques for replication described previously.
In accordance with the present invention, these objectives are achieved by employing a non-destructive data model that allows different versions of a data object to co-exist. As a result, the resolution of a conflict can be deferred, to thereby provide maximal generality in the expression and enforcement of business logic rules.
In the model, every operation that is performed on a data object, e.g. a revision of data content or deletion of the object, is represented by an element in a revision graph for the data object. Synchronization between nodes is achieved by combining elements of their graphs, e.g. a union operator, rather than replacing one version of the data with another. Since the union operator is commutative and associative, it avoids the need for hard decisions based on factors such as the order in which updates occur, for instance.
Multiple versions of the data object are managed through different views. A cursor identifies the element in the revision graph that represents the current version of the data object at a node. When the user accesses the data object, the current version is presented in an application view. As a result of the synchronization operation, multiple cursors may be present in the graph, thereby presenting a conflict. In this case, a conflict resolution view can be presented to display multiple candidate versions for the user to select from as the current version, based on any suitable business logic.
A synchronization enforcement mechanism restricts the situations in which the nodes of a graph can be deleted, to thereby ensure integrity of the data throughout its useful life cycle. Different devices can be classified according to different respective levels of storage volatility. A revision can be deleted from a revision graph at a device having a given volatility level if the same revision is known to be stored at a device having a lower level of volatility. When a revision has reached the end of its useful life, it is stored at a designated device, and can then be removed from all other devices.
These and other features of the invention are described hereinafter with reference to exemplary embodiments illustrated in the accompanying drawings.
The present invention is applicable to all types of information dissemination systems which employ replication of data objects at multiple locations. A data object can include a task, a document, a saved search, a list of contacts, a file, a discussion entry, a field entry, or a container of other objects such as a folder, among others. To facilitate an understanding of the concepts which underlie the present invention, examples of the invention are described hereinafter with reference to a document that undergoes modification in a group collaboration. It will be appreciated, however, that these descriptions are merely exemplary, and should not be construed to limit the practical applications of the invention in any manner.
One example of an environment in which the replication system of the present invention can be employed is illustrated in the block diagram of
Either or both of the stores are replicated in local devices 14. A local device could be a personal computer, a laptop computer, a handheld personal digital assistant, or the like. The union of all the stores associated with a given set of data objects on the central device 12 and the local devices 14 constitutes a space. Thus, all of the stores 10-1 form a first space I, and are labeled Store I-A, Store I-B, etc. Similarly, all of the stores 10-2 form a second space II, and are labeled Store 11-A, Store 11-B, etc. A space, therefore, might be a group collaboration project, or a content repository.
Every device does not necessarily contain a store for every space. In the example of
In the embodiment of
In a collaborative system, two-way updates can occur between the hub and each of the local devices. In addition, the devices 14 may be able to communicate directly with one another, by means of links 20. In this case, the store in one local device 14 can be synchronized with the corresponding store in another local device 14 without connecting to the central facility 12. In this case, the devices operate in the manner of a peer-to-peer network.
In an alternate implementation, there may be no central facility 12, and all of the local devices communicate with each other by means of the peer-to-peer network formed by the links 20. The devices may communicate directly and sporadically with one another, or by means of an intermediate device. Consequently, a given change may propagate gradually through the network as synchronization operations are performed.
Atom Graphs and Synchronization
Referring to
In essence, the graph represents the history of a data object. Each revision atom 28, 30 is connected to a parent atom representing a previous version of the object. Hence, the revision graph is connected, directed and acyclic, such that each atom in the graph, other than the root atom, is connected to at least one immediately prior parent atom.
Referring to
The content of an atom can be stored in a variety of forms. In one case, the data for the object 22 can be self-contained in each atom. For example, if the data object is a text document, the text of the original document can be stored in root atom 26, the entire text of Revision 1 can be contained in atom 28, and the entire text of Revision 2 a can be stored in atom 30. As an alternative, root atom 26 could store the original text, and each of the revision atoms 28 and 30 could contain only those changes necessary to construct the revised versions from the data in their parent atoms. In yet another variation, the latest atom in the sequence, i.e. atom 30 in
In addition to revision atoms that pertain to dynamic changes in the content of the object, the graph can include other types of atoms. For instance, after making the second revision represented by the atom 30, a user may digitally sign the document or otherwise provide it with an approval marking. In that case, a signature atom 32 is added to the graph, and is connected to the atom 30 associated with the version of the document that was signed. Other attributes of the object can be represented by other types of atoms. For instance, an access control list for the object can be represented by an atom 34. If the access control list is modified during the life of the object, successive atoms 36 are created for the revisions of the list.
In the embodiment of
Representing the history of data objects in the form of atom graphs enables synchronization between replicas of the same object on two local devices 14 to be achieved by combining atoms from each of the two replicas' graphs to form an updated graph. Thus, an update is achieved by copying atoms from a sending device to a receiving device. In a preferred implementation of the invention, the updated graph resulting from such an operation is the mathematical union of the two replicas' original graphs. In some cases, however, it may not be desirable or appropriate to perform a complete union of the two graphs. In the more general context of the invention, therefore, an update can include the situation where one or more, but not necessarily all, of the atoms present in a first store and absent from a second store are copied to the second store, and added to the graph of the second store. Expressed in mathematical terms, the atom graph that results from an update is a strict superset of the atom graph that existed in the receiving store prior to the update, i.e. it contains at least one additional atom, and a non-strict subset of the union of the two previously existing graphs, wherein it could be equal to the union, or contain fewer atoms than the union.
Referring to
When Store A is subsequently synchronized to Store B, a union of the two graphs is formed. The resulting graph 42 contains both of the atoms 30 and 38 that represent the two revisions that were separately made on the data object. In addition, it contains the additional atom 40 that identifies the further modification of the access control list. Typically, when a synchronization operation occurs, information flows in both directions between the two stores, so that each of the two stores contains the graph 42 representing the union of their respective graphs. Of course, it is also possible to perform a one-way update. For example, information from Store B can be transmitted to Store A, so that Store A contains the union graph 42. However, Store B may not receive information from Store A, in which case its atom graph would remain in its original state.
In addition to revisions of a data object, atoms are created when other types of operations are also carried out on the data object that result in a change to its contents. One example of such an operation is the deletion of the data object.
As a result of the union operation, the atom graph 42 contains two different atoms that might represent the most current version of the data object, namely revision 2 a represented by atom 30 and revision 2 b represented by atom 38. Atoms 30 and 38 both descend from the same parent atom 28. Hence, when the user issues a command to view the data object within an application after the union has occurred, e.g., open a document in a word processing program, an issue arises as to which of the two revisions should be presented to the user. In accordance with one embodiment of the invention, each store can include a pointer, or cursor, that identifies the atom representing the data object's current version for that store. Referring to
Since synchronization is effected by the union of two or more atom graphs, the present invention results in a non-destructive data model for the replication and synchronization of information. As a result, conflicts do not arise in the course of a synchronization operation itself. Furthermore, more than two parties can synchronize with one another, without creating confusion. A conflict is represented by a diversion in the atom graph, as depicted by atoms 30 and 38 in the graph of
As an alternative to assigning the cursor in this manner, it may be preferable to allow the application to employ a set of business rules by which the conflict is resolved and the current version is automatically chosen. For instance, certain types of metadata could be associated with each object, e.g., author of the revision, date and time stamp, etc. This metadata can be assigned on a per-store basis. The business rules can then use that metadata as appropriate to designate the current version. Examples of applicable rules include time-based, trust based (e.g., a revision made by a manager might get preference over a staff-level employee), or application-specific.
This metadata can be transmitted to recipient stores during synchronization operations, e.g. together with any atoms that are transmitted. The recipient store can then use all of the metadata associated with a data object, both that created locally and that received from other stores, to resolve any conflicts according to the business logic rules employed at that store, to produce a new cursor location. Each conflict could be resolved immediately each time new metadata is created or received. Alternatively, the store could retain all of the metadata and apply the rules of conflict resolution each time a request is made to view the object.
Yet another alternative is to defer resolution of the conflict until another time, for example by another user who is authorized to do so, such as a manager. For instance, conflicting changes could be made to a data object at each of two stores A and B. After the stores synchronize with one another, each store continues to present the view of the object corresponding to the revision that was made at the device on which that store is located. Thereafter, one of the two stores can synchronize with a third store C, whose user is authorized to resolve the conflict. The user is provided with notice of the conflict, and resolves it, e.g. by selecting one of the two conflicting versions as the current version. This resolution is then passed on to stores A and B, as well as other stores in the same space, during subsequent synchronization operations, for example in the form of a new cursor position.
Bundle Mechanism
During synchronization operations, an atom may be copied from store to store to store, until it is eventually disseminated to all of the devices that participate in the space with which the stores are associated. During each synchronization, the sending device determines which atoms to send to the receiving device. For example, as part of the protocol for updating a store, the receiving store may transmit a message to the sending store which includes an inventory of the atoms it contains, and the sending store can reply with a list of atoms that it contains but the receiving store does not. In accordance with another feature of the invention, a bundling process is employed to compress the amount of data that needs to be exchanged between the stores as part of the protocol. A bundle comprises a group of atoms within a store that are designated to stay together as they are replicated from one device to another. In addition to the atoms per se, a bundle can also include the metadata that is employed for conflict resolution, and any structural information that may be required to form the graph union at the recipient device. The designation of bundle content is carried out by the device on which the atoms were created. For instance, in the example of
Thus, rather than identifying each of atoms 30 and 32 in the synchronization protocol, the sending store only needs to indicate that a particular bundle will be sent. Hence, as more atoms are added to a bundle, greater savings in message transmission are achieved. Other economies are gained through the use of the bundling mechanism. For instance, once a number of atoms have been grouped into a bundle, the entire bundle can be treated as a single unit for purposes of compression, encryption, and the like. A bundle need not be limited to atoms for a single data object. Rather, a bundle may contain atoms from several different objects in a store, e.g., a document, an e-mail message, and an access control list. Each store can employ any appropriate set of rules for determining bundle membership. For instance, a store that participates in infrequent synchronizations might create a bundle from all atoms created between synchronization events. A store that serves content to a large number of devices might create a temporally-based bundle of atoms, e.g., all the atoms created in a given week. If extremely fine control is required in the management of data objects, each atom might be designated as a separate bundle.
Before an atom is assigned to a bundle, it can undergo multiple revisions. For instance, each time that a user revises and then saves a document, the atom associated with this version of the document can be modified to incorporate the latest changes. Similarly, if the user decides to cancel the revisions, the atom associated with those revisions can be deleted. However, once an atom is assigned to a bundle, its contents become fixed. Thereafter, any further operations on the data object result in the creation of a new atom, rather than further modifications of the assigned atom. In this case, a new arc is added to the atom graph, which originates at the newly assigned atom and terminates at the newly created atom. If the application so dictates, the cursor is moved to point to the newly created atom.
In a similar manner, a bundle can have a variable state until a defining event occurs. This event could be designation of the bundle as being ready for transmission. Until this designation occurs, atoms can be assigned to or removed from a bundle as desired. Once the designation takes place, the bundle is created, i.e., the assigned atoms are assembled into a set and the bundle is given an identifier. In addition, the bundle may be prepared for transmission by compressing the data for the set of atoms. Once these actions occur, the contents of the bundle are fixed, and remain constant as the bundle is transmitted from store to store.
The creation of the bundle and preparation for transmission can take place automatically in advance of the transmission, e.g., at regularly scheduled intervals. Alternatively, it can be done in response to a message from another store requesting a transmission, e.g., receipt of the other store's bundle inventory, or some other just-in-time basis.
In addition to designating atoms that travel together during synchronization operations, the bundles are also employed to manage the atom graphs within the stores during the life cycle of a data object. To this end, each store is assigned one of multiple levels of volatility. For example, a store might be classified as a volatile store or as a non-volatile store. These different levels of classification determine the conditions under which it is acceptable for a store to delete some or all of the information pertaining to an atom. For instance, if a bundle is present in a non-volatile store, a volatile store can safely delete the content of an atom assigned to that bundle, so that only its identity remains in the volatile store.
Another possible classification is a final store, which performs functions such as archival when a data object has reached the end of its life. For instance, when a collaborative space is to be closed down, the final store can be used to create a permanent archive of the data objects for that space. When this is to occur, all of the bundles associated with that data object are moved to the final store. Once a bundle has been moved to a final store, the volatile and non-volatile stores can delete the atoms assigned to those bundles. In this case, the identities of the atoms are deleted, as well as the content of the atoms.
In addition to archiving the data objects in a given space, the final store can be employed for end-of-life operation on individual atoms. For instance, in a publishing environment, it may be desirable to retire specific revisions from circulation. Once the atom associated with a particular revision has been moved to a final store, it can be deleted from all of the other stores. In this case, the entire atom is deleted, i.e. both its content and identity.
It is also possible for non-conforming stores to exist, which do not follow the foregoing rules of behavior regarding volatility and end-of-life operations. These types of stores can receive data objects from conforming stores, but do not forward atom graphs or bundles to other stores.
To facilitate transmission and storage management of data objects, each bundle has two attributes associated with it. One of these attributes is a bundle identifier that uniquely designates each bundle. For example, the bundle identifier may comprise a store ID that is unique to the store in which it was created, followed by a bundle index. The bundle index can be an integer that is incremented by the store each time it creates a new bundle. This type of identifier facilitates space-efficient representation of a set of bundle identifiers, for example by means of run-length encoding. As a result, the amount of data that must be transmitted between two devices during a synchronization process can be reduced, thereby saving bandwidth.
The second attribute associated with a bundle is a volatility flag. This flag identifies the volatility class of the least volatile store that contains a copy of the bundle. For instance, if a bundle is copied from a volatile store to a nonvolatile store, the volatility flag of that bundle is updated to reflect the fact that the bundle is now stored in a non-volatile store. This flag is then propagated to all of the other devices during synchronization operations. Thus, during a synchronization operation, even if a given store contains a copy of a particular bundle, a check is made to see whether the sending store's copy of that bundle contains a flag indicating a lower level of volatility. If so, the flag at the receiving store is updated to reflect the lower level of volatility, and passed on to other stores during other synchronization operations.
The bundle identifier is assigned on a per-bundle basis, and remains the same for every copy of the bundle in the various stores. In contrast, the volatility flag is assigned and updated on a store-by-store basis, as synchronization operations take place.
A further attribute that can be associated with a bundle is a completeness flag. As noted above, when a bundle is resident in a non-volatile store, the contents of its constituent atoms can be identified for deletion from volatile stores. The completeness flag is employed to indicate whether the atoms of a bundle in a given store contain both their identities and their contents, i.e. they are complete, or only their identities, in which case they are labeled as incomplete. As with the volatility flag, the completeness flag is set on a store-by-store basis.
In some situations, it may be the case that a receiving store may request only part of a bundle during an update operation. In this case, the sending store can create and send a response that contains only the requested part of the bundle. Accordingly, at the recipient store the completeness flag for the bundle would not be set.
The completeness flag can be employed in a variety of manners. For instance, in one embodiment of the invention, during a synchronization operation the receiving store can inform the sending store of the state of completeness of its bundles, or merely exclude all incomplete bundles from the inventory it transmits to the sending store. In either of these cases, the sending store can send all of the incomplete bundles to the receiving store. In addition, the completeness flag can be used locally, to notify a user that connection to a non-volatile store is necessary if the user attempts to view an object with an incomplete bundle.
An example of bundle management is depicted in
Thereafter, in accordance with the rules of behavior pertaining to the storage of objects, volatile Store A can delete the contents of the atoms in bundles A1 and B1, since they are also resident in a non-volatile store. Upon performing such an action, the completeness flags of these two bundles are reset to 0, as depicted in
Since the copy of bundles A1 and B1 in Store B now have a lower volatility level, Store B can mark them for deletion of the content of their constituent atoms. However, if Store B has adequate storage capability, there may be no need to remove any of the stored content. In this example, that is assumed to be the case, so the completeness flags of these bundles remain at the value 1.
Thus, it can be seen that, as part of the synchronization process, information regarding the status of bundles is exchanged between the stores and updated as appropriate, to reflect the lowest level of volatility that each bundle encounters as it is passed from store to store.
Since a bundle can theoretically contain a large amount of data, it may be preferable to transmit this data in smaller units of granularity that can be separately accounted for. In the context of the present disclosure, this unit of granularity is referred to as a "sheaf". In general, a sheaf is smaller than a bundle, but typically larger than a network packet. Each sheaf contains a unique identifier. For example, the sheaf identifier can be in the form of a bundle identifier, followed by an index integer that is equal to zero for the first sheaf in a bundle, and is subsequently incremented for each additional sheaf. If a failure should occur in the midst of a synchronization, the synchronization can be resumed without having to retransmit all of the sheaves that were successfully received by the recipient.
Synchronization Protocols
The synchronization operation involves the exchange of multiple messages between two or more stores. In the context of the present disclosure, the term "update" is employed to refer to the process of transferring atoms from one store in a space to another. An update operation causes the recipient's store graph to be equal to the union of the two recipient's store graphs prior to the operation. Hence, an update can be considered to be a primitive that can be composed into two-way and multi-way synchronization operations.
A single update operation generally requires multiple messages to be exchanged between the sender and recipient stores. The most complete form of an update may be comprised of the following sequence of messages. Messages sent by the recipient store are labeled with the letter "R", and those sent by the sending store are labeled with the letter "S".
Depending upon the characteristics of the underlying transport mechanism that is used to exchange the data, the protocol for the update operation can omit one or more of these steps. For instance, the last step is only required if the sender wants or needs to know whether the transmission was successful. In the absence of such a situation, therefore, this step can be omitted.
In one implementation of the invention, a pull update can be initiated by a recipient's request. In the protocol for this type of update, step 5 can be eliminated, to avoid one round trip communication between the stores during the process. Eliminating this step also inhibits the ability of a recipient to specify a request that differs from the set of bundles on the sender that are missing at the recipient.
In some cases, the data may be exchanged via a medium, such as removable storage, that does not conveniently support a bidirectional conversation. Under these circumstances, a push update can be initiated by the sender. In this case, the sender relies upon a cached copy of the recipient's bundle inventory. The procedure for this type of update is set forth below. In the following notation, a primed number represents a message that travels in reverse direction, relative to the complete update protocol described previously.
The properties of the non-destructive data model of the present invention ensure that the worst possible consequence in this case is the transmission of superfluous bundles. If the sender has no cache of the recipient's bundle inventory, it can simply transmit all of its bundles, and the recipient can discard those which it already has.
In some cases, a recipient store may be aware of the fact that a push update would waste bandwidth. For example, since the previous connection with the sender store, the recipient may have received a number of bundles from other stores, about which the sender may not be aware. Hence, there is no need for the sender to transmit those bundles, since they are superfluous. In this case, the receiver can push its inventory, by sending the equivalent of the request portion of a pull update, namely steps 1 and 2. As a result, subsequent push updates will contain fewer, if any, superfluous bundles, thereby conserving bandwidth.
Update primitives of the type described above can be composed into multi-way transfers and adapted for particular transport media. The messages between two devices can travel online and synchronously, online and asynchronously, or offline and asynchronously. For example, in the last case a message can take the form of a file having a file association such that invocation of the file causes its contents to be interpreted by the replication system as a message. The file can be sent via e-mail, shared medium, or removable medium. Even if the time lag is great between creation of an update file at the sender and retrieval of the file's contents at the receiver, the worst possible consequence is that some atoms may have arrived from other sources in the meantime.
Different protocols can be employed, in dependence upon the type of update and the transport media. In one case, a unidirectional update can be accomplished with a bi-directional protocol. In this case, an online recipient can get an update from an online sender by invoking the pull update. The pull update can occur synchronously, for example by using a SOAP-based protocol. Alternatively, it could occur asynchronously, for instance via e-mail. In this latter situation, the participants do not need to be continuously connected to one another during the update operation.
As a third case, a synchronization operation, i.e., two-way updates, can be accomplished with a bi-directional protocol. Two stores that are connected to one another can synchronize by interleaving pull updates, for example by means of the following sequence:
If synchronization is to occur via removable medium or e-mail, the initiator can combine a push update with a push inventory, and the other store can respond with a push update. If these steps are preceded by a push inventory, either party can initiate the synchronization operation.
As discussed previously, a final store is employed when an end-of-life process takes place. During this process, all stores in a space are requested to send an update to the final store, and all but the final store are decommissioned. The steps that are undertaken in this process can occur via any transport mechanism. The following steps illustrate an example in which the end-of-life process is carried out by means of e-mail messages:
As can be seen from the foregoing, there are a variety of operations that are carried out and rules that are enforced within the framework of the present invention. In a preferred implementation, the performance of these operations and enforcement of these rules is carried by means of a software entity that is identified herein as a "store manager". In essence, the store manager oversees all operations that affect the contents of a store. To do so, therefore, it is located within the architecture of the system so that it can intercept those operations. Referring to
Another one of the functions performed by the store manager is bundle tracking. The store manager assigns every atom that is created in a store to a bundle, either at the time of creation or a later time. It also maintains the list of the contents of every bundle, both those that are created locally and those imported from other stores. It enforces all of the rules associated with the volatility and completeness flags.
The store manager also handles all of the operations associated with updates. Thus, when two devices are linked, the store managers in the two devices communicate with one another to exchange the messages in the protocols described previously, and then add new atoms to the atoms graphs and reset flags in accordance with the information received from one another.
Typically, a store manager is only concerned with the store for a given space. In some cases, however, an object on a device may be a member of more than one space. In such a case, the store manager should be aware of this situation, so that it can handle changes to the object in a manner that supports all of the involved spaces. More particularly, one manner in which changes can be made to the object are by way of edits to the object at the local device of the store. When the store manager creates a new atom to represent the change, it assigns the atom to a bundle for each of the spaces in which the data object is a member. Hence, in the example of
Another way in which a change can occur to a data object is due to an update received from another store associated with one of the spaces. This update causes one or more atoms to be added to the object's graph. In this situation, the store manager assigns those atoms to a bundle associated with the other spaces in which the object is a member, so that they will subsequently propagate in those spaces.
A given store may support one user, or many concurrent users. In a multi-user situation, multiple implementations of the store manager can be employed, to support varying requirements of the different users.
Another function of the store manager is to support resource locators, e.g., URLs. Preferably, the store manager supports resource locators that are specific to a particular revision of an object, and resource locators that return the current version of an object. To provide the latter capability, therefore, the store manager is aware of, and utilizes, the business logic rules that determine the current version, e.g., cursor location, time-stamp, trust basis, etc.
The store manager can also provide support for applications that operate outside of the framework of the present invention. Thus, for example, the store manager can function to translate standard commands such as "save" and "delete" into the appropriate operations on the atom graph for a data object which is the subject of those commands.
When data replication is involved, read-access control can be implemented cryptographically, or by limited physical distribution. In the latter case, a user is not given a replica of any content whose access is prohibited. In the cryptographic case, prohibited content can be distributed widely, but is always protected by encryption.
The cryptographic approach is preferable for the framework of the present invention because, unlike the physical approach, it allows access control to be decoupled from the hosting and distribution mechanisms. Content can travel over any transport mechanism including removable media, it can be hosted anywhere, and it can be stored and forwarded by any device without violating access-control policies. Thus, cryptographic control supports hyperdistribution from a central point via intermediate nodes, as well as peer-to-peer forwarding among devices that are connected only transiently, pairwise, or not at all. Furthermore, the cryptographic approach does not preclude limited physical distribution in applications that are amenable to such treatment.
Within the context of cryptographic access control, it is possible to use symmetric (shared) keys, and/or public keys. Reliance solely on per-user public keys becomes impractical, due to quadratic scaling issues caused by the fact that content must be distributed to multiple users, and each piece of content must be encrypted separately for each recipient. Conversely, reliance solely on shared keys is also undesirable, even if the keys are public-key encrypted for each user during distribution, because it limits the ability to target access to a subset of users.
Accordingly, security is implemented within the framework of the present invention by means of two key types. A user key is a private-public key pair that is generated by a user for himself or herself. A role key is a private-public key pair that is generated by an administrator upon the creation of a role, and subsequently distributed to users who serve in that role.
Encryption can be carried out on a per-atom basis. In this case, each object is defined as being readable by exactly one user or one role. Therefore, each atom in an object is encrypted with the corresponding user key or role key.
Alternatively, encryption can be performed on a per-bundle basis. In this case, however, the same encryption key is used for all of the constituent atoms in the bundle, so the bundles would have to be created in accordance with access rights if not all users in a space have the same rights.
A role key can undergo revisions. A user who is a current member of a role holds all of the keys associated with that role. Conversely, a user who is not a member of the role holds none of the role keys. If a user is added to a role, all versions of the role key are pushed to the newly added user.
If a user is removed from a role, a new version of the role key is created and pushed to all users who remain current members of the role. A key-deletion request is sent to the store being used by the deleted user. Upon receipt of that request, the device on which that store resides is trusted to honor the request by deleting all versions of the role key.
If the user or role associated with an object is changed, the access list of the object propagates throughout the replication network via updates, using the same mechanisms as data content.
Each store has a public-key directory in which each object contains a public key. The atom graph for that object contains revisions of the public key, as well as optional validation atoms that validate each revision. A revocation atom can be added to invalidate a key. When a key is revoked and replaced, the corresponding content is re-keyed. Both the validation atoms and the revocation atoms are digitally signed with the private key of the signer. Thus, the public half of a user key or role key is stored as part of an object, and shared by the same update mechanism that is used for object content. This approach is particularly appropriate for applications where a user in a space might need to push an encrypted update to another user.
Other mechanisms for the distribution of keys are also envisioned. In some cases, wholesale replication of the keys may be inappropriate, such as in content distribution, where a distribution hub may need every recipient's user key, but the users may not need one another's keys. Another example is where the private half of a role key is sent to a specific user, to invite that user into a role.
In one alternative approach, a key of any type can be supplied together with the request portion of a pull update, and disposed of by the sender when the update is concluded. This mechanism is referred to as a "keyed pull update", and is appropriate when secure transport is to be achieved.
In another alternative, a key of any type can be pushed to a particular store, for use by a user in connection with a role, or by a prospective sender in anticipation of a future push update. This approach is referred to as a "key push".
In either of these alternative mechanisms, when the key being transmitted is a private key or a symmetric key, it is encrypted with the recipient user's public key.
Each store includes a portion that does not undergo replication, for the storage of private keys associated with either users or roles. This area can also be used to store public keys that are not intended to be shared, such as the public keys of subscribers that are known at a content-distribution hub.
From the foregoing, therefore, it can be seen that the present invention provides a framework for data replication that is based upon a non-destructive data model, in which changes made to data objects are preserved in an atom graph, and propagated to other devices containing a replication of the data object. As a result, resolution between conflicting changes to the data object can be made immediately upon synchronizing two or more devices, or deferred to a later time in accordance with applicable business logic rules. This flexibility minimizes the need for frequent connection to the data replication network for conflict resolution, thereby providing support for users who may remain disconnected for significant periods of time.
It will be appreciated by those of ordinary skill in the art that the present invention can be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The presently disclosed embodiments are therefore considered in all respects to be illustrative, and not restrictive. The scope of the invention is indicated by the appended claims, rather than the foregoing description, and all changes that come within the meaning and range of equivalence thereof are intended to be embraced therein.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
(USA & Canada) Call 1 800 745 8883
(Austria, Belgium, France, Germany, Ireland, Netherlands, Norway, Spain, Switzerland, UK) Call 00800 10 10 11 11
(Japan) Call 0120 086230
(Italy) Call 800 822 005
Please enter your email address to receive great offers
Save 10% or more on suites and villas.
Suites and Villas
Enjoy a spa treatment or USD 100 spa-credit per person per stay.
Spa Inclusive
A round of golf included at these top courses.
Golf Inclusive
Join Leaders Club and enjoy access to one-of-a-kind experiences
Which set of exclusive benefits suits you?
Find out more about Unlimited, our highest tier of membership.
Includes everything from exciting cities to gorgeous beaches and romantic countryside escapes.
Where land, sea and sky strike a note of such worldly perfection.
Colorful history, solid traditions, and true multiculturalism.
Excellent restaurants, chic nightspots and cutting-edge theatre.
More for you to discover.
Journey just a little longer for memories of a lifetime.
Please select number of guests for each selected room.
All Other Countries
Marble floors, Doric columns and gilded antique furnishings characterize the hotel's opulent interiors.
I Carracci offers traditional Bolognese fare and innovative fish dishes amid 15th century paintings and frescoes.
Precious silks, marble, mosaics and 18th century paintings adorn luxury suites inspired by famous Italian artists and musicians.
The hotel is situated in a Palazzo designed by Alfonso Torregiani during the 18th century and built by order of Cardinal Lambertini, who later became Pope.
Jr Suite1king bed on main st or courtyar WIFI/50sqm/Garage:adv booking compulsory
Deluxe double on main str or courtyard WIFI/32sqm/Parking:adv booking compulsor
Pres suite 1 kingbed /on main street WIFI/80SQM/Parking:adv booking compulsor
Suite 1king elegant furn/sofabed/on inner cyard
WIFI/Parking:adv booking compuls
Sup dbl rm 1 king or twin bed,on main st or inner vw, free WIFI,24 SQM/258.33 SQF
Classic sgl rm qn/bed on Main st/on back wifi/20SQM,NOsmk avail/Park: Book Compul
Classic dbl 1 kng bed or twin on Main s Or/on back/free WIFI/24SQM/258.33 SQF
2 bedroom suite art deco (modern comforts/terrace 70 SQM)
Grand deluxe king or twin/40SQM inner vw w/desk/free WIFI/ marble bath
Royal Suite consists of Pres Ste 1king m Living rm and 1 Jr Ste 150sqm/ WIFI
Via Indipendenza 8, 40121 Bologna, Italy
12.6km/7.8mi (20mins) from Bologna G. Marconi Airport (BLQ)
220 volts AC
400+ Uncommon Luxury Hotels
Guaranteed Best Rates and Special Offers
Personalized Service Worldwide
Free Nights
Room Upgrades
Instant VIP Benefits
The Lamborghini Museum reviews all the important milestones reached by the House of the Raging Bull, with a foray into the past that has a strong emotional impact on fans of luxury super sports cars. www.lamborghini.com/en/museum/overview.
During this all-day class with Home Food, you'll go to the medieval market with a guide to learn how to choose ingredients, then try your hand at making tagliatelle and Bolognese ragu. (39-051) 220797; www.homefood.it.
Set aside an afternoon to visit this beautiful castle on the Po River; tour the cellar and surrounding farm and vineyards before settling in for a picnic lunch. www.acpallavicina/relais.com.
Check out the Basilica Santo Stefano, a compound of four churches; the 17th-century Teatro Anatomico, where an Inquisition priest once oversaw human dissections; and the unfinished but grand Basilica di San Petronio.
These artisan chocolate makers have been around since 1796, and carry the sweetest gifts you can bring home. (39-51) 969-157; www.majani.it.
Stock up on balsamic vinegar and fresh handmade pasta that's been vacuum-packed for travel.
It's a light read, but it's set entirely in Bologna and will give you a feel for the city.
At more than 300-feet high, this 11th-century tower is hard to miss; climb its 498 steps for a stunning view of the city's red rooftops and surrounding hills.
A few of Bologna's dark passages are now open to visitors. Walk the Torrente Aposa (or Aposa Torrent), a half-mile Roman tunnel that encloses a natural stream.
(USA & Canada)
Call 1 800 745 8883
(Austria, Belgium, France, Germany, Ireland, Netherlands, Norway, Spain, Switzerland, UK)
Call 00800 10 10 11 11
Call 0120 086230
Call 800 822 005
Select your check-in date
Select your check-out date


text:
Book your room at Gran Melia Colon
Deluxe RoomMax Occupancy: 2 guests (up to 1 child, 1 infant)
Premium RoomMax Occupancy: 2 guests
Standard Deluxe PanoramicaMax Occupancy: 2 guests
Romance King BedMax Occupancy: 2 guests
Family Room (Supreme, 2 adults + 2 children)Max Occupancy: 4 guests (up to 2 children)
StandardMax Occupancy: 2 guests
One Bedroom SuiteMax Occupancy: 2 guests (up to 1 child, 1 infant)
Suite, 2 Bedrooms (2 adults + 2 children)Max Occupancy: 4 guests (up to 2 children)
Suite, 2 Bedrooms (4 Adults)Max Occupancy: 4 guests
Penthouse SuiteMax Occupancy: 2 guests
Deal of the dayMax Occupancy: 2 guests (up to 1 child)
Premium Room (3 Adults)Max Occupancy: 3 guests
Premium Red Level (3 Adults)Max Occupancy: 3 guests
Suite, 1 Bedroom (3 Adults)Max Occupancy: 3 guests
Get an overview of this hotelLuxury Seville hotel in Historical Center, walk to Museum of Fine Arts
Located in Historical Center, this luxury hotel is within a 5-minute walk of Magdalena Church and Museum of Fine Arts. Seville Cathedral and Alcazar are also within 15 minutes.
Hotel Features
This smoke-free hotel features a health club, a bar/lounge, and a coffee shop/café. WiFi in public areas is free. Other amenities include a sauna, a rooftop terrace, and valet parking.
Room Amenities
All 189 rooms feature thoughtful touches like pillow menus and bathrobes, plus free WiFi, free wired Internet, and plasma TVs with digital channels. Guests will also find 24-hour room service, minibars, and premium bedding.Information missing or incorrect? Tell us!
Hotel Amenities
Hotel Amenities
Gran Melia Colon features a health club and a sauna. The hotel offers a coffee shop/café. A bar/lounge is on site where guests can unwind with a drink. Public areas are equipped with complimentary high-speed wired and wireless Internet access.
Business-related amenities at this 5-star property consist of a business center and a meeting room. This luxury hotel also offers a rooftop terrace, tour/ticket assistance, and coffee/tea in the lobby. Parking is available onsite for a surcharge.
Gran Melia Colon is a smoke-free property.
- Free WiFi
- Free wired high-speed Internet
- Turkish bath/Hammam
- Bar/lounge
- Health club
- Coffee shop or café
- Sauna
- Rooftop terrace
- Breakfast available (surcharge)
- Valet parking (surcharge)
- Area shuttle (surcharge)
- Coffee/tea in lobby
- Spa treatment room(s)
- Business center
- One meeting room
- Babysitting or childcare
- Concierge services
- Dry cleaning/laundry service
- 24-hour front desk
- Free newspapers in lobby
- Tours/ticket assistance
- Television in lobby
- Porter/bellhop
- Elevator/lift
- Luggage storage
- Smoke-free property
- Number of floors - 7
- Total number of rooms - 189
Available in all rooms: Free WiFi , Free wired high-speed Internet
Available in some public areas: Free WiFi , Free wired high-speed Internet
Valet parking (surcharge)
Room Amenities
- Partially open bathroom
- Free WiFi
- Free wired high-speed Internet
- Minibar
- Room service (24 hours)
- Plasma TV
- Digital TV service
- Premium TV channels
- Premium bedding
- Hypo-allergenic bedding available
- Shower/tub combination
- Coffee/tea maker
- Pillow menu
- Daily housekeeping
- Turndown service
- Free newspaper
- Hair dryer
- In-room safe (laptop compatible)
- Bathrobes
- Slippers
- Designer toiletries
- Bidet
- Phone
- Iron/ironing board
- Desk
- Air conditioning
- Climate control
Where to Eat
Buffet breakfasts are available for a surcharge between 7 AM and 11 AM.
24-hour room service is available.
Nearby Things to Do
Recreational amenities at the hotel include a health club and a sauna.
Spa Services
- Body treatments
- Facial treatments
To make requests for specific accessibility needs, complete the "Special or Accessibility Requests" section of "Trip Preferences" when you book your hotel.
- In-room accessibility
Hotel Policies
Check-in time starts at 3 PM
Check-in time ends at 6 PM
Check-out time is noon
Payment types
Children and extra beds
- Children are welcome.
- Rollaway/extra beds are available for EUR 70 per night.
You need to know
Extra-person charges may apply and vary depending on hotel policy.
Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges.
Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed.
No pets or service animals allowed
- Fee for buffet breakfast: EUR 26 per person (approximately)
- Self parking fee: EUR 34 per day
- Rollaway bed fee: EUR 70 per night
We should mention
Cash transactions at this property cannot exceed EUR 2500, due to national regulations. For further details, please contact the property using information in the booking confirmation. Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation. Only registered guests are allowed in the guestrooms. No pets and no service animals are allowed at this property.
Awards & Affiliations
- This property is affiliated with the International Gay & Lesbian Travel Association (IGLTA) and welcomes lesbian, gay, bisexual, and transgender (LGBT) guests.
- The property is a member of the Leading Hotels of the World.


text:
Yikes! Amanda Bynes Involved in Fourth Car Accident in Six Months
Another day, another Amanda Bynes car accident.
TMZ reports that this time the former Nickelodeon star was rear-ended while driving a rental car in San Fernando Valley. Typically, the driver who has been rear-ended isn't at fault, but in this case the other driver claims Amanda caused the accident by driving recklessly. Although police arrived on the scene, they didn't ticket either driver.
Poor Amanda has had some tough luck behind the wheel lately. Since April she's been charged with a DUI and is under investigation for a hit-and-run. In March, she fled the scene when a cop was writing her up for talking on her cell phone while driving.
Maybe it's time for Amanda to go green and invest in a bus pass?
Source: TMZ
For the latest from Wetpaint Entertainment, Like us on Facebook or Follow us on Twitter.


text:
Check Availability
We have lived at 7575 Kirby for almost 3 years now, with the other comments, this is NOT an apartment complex with a full staff, it is either privately owned, or leased by owner or broker. I have amazing brokers whom… Full Review ▶
There is no renters' management company here like other reviews have stated. This is an owner-owned condo complex. Owners do lease out their condos in a variety of ways, but there is no general management office at 7575 Kirby that lessees… Full Review ▶
I did not choose to rent here because of the RUDE and DISHONEST staff. (the sewage plant across the street also makes it smell terribly) I was about to rent here.... I could deal with the smell and the fact that… Full Review ▶
This is not an apartment complex but a condominium complex of individual owners. This makes for a community that truly cares about the upkeep of the common areas. Since each unit is individually owned each home is unique to that owners… Full Review ▶
Most rude liars around. Said 13 month lease not available even though it's on web site. Stay away from -----. Had a friend call and they do have 13 month lease at much cheaper price. Full Review ▶
We moved into 7575 Kirby three months ago and have been very pleased with our decision to choose this condo. The floor plan is open, the appliances are top rated, a lot of built-in storage, great lighting throughout the complex, classy… Full Review ▶
I moved into 7575 Kirby around June of 2009. I was very excited about the location and the look of the property. 3 days after I moved in my car was broken into and everything in it was taken. My car… Full Review ▶
When we first moved here 2007 in it was a wonderful well maintained and seemingly secure building. (selling points no less) The office staff at that time were not as helpful as they could be, but at least they were there.… Full Review ▶
People need to understand this is not an apartment building - it is a condo community. There are units to lease from individual owners, but 80% of those who live there own the unit. So, most complaints have little to do… Full Review ▶
I wrote the previous review. So much has changed in such a short period of time. Well it is warming up so the heat warms the garbage shoot up and the hallways smell like garbage. I no longer just see roaches… Full Review ▶
I've lived here for 6 month. Very nice floor plans. Nice fixtures and neighbors. The grounds are kept up very well. There is a bit of a bug problem. I have seen two HUGE roaches in my apartment and one in… Full Review ▶
I've rented at 7575 Kirby for a year and am about to renew my lease. I've looked at other places in the area and they just don't compare. The building is mostly condo owners so there seems to be a larger… Full Review ▶
I have lived at 7575 Kirby ever since they opened their doors (3.5yr) and my experience has been far past exceptional. I strongly recommend this residence if you are a young professional working in the medical center. They are the best… Full Review ▶
Love this place. When I got accepted to a med school in Houston, my parents and I scoured the med center for a safe, pretty place to live and this was our top choice for several reasons.
It's an easy 1.5… Full Review ▶
|Estimated Rent
|$ 1573
|$ 1478
Cats Allowed
Small Dogs Allowed
Large Dogs Allowed
Pet Deposit Required
Pet Rent Required
Some Breeds Restricted
Laundry in Units
Laundry Connections in Unit
Rent Trends
|Avg. Monthly Rent
|$ {{complexPricing.averageMonthlyRent}}
|$ {{complexPricing.minMonthlyRent}} - $ {{complexPricing.maxMonthlyRent}}
Disclaimer: Rental rates have been collected from Internet users and represent snapshots of a rental prices over time. These rates may not be a reliable indicator of current rents or the price offered to new residents. How to use this information.
Nearby Apartments
- 32%
Arcadian Kirby7550 Kirby Drive, Houston, TX 77030 48 Reviews
- 63%
Kirby Place Apartments7500 Kirby Dr, Houston, TX 77030 95 Reviews
- 59%
Archstone Toscano (formerly Archstone Toscano West University)2900 North Braeswood Boulevard, Houston, TX 77025 5 Reviews