Pattern based software patent


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Pattern based software patent

  1. 1. International Journal of Computer Engineering (IJCET), ISSN 0976 – 6367(Print), International Journal of Computer Engineering and Technology ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEand Technology (IJCET), ISSN 0976 – 6367(Print)ISSN 0976 – 6375(Online) Volume 1 IJCETNumber 1, May - June (2010), pp. 08-17 ©IAEME© IAEME, PATTERN BASED SOFTWARE PATENT Sankar Narayanan. S System Analyst Anna University of Technology CoimbatoreABSTRACT In the paper proposed that, pattern based software patenting. Open SourceSoftware development has been constantly growing in importance and expanding inmany Software architectures all over the world. This impressive growth has beensupported by the numerous successes, the high-quality reputation of Open SourceSoftware -based systems are expectation of cost savings. Today lot of patent is availableembedding are some coding, cryptography, function etc, I proposed the pattern basedsoftware patent., Lot of software are develop include in particular pattern. In the nature ofmind thing of logical function are implement in the particular software development. Inthis innovation are frame in particular pattern are adopted then it can be easily draftedthat patent; already or previously lot of patent are particular pattern claim can be used.These exting pattern claims are applicable or add one of the claims of your innovation.Pattern based software patent are easily or flexible drafting claim compare thanelectronic/mechanical/chemical etc... In this process of patent are every where read andalso anticipate growth of new idea better gateway.SOFTWARE PATENT Software patents have raised numerous issues over the nature of patentableinventions (and the differentiation from unpatentable ideas), since software is closer to apure “idea” than any other kind of invention – it is helpful to consider the historic basis ofthe patent system as the justification for allowing or disallowing software patents. 8
  2. 2. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEHISTORY OF SOFTWARE The claim that the new patent reform package has nothing to do with softwarepatents is similar to what the Commission said years ago about its "computer-implemented inventions After a slow beginning in the late 1990s, Free and Open SourceSoftware (FOSS) has been constantly growing in importance and expanding in manysoftware architectures all over the world. This impressive growth has been supported bythe numerous successes, the high-quality reputation of FOSS-based systems and, ofcourse, by the expectation of cost savings. Open Source Software encompasses more thanjust the access to source code; Free Software (FS) refers more to the concept of freedom(liberty) than to the concept of no cost (gratis).FREE DISTRIBUTION OF COMPONENTS OR AGGREGATEPROGRAMS • Source code must be included. • Derived works must be possible and distributable at least as a patch files. The strength of software development is the ability to recruit and motivatecommunities of competent programmers to develop, debug, and optimize code on avolunteer basis. Coordination is assumed by a delegate leader who is responsible for theassessment of the various solutions offered by the programmers and for the integration ofthe best code into the next software updates that are rapidly put on-line.NEED FOR SOFTWARE PATENT • Huge diversity of software • High flexibility and scalability of software solutions through source code editing. • High reliability and high security through source code review and validation • One-order of magnitude faster release rate • Rapid development of custom solutions to meet specific requirements through code reuse and extension. • Lifetime extension of FOSS-based systems through source code upgrades • High degree of compliance with open standards leading to more interoperability between Information systems. 9
  3. 3. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEFOUR FUNDAMENTAL FREEDOMS • Freedom to run the program, for any purpose; • Freedom to study how the program works, and adapt it to your needs; • Freedom to redistribute copies so you can help others; • Freedom to improve the program, and release your improvements to the public. When software is created, it has a level of quality that depends directly on theprogrammer’s competence, experience and professional methodology. To increase thereliability and security of code, it is essential to use some complementary mechanismssuch as peer review, testing, quality audits, alpha and beta versioning etc. open sourcesoftware and proprietary software rely essentially on the same processes (probably atsimilar levels) during the main development period. However, after the first publicrelease, open source software offers the very significant advantage of keeping access tosource code. This encourages more peer reviews, testing, and quality audits by a muchlarger community of users/developers than what would be possible with proprietary code.For closed source software, flaws and code defects are often discovered by somesubversive exploits which can lead to some destabilization in large corporations that relyon patch and repair. On the contrary, confidence in open source software may be builtfaster and, potentially, to a higher degree than with a proprietary equivalent . A myriad ofstatistics on software vulnerabilities are available and they seem to confirm the generalperception that open source software is often superior to proprietary code. The finaldecision was to make the cryptographic algorithms generally available so as to providefor security assessment and validation by the widest scientific community possible. Open source software implements open standards and specifications that areshared among developers during the design, coding and testing processes. This isgenerally recognized as a strategic advantage in enforcing interoperability policiesbetween independently developed systems Adoption of open source software development methods can have fundamentaland far-reaching consequences on engineering practices, especially if the objective is tocontribute actively to an open source project. It is recommended that experience begained with FOSS as a passive user first, then to become progressively more involved by 10
  4. 4. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEreporting bugs, suggesting new features, and modifying existing code before engaging inactive development within a collaborative project. Figure 2 illustrates the evolutionschema of a FOSS user/developer.SOFTWARE DEVELOPERS ON LEGAL ISSUES AND WRITINGPATENT APPLICATIONS Software enables a computer to control information flow a program is both awritten set of instructions, and a series of events occurring in real time .Even the earliestprogrammers foresaw the vast potential of software as automated language translators,large databases of information, optical character recognition and text printing, andtranscription of spoken language; all of these tasks are routinely performed by computerstoday; however, the early characterization of computing machinery as a “mechanicalbrain” fueled the early view of software as a set of “mental steps,” which had been a basisfor rejecting patentability since the 1800’s of course, even today’s machines are still tooprimitive to be compared with “brains,” thereby invalidating the “mental steps” argument(but this argument is likely to arise again when machines are capable of performing anequivalent of human thought).SOFTWARE PATTERNBUILDING SOFTWARESOFTWARE ENGINEERING: The process of building software involves the same stepwise approach as forbuilding other kinds of complex structures.SOFTWARE ENGINEERING MODELS: Many models of software design exist; this is the basic model approach areanalysis implement in the different problem of solution.SOFTWARE DESIGN PATTERNSDESIGN PATTERNS: As demonstrated by the growing size of Windows with each iteration, softwareproducts are clearly increasing in complexity – to address such complexity, softwareengineering borrows a concept from classical architecture: design patterns, the idea that a 11
  5. 5. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEparticular kind of problem can arise in many contexts, and can be solved in the sameways (though the details vary) – this gives rise to the concept of software reuse – recentadvances in software engineering have identified 50 common design patterns, fallinggenerally into three categories: creational patterns, structural patterns, and behavioralpatternsCREATIONAL PATTERNS: Object-oriented design involves packaging data and code as “objects” thatrepresent different components of a solution – the different creational patterns definewhat kinds of objects are created, who creates them, and when and how they are created.ABSTRACT FACTORY PATTERN: The interface generally defines the broad features of a class, but allows eachplatform to define the particulars (e.g., a generic “scrollbar” class, implementeddifferently by each OS)BUILDER PATTERN: The constructor joins together many other objects that relate to each other in aparticular way (e.g., a human language phrase constructor: perhaps different humanlanguages have different parts of speech, but concepts must still be able to relate to eachother in a phrase)FACTORY METHOD PATTERN: The interface doesn’t define a constructor for an abstract class, but merelycontains a stub constructor that can be filled in later for a specific objectPROTOTYPE PATTERN: A generic template object is developed as a prototype, which may later be clonedand customized for any specific application – singleton pattern: exactly one instance ofthe class must be created and must be globally availableSTRUCTURAL PATTERNS: These design patterns describe how classes might organize and manipulate theirmember variables 12
  6. 6. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEADAPTER PATTERN: one object encapsulates another object and translates calls between an interfaceand the encapsulated objectBRIDGE PATTERN: This pattern intermediates between an object and its abstraction, allowing each tovary independentlyCOMPOSITE PATTERN: A collection object binds together one or several primitives, and can be nestedwithin another collection object in a hierarchical fashionDECORATOR PATTERN: A wrapper object that adds a feature to the encapsulated object (a way to addfeatures to the encapsulated class on an as-needed basis, without having tomodify/expand the class definition)FAÇADE PATTERN: A unified interface that can present a set of dissimilar objects in a similar manner(e.g., the windowing interface for most GUIs presents all applications with a common setof features, such as scrollbarsFLYWEIGHT PATTERN: In a scenario where many objects will encapsulate one of a few kinds of objects asa descriptor, this pattern involves hosting a complete set of these objects in a specificlocation, and allowing all encapsulating objects to point to the most applicable one (ratherthan multiply instantiating each one)PROXY PATTERN: One object stands in as a stub for a much more resource-intensive object until thelatter is neededBEHAVIORAL PATTERNS: These patterns describe how objects interact with each otherCHAIN OF RESPONSIBILITY PATTERN: A data object is serially offered to a set of handler objects to see if any of themwant to process it 13
  7. 7. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMECOMMAND PATTERN OR TRANSACTION PATTERN: An object is responsible for performing some action, but the details of that actionwon’t be known until later, when a set of preconditions.COMPLETE INTERPRETER PATTERN: Objects are defined and arranged as grammar rules for parsing a complexlanguageITERATOR PATTERN: A class for traversing the elements of a specified collection type in a particularmanner, so that the collection class itself doesn’t need to offer a number of traversalmethods and keep track of an internal pointerMEDIATOR PATTERN: One object serves as the interface between two other objectsMEMENTO PATTERN: One object represents the internal state of another object at a specific point intime; useful for storing an object state in case a backup is neededOBSERVER PATTERN: One object creates a representation of another object, and changes thepresentation as the state of the observed object is updatedSTATE PATTERN: An object alters its behavior as its internal state changes (e..g, the functionality ofa computer might change depending on its power source and power managementsettings)STRATEGY PATTERN: A group of objects that each represent a different way to solve a problem (e.g., anassortment of objects that each encapsulate a different sorting algorithms); clients maychoose whichever solution strategy they wishTEMPLATE METHOD PATTERN: A higher level of abstraction of the strategy pattern, where the solutions define therough characteristics of a solution method, and allow the client to specify further detailslater 14
  8. 8. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEVISITOR PATTERN: The opposite of encapsulation, this pattern involves storing a set of objects apartfrom other objects that operate on and maintain them; this requires exposing the internalstate of each object set to the visitor objectsCLASSIFICATION OF SOFTWARE PATENTSSOFTWARE PATENT CLASSIFICATION: Initially, all software patents were relegated to class 364 subclasses 100 and 400-800 were heavily subdivided, so most software patents were placed in subclasses 200,300, and 900, which grew unchecked – instead of further subdividing these classes, thepatent office assigned keywords to certain subclasses but were merely tagged into“pseudo subclasses” – also, the USPTO published “digests” or “art collections” listing allof the patents in a particular field – in November 1991, the magnitude of the problemcompelled the USPTO to transfer all patents from 200, 300, and 900 into subclasses ofnew class 395 (“Information Processing System Organization”), with major groups ofsubclasses dedicated to display processing and artificial intelligence – the process offurther subdividing class 395 has been incessant, and will probably remain continuous inorder to keep up with the rate of issuing software patentsMECHANICS OF DRAFTING THE SPECIFICATIONTitle of inventionBrief summary of the inventionBrief description of the drawingsDetailed descriptionClaimsAbstract of the disclosureDrawingsCLAIM-DRAFTING PROCESSCLAIM DRAFTING: Most patent attorneys begin the patent drafting process with the claims, whichwill define the boundary line and bounds of the invention, and hence its scope andposition within the context of the prior art – some suggest that drafting the description 15
  9. 9. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMEhelps prepare the context for the claims, but this also raises the potential need to revisethe description if the claims are not drafted as expected – it may be helpful to sketch outthe claims first, perhaps even as a series of drawings of the components, in order toisolate the invention as a minimal set of componentsFINDING THE INVENTION: Of course, drafting a patent application requires the applicant to describe theboundary line and bounds of the invention – different business models will be more orless facilitated by protecting different aspects of the same invention, so first strive tounderstand the invention in its preferred embodiment next, identify claim elementsessential to the invention next, draft claim language for each element finally, addconnective language to join the elements into a claimed inventionAIDES TO PATENT CLAIM DRAFTING: Drawing diagrams may help put the invention in context – the inventor’sdrawings may be particularly useful, and for software patents, the source code maysuggest an approach for identifying the elements and organizing them into components –the set of claims should include broad, intermediate, and narrow claims, which broadensthe arsenal of weapons that can be used to ensnare an infringer (the most useful claim isthe one that claims the invention just broadly enough to ensnare a competitor, but not anymore broadly, as this might invite an invalidity attack) – when the claims are fullydrafted, it is important to test them by applying them to the claimed invention, by tryingto design around them with various modifications, and by applying them to the prior artto ensure that they recite novel and non-obvious subject matter – problems discoveredthrough claim testing are helpful for refining the claims into a more easily prosecuted andallowable set.CLAIM DRAFTING FOR ITERATIVE PROCESSES: This claim style canclosely follow the source code style: “A method comprising: … while x, iterativelyperforming. 16
  10. 10. International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 – 6367(Print),ISSN 0976 – 6375(Online) Volume 1, Number 1, May - June (2010), © IAEMECLAIM DRAFTING FOR LOGICAL CONTROL PROCESSES: Thisclaim style also closely follows the source code: “A method comprising: … if X is lessthan Y, then performing.CONCLUSION Open source software refers to computer software that users are free to run, copy,distribute, study, change and improve on. Anyone can take the programs, understand howthey work, use them and redistribute copies without asking for permission. The “open”concept allows further customization of the software to users needs. The well-knownLinux operating system is an example of FOSS software. Software patents inhibit thedevelopment and use of open source software. The nature of open source software is thatmany different bodies, agencies and companies help out for the development of softwarethat would meet their respective needs. Nobody will be willing to pay licensing fees asrequired by patents and this will inhibit the development of open source software. Many software industries are encouraging its developers to branch out globallyboth in software products and services; we need to ensure that sufficient protection isavailable for commercialization of software.REFERENCES • Gregory A. Stobbs, Second Edition Software Patents • THE DISPUTED QUALITY OF SOFTWARE PATENTS- JOHN R. ALLISON RONALD J. MANN∗ • International open source network -P E T E R J. Q U I N N; Nah Soo Hoe • Stallman, Richard (2003). Basic Idea Behind Open Source. Paper. Open Source Organization • Evans, David S. and Reddy, Bernard (2003). Government Preferences for Promoting Open-Sources Software: A Solution in search for a problem. (Technical Report 9 Mich. Telecomm. Tech. L. Rev. 313 (2003)). National Economics Research Associates. • Driver, M. (2001). The Future of Open-Source Software. (Technical Report SPA- 13-7536). Gartner. 17